From: | anton@mips.complang.tuwien.ac.at (Anton Ertl) |
Newsgroups: | comp.compilers |
Date: | Wed, 11 Feb 2009 16:51:02 GMT |
Organization: | Institut fuer Computersprachen, Technische Universitaet Wien |
References: | 09-02-021 09-02-029 |
Keywords: | assembler |
Posted-Date: | 11 Feb 2009 17:26:24 EST |
Ralph Boland <rpboland@gmail.com> writes:
>Frankly, most university first courses on compilers don't spend much
>time on the back end of compilers; there just isn't time. And the
>assembly languages of most modern processors are just too complex. I
>would like to see the Java virtual machine or some other used virtual
>machine be the target language for a first course on compilers, if
>that is not already too much information.
The JVM is more complex than a real machine, and that complexity is
not something that is as useful to learn IMO as some of the concepts
that the students have trouble with in real machines (e.g., memory and
addresses).
We teach a real machine assembly language in our first compiler
course; we started with MIPS, moved to Alpha, and now are using AMD64;
of course we teach them only the parts that are necessary for solving
the course, but that's enough to teach them the most important
concepts.
The big advantage I see in using a real machine instead of compiling
to a virtual machine or some programming language is that it gives the
student contact with the hardware (or as much as a user-level program
will ever see of that) rather than being completely removed from that
with the head in virtual machine or intermediate language clouds.
Many students also see this as a benefit of our course.
- anton
--
M. Anton Ertl
anton@mips.complang.tuwien.ac.at
http://www.complang.tuwien.ac.at/anton/
Return to the
comp.compilers page.
Search the
comp.compilers archives again.