URIUM: A Programming Language for a Practical Open Course on Compiler Design
Programming Languages
Summary
The authors created a simple programming language to help teach students how to build a compiler step by step. Their course covers everything from analyzing the code to generating the final machine code. The compiler they designed can produce code for different processors like MIPS, Intel, and RISC-V, and works on both Windows and Linux. The course can be made easier or harder depending on the students' level and can lead into more advanced compiler topics.
Authors
Francisco J. Moreno Velo, Almudena García Jurado-Centurión
Abstract
This paper presents the definition of a simple programming language used as the basis for developing a practical compiler design course. The course explains step by step how to build a compiler, from the initial analysis stages to code generation. The developed compiler generates code for various processors (MIPS, Intel, and RISC-V) and operating systems (MS-Windows and Linux). The course can be adapted to different levels of difficulty and can be used as a starting point for explaining more advanced topics.