Re: How to justify teaching compilers

nmm1@cus.cam.ac.uk (Nick Maclaren)
9 Oct 2004 22:29:54 -0400

          From comp.compilers

Related articles
[2 earlier articles]
Re: How to justify teaching compilers thomas.claveirole@lrde.epita.fr (Thomas Claveirole) (2004-10-02)
Re: How to justify teaching compilers max@gustavus.edu (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 tk@ic.unicamp.br (Tomasz Kowaltowski) (2004-10-04)
Re: How to justify teaching compilers genew@mail.ocis.net (Gene Wirchenko) (2004-10-04)
Re: How to justify teaching compilers slimick@venango.upb.pitt.edu (John Slimick) (2004-10-04)
Re: How to justify teaching compilers nmm1@cus.cam.ac.uk (2004-10-09)
Re: How to justify teaching compilers torbenm@diku.dk (2004-10-09)
Re: How to justify teaching compilers monnier@iro.umontreal.ca (Stefan Monnier) (2004-10-09)
Re: How to justify teaching compilers rand@rice.edu (Randy) (2004-10-09)
Re: How to justify teaching compilers vbdis@aol.com (2004-10-09)
Re: How to justify teaching compilers house@usq.edu.au (Ron House) (2004-10-09)
Re: How to justify teaching compilers rbates@southwind.net (Rodney M. Bates) (2004-10-12)
| List of all articles for this month |

From: nmm1@cus.cam.ac.uk (Nick Maclaren)
Newsgroups: comp.compilers
Date: 9 Oct 2004 22:29:54 -0400
Organization: University of Cambridge, England
References: 04-10-009 04-10-038
Keywords: courses
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.




Regards,
Nick Maclaren.


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.