|Compiler construction projects email@example.com (Roderick Bloem) (2005-06-02)|
|Re: Compiler construction projects firstname.lastname@example.org (TOUATI Sid) (2005-06-02)|
|Re: Compiler construction projects email@example.com (Laurence Finston) (2005-06-02)|
|Re: Compiler construction projects firstname.lastname@example.org (2005-06-10)|
|Re: Compiler construction projects email@example.com (2005-06-12)|
|Re: Compiler construction projects firstname.lastname@example.org (Gene) (2005-06-19)|
|Re: Compiler construction projects email@example.com (Oliver Bandel) (2005-06-23)|
|Re: Compiler construction projects firstname.lastname@example.org (Skandinavisches Seminar) (2005-06-26)|
|Date:||10 Jun 2005 22:15:50 -0400|
|Organization:||Department of Computer Science, University of Copenhagen|
|Posted-Date:||10 Jun 2005 22:15:50 EDT|
Roderick Bloem <email@example.com> writes:
> I am teaching compiler construction for the second time this year, and I
> would like to exchange experiences with others teaching the same course.
> In particular, I would be interested in the details of projects to
> build a compiler: Which source and destionation languages do you use,
> which implementation language for the compiler, and, especially, which
I have over the last 6 years taught a compilers course with a project
where students (in groups) implement a compiler for a very small
language to a small subset of the MIPS instruction set. I have used
different languages, but they all contain at least one-dimensional
arrays (or, in one case, lists) and function calls with multiple
parameters, but none of them have nested function definitions (as this
will require static links, which would be too complicated for the
short period for the project), nor multi-dimensional arrays.
I use Standard ML (specifically Moscow ML) as implemention language,
using MosML-Lex and MosML-Yacc as tools, as well as a register
allocator for the MIPS subset (written by myself). The generated code
is executed on a simulator.
The students are glad that the compiler feels "real" due to the
low-level target (unlike a compiler to a high-level VM) and they learn
a lot by doing it. But it is a bit more work than using a VM, so they
often complain about workload.
Return to the
Search the comp.compilers archives again.