[erlang-questions] Rhetorical structure of code: Anyone interested in collaborating?

Vance Shipley vances@REDACTED
Mon May 2 10:37:57 CEST 2016


I have long had an interest in visualizing code and a dream of a visual
development environment. I've pretty much concluded that a "visual
programming language" is a pipe dream for all but trivial use cases however
graphical modeling is obvious.

On May 2, 2016 1:22 PM, "Vlad Dumitrescu" <vladdu55@REDACTED> wrote:
> It's possible to even scan for all spawn calls and draw a diagram of the
processes in an application.

Many years ago I wrote a tool which parsed the abstract syntax tree of
gen_fsm behaviour callback modules and output .dot files for input to
Graphviz which then output a picture of the directed graph of States and
Events driving state transitions. This proved very helpful for finding
missing event handlers.

> Going the other way around, an IDE can make usage of tools easier -

I had always wanted to finish that project by going the other way, starting
with a graphical editor (e.g. dotty(*)) to create the model of a
communicating finite state machine in a graphviz file (foo_fsm.dot) with
annotations.  Feed that through a utility which created a template gen_fsm
behaviour callback module (foo_fsm.erl) with annotations so that it could
be read back into .dot for further graphical editing.

Another, more generally useful, IDE utility I have always planned is a
graphical editor for supervision hierarchies.  I would love to start new
Erlang applications on a canvas with a palette of application master,
supervisor and worker.  Drag and drop the supervisors, connect them with
lines to their children, annotate with the child specifications and init
arguments and save it as a template application ready to call
application:start(foo).

These aren't terribly difficult projects, trivial really compared to what
ROK is talking about, but yet (AFAIK) they don't exist.  If one was to
contemplate doing such a thing I understand that Eclipse has a Graphical
Editing Framework (GEF) which may form a good foundation for the graphical
editor.  Maybe I'll get around to it someday however it's been on my todo
list for 15 years now and yet I still use vim as my "IDE".
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20160502/f38e6d45/attachment.htm>


More information about the erlang-questions mailing list