|Java compiler courses firstname.lastname@example.org (wooks) (2007-04-20)|
|Re: Java compiler courses email@example.com (Karsten Nyblad) (2007-04-25)|
|Re: Java compiler courses firstname.lastname@example.org (George Neuner) (2007-04-26)|
|Re: why teach about compilers, was Java compiler courses email@example.com (Karsten Nyblad) (2007-04-29)|
|Re: why teach about compilers, was Java compiler courses firstname.lastname@example.org (George Neuner) (2007-04-29)|
|Re: why teach about compilers, was Java compiler courses bobduff@shell01.TheWorld.com (Robert A Duff) (2007-04-29)|
|Re: why teach about compilers, was Java compiler courses email@example.com (Daniel C. Wang) (2007-05-04)|
|Re: why teach about compilers, was Java compiler courses firstname.lastname@example.org (Chris Smith) (2007-05-04)|
|Re: why teach about compilers, was Java compiler courses email@example.com (George Neuner) (2007-05-04)|
|Re: why teach about compilers, was Java compiler courses firstname.lastname@example.org (2007-05-07)|
|[3 later articles]|
|From:||Karsten Nyblad <email@example.com>|
|Date:||29 Apr 2007 09:18:24 -0400|
|References:||07-04-074 07-04-098 07-04-120|
|Posted-Date:||29 Apr 2007 09:18:24 EDT|
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
> 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.
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.
148f3wg02 at sneakemail dot com
Return to the
Search the comp.compilers archives again.