|[2 earlier articles]|
|Re: How to justify teaching compilers firstname.lastname@example.org (Thomas Claveirole) (2004-10-02)|
|Re: How to justify teaching compilers email@example.com (Max Hailperin) (2004-10-02)|
|Re: How to justify teaching compilers Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2004-10-04)|
|Re: How to justify teaching compilers firstname.lastname@example.org (Tomasz Kowaltowski) (2004-10-04)|
|Re: How to justify teaching compilers email@example.com (Gene Wirchenko) (2004-10-04)|
|Re: How to justify teaching compilers firstname.lastname@example.org (John Slimick) (2004-10-04)|
|Re: How to justify teaching compilers email@example.com (2004-10-09)|
|Re: How to justify teaching compilers firstname.lastname@example.org (2004-10-09)|
|Re: How to justify teaching compilers email@example.com (Stefan Monnier) (2004-10-09)|
|Re: How to justify teaching compilers firstname.lastname@example.org (Randy) (2004-10-09)|
|Re: How to justify teaching compilers email@example.com (2004-10-09)|
|Re: How to justify teaching compilers firstname.lastname@example.org (Ron House) (2004-10-09)|
|Re: How to justify teaching compilers email@example.com (Rodney M. Bates) (2004-10-12)|
|From:||firstname.lastname@example.org (Nick Maclaren)|
|Date:||9 Oct 2004 22:29:54 -0400|
|Organization:||University of Cambridge, England|
|Posted-Date:||09 Oct 2004 22:29:54 EDT|
=?ISO-8859-1?Q?J=FCrgen_Kahrs?= <Juergen.Kahrs@vr-web.de> writes:
|> Pg Nor Jaidi Pg Tuah wrote:
|> > If you can compromise and reduce compiler to just a few hours of
|> > lectures (embedded in, say, "systems programming"), what would you
|> > cover?
|> Niklaus Wirth had no problems to introduce his students to compiler
|> construction with a book of 94 pages:
|> You can teach this course in 1 semester. ...
Yes, you can. And, heaven help us, a whole generation of compiler
writers have been brought up on that sort of teaching, which is
perhaps the main reason that modern compilers are SO much worse in
many critical respects than those written by the untrained software
engineers of the 1960s.
What is typically omitted?
How to design a compiler so that it is as self-checking as possible,
can be supported remotely, and bugs can be fixed WITHOUT needing a
copy of the input. When a CS student writes a compiler, that isn't
needed. But a typical practical scenario has separate organisations
developing the compiler, writing/owning the code, compiling the code
and handling the support. No, a user is NOT allowed to send the
source of a third-party package to a vendor just because the compiler
has a bug.
How to include good (or even useful) run-time error checking,
diagnostics, tracing and tuning information. This is NOT best done by
restricting the language to what can be handled by an average CS
student. Original Pascal was rejected by almost everyone outside
computer science and MS-DOS hackers largely because it was too
restrictive for most practical purposes.
The design and implementation of run-time systems (i.e. what is
often called the library). This has always been very much the
'greasy spanner' end of the software engineering of compilers, is
not practically formalisable, and so has been badly neglected.
Almost every current example is ghastly. Obviously, it is a large
part of the previous point, but also refers to efficiency.
Return to the
Search the comp.compilers archives again.