[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
email@example.com [mailto:firstname.lastname@example.org] wrote:
> I got the impression, perhaps from comments that Olin made during q&a,
> that there is a lot of practical knowledge in the Lisp community about
> these issues. Are there books or papers that address the sorts of
> issues that Simon listed? (I intend to look at the books Jonathan
> mentioned.) Where's a good place to start?
Jonathan Bachrach mentioned Christian Queinnec's _Lisp in Small
Pieces_. I'll second that: LiSP is amazing; it's really the book
that got me to understand how compilers work.
However, one of the lessons I took from the workshop is that we
may not know the right way to implement dynamic languages anymore,
with the possible exception of Dan Simmons. :) Most of the bytecode
based language implementations I've seen are all about a
decade old -- Caml, PLT Scheme, Python -- and in the last
10 years we've seen the average PC go from a 33 MHz 486 with 4 megs
of RAM to a 1.5 GHz Athlon with 512 megs of RAM.
That's around a hundredfold increase in both processor and
memory resources. Jonathan's Proto talk suggested that dynamic
compilation via gcc/dlopen may be the Right Thing for volunteer
efforts(!), both in terms of speed and ease of implementation.
Moreover, I am given to understand that gcc 3.0 has support for
marking cross-function tail calls, which makes it even more
attractive as a target.
I am now seriously considering using this approach for my own
little language. I may yet decide against it, but it's not an
easy or obvious decision, much to my surprise.