[mercury-users] Visual Programming

Samuel Sean Watkins 108703 at bud.cc.swin.edu.au
Mon Nov 1 12:31:38 AEDT 1999


Hi, Mercurians!

I'm a newbie poster, so I'll introduce myself, I'm studying Computer
Science at Swinburne, and I've been an avid but hitherto silent reader of
this mailing list for quite a while.  I guess this is probably a mis-post,
because I'm not really writing about Mercury - as of yet, I haven't gotten
around to learning it properly (after the exams!) - but what the hell, 
you might be interested anyway!  For many years I've been obsessed with
developing a programming language / mathematical notation which is
graphical rather than serial - i.e. not a series of characters, but a
graph (or network) of symbols and relationships.  If you have ever played
with representing predicates or relations in a graphical form, you will
realise just how expressive this can be. 

Here's a really simple example, using ordinary algebra - I studied VCE
Physics not too long ago, which included the motion of a body under
constant acceleration.  I as was taught, there were 5 parameters involved
(acceleration, elapsed time, displacement, initial velocity, final
velocity).  Each of the 5 equations relates four of the variables, so if
any three are known all 5 may be determined.  There are 20 algebraic
re-arrangements of these equations - understandably many beginning physics
students find it difficult to work with this horrible mess to solve
problems (remember that this is introduced early, before calculus). 
Anyhow, the point is that in a serial language, such as normal algebra,
English or Mercury, it is impossible to represent such a complex
relationship elegantly and symmetrically - however in a graphical notation
it is easy to do so.  [unfortunately I can't include such a graph in this
email!]. 

A graphical notation is an excellent medium between computer and user,
because it is very easy for the user to manipulate, and it eliminates the
parse step of compilation.

Anyway, I'm lonely & don't have anyone to talk to about these crazy ideas
of mine :`( - if anyone's interested, please let me know.  At the moment I
am working on developing a very simple notation (called ASK) for basic
concepts such as symbols, bags, sets, substitution, relations and
logic, but it's pretty unstable and I need some help.  I am also
developing a notation builder in Java (but possibly I will switch to
GTK+ once I get the hang of it).

In my opinion, the 'promises' of commutativity (axioms, I guess) which were
mentioned recently are really just an artifact of an inexpressive notation
- in fact, addition and multiplication each operate on a bag of numbers,
and bags aren't ordered, so commutativity is implicit.

By the way - I don't really know Prolog (I can read, but not write it),
and I want to learn Mercury the easy way!  I've got Ralph's tutorial,
which is good - any other suggestions?  I tried reading the reference
manual, but it was a little bit austere and lacking in examples for my
liking, I guess it's not meant for beginners.  Did anyone ever read the
BBC Microcomputer User Guide?  That's the way we should be writing
manuals!!  I was able to learn BBC BASIC from that when I was in 
primary school, it must have been well written.  Why don't we try to 
write a 'Mercury for Primary School Kids' manual?

Thanks for all the interesting mail these couple of years!  (Geez, I feel 
like a spy now!)  Please let me know if this also is interesting.  Also - 
is this an appropriate posting, is anyone going to get aggravated like it
happens on usenet?

Anyone heard about the RISCStation project - I want one of those :o)


Sam
--------------------------------------------------------------------------
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the users mailing list