towards an Erlang IDE

Vance Shipley <>
Fri Jul 22 11:36:56 CEST 2005


I cam across DiaGen recently which is the "Diagram Editor
Generator".  It is used to develop diagram editors.  You
specify the diagram language and it creates a graphical
diagram editor.  Sounds like just the ticket for that
SDL editor I'd like to have.  The idea of specifying a 
"diagram language" intrigues me.  This sounds like a
Service Creation Environment in telecom parlance.  Maybe
an Erlang IDE should look a lot like an SCE;  more about
communicating processes and less about editing files.

In thinking about graphical design tools I again looked
at graphviz and uDraw(Graph). Several years ago I used
graphviz in a tool to graph gen_fsm modules by parsing
the abstract syntax of the module (the "reverse engineering"
school of design).  The graphviz and uDraw tools also
allow editing the graphs.  I'm thinking of bringing it
full circle and editing the erlang modules using a GUI.
For example if I change the name of a node on the graph 
the corresponding gen_fsm state handler gets renamed.

uDraw and graphviz tools provide you an extensible diagram
editor.  With it you could create a "Supervision Heirarchy
Tree" diagram editor or a "Finite State Machine" diagram
editor.  You can annotate nodes and edges using definable
menu items and list boxes.  Both of these tools are based on 
Tcl/Tk.  This probably opens the door for a tight integration
with gs?

I'd like an appmon like application for display and
editing of graphs obtained by parsing the modules. 
Create new graphs using the GUI which document the design.
Template erlang modules are created for new projects.  
The diagram attributes are embedded as comments.  
Opening an existing project reparses the modules into a
graph and includes the attributes to adorn the graph.  
Edit and output a new source module.  
Use a similiar scheme for inspecting running processes
ala appmon or Erlang Verification Tool.  The EVT looks
very interesting.  It uses uDraw to display graphs it creates.

This leads me to source code control.  I still have the
idea that storing Abstract Erlang syntax trees in CVS
would be a perfect answer to the issue of indentation
style.  Maybe a complete IDE would encompass source code
management so that work is done on abstract forms 
directly bypassing the parse stage?  

	-Vance


uDraw(Graph):
   http://www.informatik.uni-bremen.de/uDrawGraph/en/home.html

graphviz:
   http://www.graphviz.org

Erlang Verification Tool:
   http://www.sics.se/fdt/vericode/evt.html

DiaGen:
   http://www2-data.informatik.unibw-muenchen.de/DiaGen/

Tripping Hippy:
   http://www.erlang.org/ml-archive/erlang-questions/200110/msg00010.html




More information about the erlang-questions mailing list