Re: why teach about compilers, was Java compiler courses

Karsten Nyblad <148f3wg02@sneakemail.com>
29 Apr 2007 09:18:24 -0400

          From comp.compilers

Related articles
Java compiler courses wookiz@hotmail.com (wooks) (2007-04-20)
Re: Java compiler courses 148f3wg02@sneakemail.com (Karsten Nyblad) (2007-04-25)
Re: Java compiler courses gneuner2@comcast.net (George Neuner) (2007-04-26)
Re: why teach about compilers, was Java compiler courses 148f3wg02@sneakemail.com (Karsten Nyblad) (2007-04-29)
Re: why teach about compilers, was Java compiler courses gneuner2@comcast.net (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 danwang74@gmail.com (Daniel C. Wang) (2007-05-04)
Re: why teach about compilers, was Java compiler courses cdsmith@twu.net (Chris Smith) (2007-05-04)
Re: why teach about compilers, was Java compiler courses gneuner2@comcast.net (George Neuner) (2007-05-04)
Re: why teach about compilers, was Java compiler courses torbenm@app-7.diku.dk (2007-05-07)
[3 later articles]
| List of all articles for this month |

From: Karsten Nyblad <148f3wg02@sneakemail.com>
Newsgroups: comp.compilers
Date: 29 Apr 2007 09:18:24 -0400
Organization: Compilers Central
References: 07-04-074 07-04-098 07-04-120
Keywords: courses, design
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
> 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



Post a followup to this message

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