Graphviz contains a programmable graph editor "dotty"
that AT&T Labs has released to the public. It seems like
a very good and practical example of a Domain Specific Language:
The procedural interface is convenient for algo-
rithmic operations (e.g. set node color as a function
of degree). The procedural interface also allows re-
programming the WYSIWYG interface. For exam-
ple, the left mouse button can be bound to a func-
tion that highlights all edges attached to the node
under the mouse pointer. The underlying program-
ming language has primitives to start external pro-
cesses and to establish interprocess communication
channels. This makes it possible for dotty to oper-
ate as a graphical front-end for other processes. In
this context, graphs can represent state information
maintained by a back-end process, and user actions
can be bound to functions that translate graph op-
erations to corresponding state change requests sent
to the back-end.
For an overview see the
overview web page and the paper
Applications of Graph Visualization
(by North and Koutsofios, source of above quote)
To see the amazing range of graphs that can be drawn
look at the extensive
directed graph examples
which include finite state machines,
parse trees for computer programs and natural language,
various kinds of flow charts,
graphs with colored nodes, and family trees of unix shells
and programming constructs.
Posted to DSL by jon fernquest on 7/17/02; 4:23:16 AM
|
|