Table of Contents
Formal Languages and Compilers Course (year 2023/2024)
Assistant: Stefano Scanzio
www: https://www.skenz.it/ss
email: stefano.scanzio [ AT_SYMBOL ] polito.it
News
- [2025/03/07]: Welcome to the Formal Languages and Compilers course.
Calendar
Tools installation
Installation in your PC
Install Windows: How to download and install Jflex, Java, and Cup in the Windows operating system
Install Linux Bash: How to download, install and configure Jflex, Java, and Cup in the Ubuntu Linux operating system with bash shell
Install macOS: How to download, install and configure Jflex, Java, and Cup in the macOS operating system
Slides (Practice in classroom)
- Practice 1: practice1_1.pdf, practice1_2.pdf, practice1_6.pdf
Regular expressions and the scanner JFlex
Laboratories
Other tools like Jflex/Cup
- Ply Examples: Laboratories solutions with Ply (i.e., scanner and parser in Python)
- Ply: Mini guide about the use of the Ply scanner and parser
- Flex Bison Examples: Laboratories solutions with Flex and Bison (i.e., scanner and parser in C)
- Flex Bison: Mini guide about the use of the Flex scanner and the Bison parser
Assignments
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 29 April, 2024. 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 03 May, 2024. Possibly, depending on the curriculum or on the number of requests, some requests may not be accepted.
The file with the list of assignments can be found under “Materiale Didattico 2023/24” in Portale della Didattica in the file “assignments_2023-2024.pdf”.
For any information do not hesitate to contact us.
Previous assignments
- Flex Bison: Implementation of laboratories using the Flex scanner and the Bison parser in C
- Ply: Implementation of laboratories using the Ply scanner and parser
- Go to LLVM: Translator from the Go language to LLVM
- Julia to LLVM: Translator from the Julia language to LLVM
Useful Resources
- LLVM: Guide about the use of LLVM
Pseudo Assembler interpreter
- Description of the Pseudo Assembler language: interpreter.pdf
- Interpreter, jar version: interpreter.jar
To run the interpreter:java -jar interpreter.jar <filename>
- Interpreter source code: interpreter.zip
Exams
- Some previous exams 20200720.pdf,20150903.pdf,20120626.pdf,20090909.pdf, 20081110.pdf, 20080912.pdf, 20080625.pdf, 20061107.pdf
Proposed Theses (Master Degree)
New research Master Theses (Research thesis, four different topics, starting July-December 2024) (watch the video)
Thesis proposals can be downloaded here: https://www.skenz.it/ss/theses
If interested, for informations, contact: stefano.scanzio [ AT_SYMBOL ] polito.it www: https://www.skenz.it/ss
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