Re: How to justify teaching compilers

Max Hailperin <max@gustavus.edu>
2 Oct 2004 16:26:23 -0400

          From comp.compilers

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]
| List of all articles for this month |
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/


Post a followup to this message

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