[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Macros and Language Design.
I have been reading this book:
http://www.info.ucl.ac.be/people/PVR/book.html to learn more about the
kinds of programming language features people talk about here. First off,
I'm curious what other people think of this book? So far its been very
helpful to me in clearing up what some people are talking about,
particularly on this list.
They talk about using a "kernel language approach". They have this small
kernel of language, and then, through a parser generator tool, other
constructs are added to the language by translating them into the kernel
language. Is this comparable to what Lisp macros do? A while back, in the
macros discussion, someone(Paul Graham?) mentioned that macros are useful
to the language designer even if they are not exposed in the language, is
this what he was talking about?
Also, to further my understanding of macros, I have some examples of more
complex things I think macros could solve. I'm a senior electrical
engineering student, and we've been doing some VHDL, and for the subset of
the language we're allowed to use, its rather tedious to write finite state
machines. So I wrote a program, in C, to take a transition list of the
Finite State Machine and translate it into VHDL(with usually a 10-20x
increase in the lines of code from the transition table to the VHDL). A
friend of mine uses a Java tool called Torque to generate code for his a
lot of his database work in a project of his. Are these the kinds of things
the reason Lisp programmers love macros? Are they are replacement for code
generators, except fully integrated(or not) into the language, so that
none/fewer of the problems of code generators are encountered? Am I missing
the point, or anything else for that matter?