4 Nov 2000
(updated 4 Nov 2000 at 16:57 UTC) »
After having spent some time with lexical analysis, today's
was syntax analysis, top down parsing to be more precise.
As a physicist, I am still impressed by the bloat found in
the language of
theoretical computer scientists. This came to my mind when
I took a look into a book on computability earlier this day,
that managed to obfuscate even the rather simple things
behind mathematical formalism, and also today when I
read through a classic book from Nikolaus Wirth (Pascal,
Oberon) which manages to cover stuff in 10 pages, where
other books wasted 100.
Wirth's book ("Compilerbau") is 120 pages, the Dragon Book
(US) covers 800 pages
and it's german translation is split into 2 volumes of about
500 pages each (I'm still dazzled where the additional 200
pages come from).
Other nice books are the ones by Gueting/Erwe (a medium
sized book on the topic, this is the one I hope to get
tackled completely) and Wilhelm/Maurer (the only book I know
of, that goes into OOP language compilation as well, I
consider it the most up to date book presently).
I also have a book an lex and yacc from O'Reilly, but this
only for convenience and examples, as it is not strong in
the maths force.
I am not through yet with bottom up parsing, but at least I
understand the principal difference now, that a top down
parser predicts so long until it got the whole program
matched (so much for prophetics in computer science :-)
while a bottom up parse reduces the program
until it has managed to turn it into the start symbol. Wow.
Thanks to those kind people who trusted me I was able to
the link on the goat book on advogato.
I hope it was not mentioned earlier -- a search engine would
Another good thing for advogato would be a general
queue for registered or anonymous folks, where some kind of
voting scheme could be used to push interesting stuff to the
At this time, users with observer status tend to use the
general communication - that works, but I would rather
that kind of use into a more explicit form.