I wrote:
> > Being a syntactician and not a programmer, I wonder why programmers
> > don't use trees. An interface like the one used for Windows directory
> > structure (where you click on nodes to expand and contract them) seems
> > ideal. Surely programmers can't be guilty of a kind of cerebrally
> > masochistic machismo?
Chris Palmer replies:
> Lisp code *is* a literal tree (parentheses demarcate subtrees); a Lisp
> program is a huge tree of expressions. All programming languages end up
> being represented internally, in an intermediate stage, in their parsers
> and/or virtual machines as trees; but it turns out to be a really bad (=
> difficult and slow) way for humans to write code. Instead, most
> programming languages end up allowing the user to write a series of
> smaller trees ("statements" made up of "expressions").
I meant trees not as a mathematical structure but as a graphical
notation device, contrasting with bracketing and indentation, the
opposing merits of which were being debated in the passage I had
been responding to. Syntacticians would never use indentation or
bracketing for complex structures, since experience shows that
they're much harder to read than tree notation.
Mark Reed replies:
> Are the speakers of the world gulity of cerebrally masochistic machismo
> for not speaking in trees? For not using trees for all written
> communication? Should we use clickable TreeViews to construct
> our email messages?
No, partly because we are fluent in English so don't need to use
any kind of syntactic notation, and partly because we are humans
so don't worry very much about broken syntax.
--And.