Table of Contents
Assignments (Formal Languages and Compilers course)
Rules
The programming part of the exam can be performed by doing an assignment.
- A maximum of 5 assignments will be allocated
Students have to send an application for the assignment to stefano.scanzio [at] polito.it within 23 May, 2019.
The application must contain a curriculum, which has to include the known software and the list of passed exams (with the related scores).
In addition, students have to provide a preference between the assignments reported in the following.
The allocation of the assignments to students will be communicated within 6 June, 2019.
Possibly, depending on the curriculum or on the number of requests, some requests may not be accepted.
Assignment 1
Implement all the exercises resolved in the laboratory of the course, which can be downloaded here (https://www.skenz.it/compilers) by using the Ply parser generator (i.e., a parser that makes use of the Python programming language):
http://www.dabeaz.com/ply/
Assignment 2
This assignment is composed of two parts:
- Study of the Erlang programming language (http://www.erlang.org/, http://erlangbyexample.org/), and perform a presentation with many examples of the main features of this language.
- Writing of a compiler that recognizes part of the Erlang language. The compiler has to make a translation in the LLVM syntax (https://llvm.org/), allowing the execution of the code in a virtual machine.
Assignment 3
This assignment is composed of two parts:
- Study of the Go programming language (https://golang.org), and perform a presentation with many examples of the main features of this language.
- Writing of a compiler that recognizes part of the Go language. The compiler has to make a translation in the LLVM syntax (https://llvm.org/), allowing the execution of the code in a virtual machine.
Assignment 4
This assignment is composed of two parts:
- Study of the Julia programming language (https://julialang.org/), and perform a presentation with many examples of the main features of this language.
- Writing of a compiler that recognizes part of the Julia language. The compiler has to make a translation in the LLVM syntax (https://llvm.org/), allowing the execution of the code in a virtual machine.
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/cs/jflex_cup/assignments