[Haskell] Beyond ASCII only editors for Haskell

Mads Lindstrøm mads_lindstroem at yahoo.dk
Sun May 22 13:23:32 EDT 2005


Hi

One of Haskell's advantages is that it is very suitable as an executable
specification language. Which is also claimed on
http://www.haskell.org/aboutHaskell.html:
	
	"Much of a software product's life is spent in specification, design
and maintenance, and not in programming. Functional languages are superb
for writing specifications which can actually be executed (and hence
tested and debugged). Such a specification then is the first prototype
of the final program."

also on the same page:

	"Haskell, a purely functional programming language, offers you:
	...
		* A smaller "semantic gap" between the programmer and the language.
	"

But if I were to specify a program (in a non-executable language) or if
I were to write some function on a blackboard, I would not be restricted
to only ASCII characters. For example, I would not write 'sqrt 2' but I
would write a square root symbol with 2 underneath. Likewise, I would
not write '2 ^ 5', but I would write a 2 with a 5 raised upwards to the
right of the 2. Then why are we stuck with the mono-spatial ASCII based
editors in Haskell? Why is it not possible to make Haskell program look
similar to ordinary math? (also when writing those programs and not just
afterward in some Latex formatted paper).

Also, programmers often use diagrams as specification. As Andrew Bromage
says it in http://haskell.org/~shae/pseudocode1.pdf:

	"Mostly, I strongly suspect that most code of this type is not written,
but rather it's translated into. I tend to see many uses of "point-free
style" in the same light. It's also one of the reasons why I've resisted
using arrows: You don't program in arrow style; you program in diagrams
on paper, then translate that into arrow style."

This makes me think that our diagrams should be compilable and thus
executable? These diagrams could be embedded in our editor and
intermixed with ordinary code.

I have looked for the type of editor roughly outlined above, but found
nothing. If anybody have some links to projects, which is related to
these kind of thoughts please let yourself be heard. Also, of cause,
comments are most welcome.

-- 
Mads Lindstrøm <mads_lindstroem at yahoo.dk>



More information about the Haskell mailing list