Re: why teach about compilers, was Java compiler courses



George Neuner wrote:
On 25 Apr 2007 04:14:58 -0400, Karsten Nyblad
Finally, a curse on on compiler design should not be a curse on
debugging code or data structures. There is no reason why students
should fight memory leaks in C code or reimplement stacks, maps, etc.,
when they can use library functions in other languages. The students
have only so much time for their student projects, and there is a lot of
compiler theory they will not have time for trying in practice.

Like it or not, programming skills are an integral part of a CS
education. We can debate endlessly what are appropriate teaching
languages, but in the end the students must somehow get practical
programming experience to gain certain skills and master certain
concepts. You can argue that the student may never again use those
languages, but you can't reasonably argue that she will never design
or write software or manage people who do - that's the whole point of
her education. Most of the skills are portable to any environment the
student may find herself in later. Debugging is a skill for life, not
just for programming.

To that end, compilers are complex programs that intersect many skill
areas. A professional developer will certainly need to successfully
read and write files, parse input, format output, manipulate complex
data structures, manage resources, plan strategy and schedule
operations. Even a simple compiler touches on all of these things.
Certainly, the student should be able to use any facility of the
implementation language to help herself - but debugging comes with the
territory.

[...]

The student's ability to design and implement a halfway decent
compiler for a reasonable language is a practical test of the CS
program's ability to impart concepts and skills. A compiler is one of
a handful of senior level projects I can think of that does encompass
virtually everything the CS program is supposed to teach.

George

It is very true, that designing a large program is a valuable lesson
for students and it is also true that a compiler curse is a good
chance for giving the students that experience. However, your are not
telling us, why you think it is important that students learn fighting
low level bugs or learn about data structures in a compiler curse.

Data structures are better taught in a separate curse preceding the
compiler course, and low level bug hunting is better taught in curses
where you need to program at a low level, e.g., the data structure
curse or a curse in real time programming. If the students do not
learn it, then they will get a crash curse at their first employer.
However, most of the students will never again get the chance for
learning about the internals of a compiler, and thus a compiler curse
should center on that topic.

Programming at a higher level will allow the students to implement a
larger language, implement more optimizations, or get closer to
generating real code.

Karsten Nyblad
148f3wg02 at sneakemail dot com

.



Relevant Pages

  • Re: Aspiring highest-order programmer
    ... book", Sherman's Programming and Coding for Digital Computers, was ... an IBM 7094 running IBSYS as an OS and with a Fortran compiler. ... Thus today I am confident that computer science students learn "all ... > long, very long, and not exactly focused on NP completeness). ...
    (comp.programming)
  • Re: Java compiler courses
    ... Who cares what language the compiler is written in in ... exceptions I think the only people who really study compiler ... students later in will use their knowledge in projects using C. ... programming skills are an integral part of a CS ...
    (comp.compilers)
  • Re: Free UNIX for non-commerical use.
    ... I thought my $100 included a compiler. ... I think it makes more sense to encourage students ... >> will never gain any extra revenue from hardware sales. ... >> One can't expect SCO to give away SCO UNIX, as again they will gain no ...
    (comp.unix.solaris)
  • Re: why teach about compilers, was Java compiler courses
    ... There is no reason why students ... programming skills are an integral part of a CS ... Even a simple compiler touches on all of these things. ...
    (comp.compilers)
  • Re: Top ten errors
    ... >> seems like your students dont know how to use their compiler ... I sometimes wish the error messages had been ... My students, however, can't read code and spot the error ...
    (alt.comp.lang.learn.c-cpp)