User Tools

Site Tools


compilers:assignments20212022
Return to Home page

Assignments 2021/2022 (Formal Languages and Compilers course)

Rules

The programming part of the exam can be performed by doing an assignment.

  • Assignments are reserved only for students attending the course the first time this semester

Students have to send an application for the assignment to riccardo.sisto [at] polito.it and stefano.scanzio [at] polito.it within 12 April, 2022.
The application must contain a curriculum, which has to include the known software and the list of passed exams, both master and bachelor degrees, with the related scores.
In addition, students have to provide the list of assignments they are interested in, sorted by preference (most preferred first).
The allocation of the assignments to students will be communicated within 21 April, 2022.
Possibly, depending on the curriculum or on the number of requests, some requests may not be accepted.

Assignment 1

This assignment is composed of two parts:

  1. Study of the languages used by the security protocol verifier Proverif (https://prosecco.gforge.inria.fr/personal/bblanche/proverif/).
  2. Development of a Java library that can be used to parse part of the Proverif input and output languages. The library must provide access to the syntax tree and symbol table of the recognized language structures. A set of junit tests must also be produced to test the produced library.

Assignment 2

This assignment is composed of two parts:

  1. Study of the configuration language used by a packet filter firewall (e.g., IPTables).
  2. Development of a translator that recognizes the language (or part of it, according to the complexity), and translates it into a JSON or XML document.

Assignment 3

This assignment is composed of two parts:

  1. Generate a compiler that given a simple input language (to be defined) compiles it in a QR code
  2. Produce another compiler that reads the QR code and it executes the commands that are coded

Assignment 4

This assignment is composed of two parts:

  1. Study of the Swift programming language (https://www.swift.org/), and perform a presentation with many examples of the main features of this language.
  2. Writing of a compiler that recognizes part of the Swift 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 5

This assignment is composed of two parts:

  1. Study of the Matlab programming language (https://www.mathworks.com/help/matlab/language-fundamentals.html), and perform a presentation with many examples of the main features of this language.
  2. Writing of a compiler that recognizes part of the Matlab 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/compilers/assignments20212022
/web/htdocs/www.skenz.it/home/data/pages/compilers/assignments20212022.txt · Last modified: 2024/04/08 22:34 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki
Privacy Policy