3 ms·
Can you elaborate on what you mean by that? What would it mean to be able to manipulate the call graph? In which situations would that be useful?
by _mhr_ 10y ago
Can you elaborate on what you mean by that? What would it mean to be able to manipulate the call graph? In which situations would that be useful?
- nerdponx 10y agoBasically, a compiler that translates UML (e.g. in GraphViz DOT format [0], or Mermaid format [1]) to actual code. If I have a bunch of libraries that more or less do what I want and all my program has to do is glue them together (this is common in scripting scenarios), then I could just draw it up in a GUI like Gephi and cross-compile it to a script, instead of writing the script by hand. Complete separation of data flow from the implementation of that flow. I imagine you could do this pretty easily in a language like Haskell (since everything is a function call) or Lisp (where everything is "data") so you don't have to implement special logic to figure out how particular nodes should behave. You could also do this for "explicit" DAG engines like Make, Airflow, and Luigi. [0]: http://www.graphviz.org/content/dot-language http://www.graphviz.org/content/dot-language [1]: https://knsv.github.io/mermaid/ https://knsv.github.io/mermaid/ EDIT: this ([2]) turned up in my Googling. I suppose there's a good reason nobody uses it? [2]: https://en.wikipedia.org/wiki/Executable_UML https://en.wikipedia.org/wiki/Executable_UML
- flor1s 10y agoMany UML modeling tools like Visual Paradigm allow you to generate code based on your models. One big problem in this approach is that it is hard to make changes beyond that. Some people want to customize the generated code, but that means that if you want to make changes to the diagram you somehow have to merge back the changes which were manually made. If you are interested in this you should check out a company called Mendix, which is building a SaaS platform for building applications using graphical tools, and the Eclipse Modelling Framework, which is a huge project aiming to add modelling and code generation capabilities to Eclipse (in my experience it is slightly academic, in the sense that you often encounter bugs or cryptic errors in practical use).