AHEAD is a methodology for creating function-oriented programming, and there is a java composer. There is also an Eclipse IDE for running fop applications. You can even choose AHEAD composer (java) or featureC ++ for C ++. All of them are implemented as source compilers.
http://wwwiti.cs.uni-magdeburg.de/iti_db/research/featureide/
the meaning of this approach is that you implement functions as layers, each level is exactly one feature. Thus, in this layer, you save code that refines some of the code in the lower layers (layers / functions are ordered), and you also encode how the function interacts with other functions. There may be refinements for several classes in the layer (exactly what you would do if you had to add a certain function to your existing program), but with FOP you really do not lose the previous version. The idea is that if you disable a specific function from this assembly, it means that the code that interacts with this function is not entered, but the rest of the functions remain unchanged.
Think of it as an additional aspect of polymorphism and how you organize functionality
source share