Re: Compiler construction projects

torbenm@diku.dk (=?iso-8859-1?q?Torben_=C6gidius_Mogensen?=)
10 Jun 2005 22:15:50 -0400

          From comp.compilers

Related articles
Compiler construction projects roderick.bloem@ist.tu-graz.ac.at (Roderick Bloem) (2005-06-02)
Re: Compiler construction projects touati@prism.uvsq.fr (TOUATI Sid) (2005-06-02)
Re: Compiler construction projects lfinsto1@gwdg.de (Laurence Finston) (2005-06-02)
Re: Compiler construction projects torbenm@diku.dk (2005-06-10)
Re: Compiler construction projects anton@mips.complang.tuwien.ac.at (2005-06-12)
Re: Compiler construction projects ressler@usma.edu (Gene) (2005-06-19)
Re: Compiler construction projects oliver@first.in-berlin.de (Oliver Bandel) (2005-06-23)
Re: Compiler construction projects skandgoe@gwdg.de (Skandinavisches Seminar) (2005-06-26)
| List of all articles for this month |

From: torbenm@diku.dk (=?iso-8859-1?q?Torben_=C6gidius_Mogensen?=)
Newsgroups: comp.compilers
Date: 10 Jun 2005 22:15:50 -0400
Organization: Department of Computer Science, University of Copenhagen
References: 05-06-006
Keywords: courses
Posted-Date: 10 Jun 2005 22:15:50 EDT

Roderick Bloem <roderick.bloem@ist.tu-graz.ac.at> 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
> tools?


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.


                Torben


Post a followup to this message

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