The idea of using a grammar to create a user interface goes back at least as 
far 
as Engelbart's AHI group. They used a distant past cousin of OMeta (called Tree 
Meta) to do this. Ca. 1966.

One of the first systems to specify and make graphical grammars (and UIs) via 
user interactions was William Newman's "The Reaction Handler" PhD thesis about 
the same time. (William is the Newman of "Newman and Sproull").

It's worthwhile to contemplate that a state machine (recursive or not) is the 
opposite of "modeless" -- it is the epitome of modes. So this is not a great 
way 
to specify a really nice modeless interface (because you have to draw arrows 
outward from pretty much every state to pretty much every other state). 
"Modeless" at PARC meant "you don't have to explicitly back out of your current 
'mode' to initiate any other command".

Cheers,

Alan




________________________________
From: Benoît Fleury <[email protected]>
To: Fundamentals of New Computing <[email protected]>
Sent: Sat, July 23, 2011 11:05:49 PM
Subject: [fonc] HotDraw's Tool State Machine Editor

Hi,

I found HotDraw's tool state machine editor [1] very interesting as a
graphical editor for a "syntax-directed translator". The state machine
transforms a stream of mouse events into a stream of commands on the
structured drawing. Did I push the analogy too far?

I was wondering if anyone knows similar examples of graphical editor
for grammars?

Moreover, we didn't find (yet) a good metaphor for writing programs in
general purpose programming language in a graphical editor. Do you
think that might change with "domain specific languages"?

Thank you to everyone on this list for the very interesting
discussions and links.

- Benoit

[1] http://st-www.cs.illinois.edu/users/brant/HotDraw/Conversion.html>

_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc

Reply via email to