|Teaching compilers and programming languages together... firstname.lastname@example.org (1995-01-10)|
|Teaching compilers and programming languages together... email@example.com (1995-01-23)|
|Re: Teaching compilers and programming languages together... firstname.lastname@example.org (1995-01-24)|
|Re: Teaching compilers and programming languages together... email@example.com (1995-01-25)|
|Re: Teaching compilers and programming languages together... firstname.lastname@example.org (1995-01-26)|
|Re: Teaching compilers and programming languages together... email@example.com (1995-01-30)|
|Re: Teaching compilers and programming languages together... firstname.lastname@example.org (Ehud Lamm) (1995-02-03)|
|Re: Teaching compilers and programming languages together... email@example.com (1995-02-06)|
|From:||firstname.lastname@example.org (Jonathan Eifrig)|
|Organization:||The Johns Hopkins University CS Department|
|Date:||Wed, 25 Jan 1995 23:56:13 GMT|
Boris Aronov <email@example.com> wrote:
>I almost exploded when I found out that in our undergraduate CS program
>Programming Langages (PL) course does not seem to be a prerequisite for
>Compilers (Comp). I have tried changing it and got an argument along the
>lines of 'In my days, **I** have taken Comp before PL and nothing bad
>happened to me.'
Well, a lot depends on the nature of the compiler and programming
language courses your department teaches. Strangely enough, I think your
chairman is correct in thinking that the compiler and the programming
language theory courses are independent. Now, you don't really mention
what level these topics get covered at in your department, but for the
sake of argument let's assume that they are taught at the junior/senior
For the most part, courses in programming languages start with
the lambda calculus and go from there. (Discounting the "survey" style
of course, which has always seemed pretty feeble to me.) And first
courses in compilers are usually centered around a stack-oriented language
of some sort.
The problem seems to boil down to closures. Languages that don't
have closures are essentially Pascal/C (if they have lexical scoping and
local variables) or Fortran/Basic (if they don't). These languages, while
of great practical importance, don't need a lot of theory behind them;
students have to figure out lexical scoping/recursion in their first
programming class, and after that the theoretical juice is pretty much
squeezed out of them.
Now, languages that *do* support closures pretty much have to
support garbage collection as well, and this is a rat-hole which is probably
best avoided in a first compiler course.
Off the top of my head, the only topic that I can think of that
could fit in both would be some sort of discussion of typing systems and
Jack Eifrig (firstname.lastname@example.org) The Johns Hopkins University, C.S. Dept.
Return to the
Search the comp.compilers archives again.