In article <Akw=UzC00YUqIKS9kU@andrew.cmu.edu>,
Daniel C. Wang <firstname.lastname@example.org> wrote:
>spot@OREO.GRAPHICS.CS.CMU.EDU (Scott Draves) writes:
>I've heard that after the ML designers finally figured out and specified the
>semantics of the language they were in a rush and bolted on the current ML
>syntax with little thought.
I think that this is unfortunately quite common. Most language designers
aren't really interested in syntax, and aren't broadly enough educated
about the possibilities.
Equally unfortunate, syntax seems to be very interesting to certain
theoretically-inclined people who like fiddling with formalisms rather
than figuring out what's useful. Standard parsing was beaten to death
for a decade or two, until everybody figured it's a solved problem
with LL(K) and LALR and all that. Of course, all of that work is
really about a fairly narrow range of languages that look more or
less like Algol. Yawn.
Hygeinic macros have thrown a big wrench in the works, because they
show that certain constraints on grammar can be damned useful by
giving you extra power---the ability to define new special forms at
The mainstream programming language community doesn't seem to have
figured this out yet, or recognized that it's *really* valuable.
And nobody has properly characterized the issues. For example, Dylan
has hygeinic macros, but only a limited kind, and the grammar was
designed for yacc-style bottom-up parsing. Bad combination. If you
make the syntactic extension mechanism more powerful, you're likely
to run into unnecessary syntactic problems.
>My impression is that most languages suffer from the same defect (i.e.
>syntax as an after thought.) Lisp/Scheme just punted on the issue
Yes, but I think punting is better than just getting it wrong. Lisp
people haven't been willing to give up macros to get a fixed grammar
to feed to yacc. Good for them!
| Paul R. Wilson, Comp. Sci. Dept., U of Texas @ Austin (email@example.com)
| Papers on memory allocators, garbage collection, memory hierarchies,
| persistence and Scheme interpreters and compilers available via ftp from
| ftp.cs.utexas.edu, in pub/garbage (or http://www.cs.utexas.edu/users/wilson/)