Shriram Krishnamurthi <s...@cs.brown.edu> writes:

> It depends on what kinds of compilers/interpreters they were trying to
> build.  A course of study for Fortran would like quite different from
> one for ML would look quite different from one for JavaScript (though
> there are of course many overlaps).

Indeed -- I found myself in the interesting position here (a financial
firm in NY) over the summer of being offered the chance to provide a
series of puzzles on any theme to a group of talented amateurs (three
junior sysadmins and an intern in an `elite' financial setting), with
the stipulation that the language used be Perl -- what they mostly
needed experience in for their `day job' -- and Perl 5.8.8 (the in-house
default install) at that.

In about a dozen and a half puzzles, I was able to get them through a
quick intro to functional programming followed by step-by-step
construction of a scheme interpreter in the `The Art of the Interpreter'
style.

It was necessarily a rather speedy overview of the subject -- with
out-of-band discussion of how tail-call optimization looks behind the
scenes, macros, and similar more advanced looks at the subject matter
for those who showed interest and followed up on their own -- but it
went pretty well.

I wouldn't recommend Perl as a language for this if we were starting
From scratch, but as a means of broadening the horizons of people who
were already Perl programmers, it went well.

I'd be happy to share the lecture notes / example code from this with
anyone who's interested -- with the understanding that this came
together in a rather ad-hoc style, so I don't promise it's the way I
would do it if I had more time.  :-)

-- 
                                Jim Wise
                                jw...@draga.com

Attachment: pgpfgBx67WijH.pgp
Description: PGP signature

_________________________________________________
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/users

Reply via email to