Teaching Compiler Techniques

XCore Project reviews, ideas, videos and proposals.
User avatar
Respected Member
Posts: 377
Joined: Thu Dec 10, 2009 6:07 pm

Teaching Compiler Techniques

Post by jonathan »

The XMOS instruction set is a really good target for compilers. The ability to run code on the raw silicon, without an operating system, means this is a great platform to use to teach a number of things. I think one of the best things it can be used to teach is compilation techniques.

You can explain the difference between interpreted, compiled, just-in-time compiled languages and implementations. You can write simple compilers for small programming languages, demonstrating the implications of adding additional language features. Compilers for simple languages will often fit on the architecture itself. Bootstrapping compilers can be explained and taught.

I'd love to work with a few people in the academic world on creating some example "model compilers" for a teaching course on compiler construction, targeting the XMOS instruction set.

I taught computer architecture, digital electronics and compiler construction to undergraduates in Cambridge for 3 years and one of the common themes was that with all of the layers of abstraction of modern PCs and laptops, many found it very hard to understand where the compiler fitted in and what it was actually responsible for. This left little teaching time for the more interesting aspects of the courses in compiler construction such as formal analysis and optimization. I'd love to make it easier for students to see what the compiler is doing at each stage with a series of examples of compiling very simple dummy languages.

Some great examples of the kind of languages you could compile are in the various compiler and semantics courses at the University of Cambridge. I'm sure there are other good examples of dummy languages too.


Any thoughts? Is this is a good idea?