Related articles |
---|
How to justify teaching compilers jaidi@fos.ubd.edu.bn (Pg Nor Jaidi Pg Tuah) (2004-10-02) |
Re: How to justify teaching compilers mayan@bestweb.net (Mayan Moudgill) (2004-10-02) |
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) |
[5 later articles] |
From: | Max Hailperin <max@gustavus.edu> |
Newsgroups: | comp.compilers |
Date: | 2 Oct 2004 16:26:23 -0400 |
Organization: | Compilers Central |
References: | 04-10-009 |
Keywords: | courses, practice |
Posted-Date: | 02 Oct 2004 16:26:23 EDT |
"Pg Nor Jaidi Pg Tuah" <jaidi@fos.ubd.edu.bn> writes:
> ... how would you justify keeping/introducing your beloved compiler
> course?...
>
> [I don't think many CS students are likely to write a C compiler,
> but most of them are going to write things that are scanners or parsers,
> even if they don't call them that. -John]
John's argument is a classic one, which I do not find completely
satisfying, because I happen to be quite fond of the back end and not
just the front. Some of the other arguments I therefore make include
* The compiler, and the compiler-design course, is "where the rubber
meets the road." Students have taken courses in which they think
about computations, and typically also at least one course in which
they think about computers. But how exactly does computation meet
computer? Surely a computer scientist ought to understand this.
* Compiler design is paradigmatic of how abstract thinking can be
useful for practical goals, and more broadly of why a computer
scientist is superior to a mere programmer. In a compiler-design
course, a student will encounter some nice, elegantly formulated
problems that have equally nice, elegant solutions. The student
will also encounter some other problems, on their surface equally
nice and simple, for which searching for a perfect solution is
foolish, unless you think you can prove P=NP. Moreover, the
student will see what one does instead of throwing up one's hands
when confronted with such hard problems. And all of this is in a
practical context.
-Max Hailperin
Associate Professor and Chair
Mathematics and Computer Science Dept.
Gustavus Adolphus College
800 W. College Ave.
St. Peter, MN 56082
USA
http://www.gustavus.edu/+max/
Return to the
comp.compilers page.
Search the
comp.compilers archives again.