[2023/06/01]: All the material of the course has been uploaded
[2023/04/20]: New research Master Thesis (Research thesis, start June/July 2023) about the use of artificial neural networks for the prediction of the quality of a wireless channel (see the video)
[2023/03/13]: Welcome to the Formal Languages and Compilers course.
Calendar
[2023/06/08] from 16:00 to 17:30 (VC “Portale della Didattica”) → Live virtual classroom tutoring about practice exam (with assistance student)
[2023/05/30] from 14:30 to 17:00 (room 2C) → Seventh classroom practice (EXAMS)
[2023/05/25] from 17:30 to 19:00 (LABINF) → Sixth laboratory (Group 2)
[2023/05/25] from 16:00 to 17:30 (LABINF) → Sixth laboratory (Group 1)
[2023/05/25] from 14:30 to 16:00 (room 2C) → Sixth classroom practice
[2023/05/18] from 17:30 to 19:00 (LABINF) → Sixth laboratory (Group 2)
[2023/05/18] from 16:00 to 17:30 (LABINF) → Sixth laboratory (Group 1)
[2023/05/18] from 14:30 to 16:00 (room 2C) → Fifth classroom practice
[2023/05/11] from 17:30 to 19:00 (LABINF) → Fifth laboratory (Group 2)
[2023/05/11] from 16:00 to 17:30 (LABINF) → Fifth laboratory (Group 1)
[2023/05/11] from 14:30 to 16:00 (room 2C) → Fourth classroom practice
[2023/05/04] from 17:30 to 19:00 (LABINF) → Fourth laboratory (Group 2)
[2023/05/04] from 16:00 to 17:30 (LABINF) → Fourth laboratory (Group 1)
[2023/05/04] from 14:30 to 16:00 (room 2C) → Third classroom practice
[2023/04/20] from 17:30 to 19:00 (LABINF) → Third laboratory (Group 2)
[2023/04/20] from 16:00 to 17:30 (LABINF) → Third laboratory (Group 1)
[2023/04/20] from 14:30 to 16:00 (room 2C) → Second classroom practice
[2023/03/30] from 17:30 to 19:00 (LABINF) → Second laboratory (Group 2)
[2023/03/30] from 16:00 to 17:30 (LABINF) → Second laboratory (Group 1)
[2023/03/23] from 17:30 to 19:00 (LABINF) → First laboratory (Group 2)
[2023/03/23] from 16:00 to 17:30 (LABINF) → First laboratory (Group 1)
[2023/03/23] from 14:30 to 16:00 (room 2C) → First classroom practice
[2023/03/22] from 21:00 to 22:30 (VC “Portale della Didattica”) → Live virtual classroom tutoring about tool installation (with assistance student)
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
Other material: Context dependent regular expressions, inclusive states and exclusive states in Jflex
Classroom example: exClass-1.zip.
To compile and execute type the following commands:
Laboratory 3:laboratory_3.pdf
Implement a parser for a simplified version of the C programming language (mini C), and a parser for all the C programming language Provided code: for the first exercise the scanner, the main file, the makefile and part of the parser are provided: compiler_es3_before.zip Solutions:Exercise 1, Exercise 2, Exercise 3
Laboratory 4:laboratory_4.pdf
Parsing of a logic program and error handling for the mini C programming language. Solutions:Exercise 1, Exercise 2
Laboratory 6:laboratory_6.pdf
Realize a translator from mini C to Pseudo Assembler.
Description of the Pseudo Assembler language: interpreter.pdf
Download the interpreter: interpreter.jar
To solve the exercise start from the solution of the second exercise of laboratory 4: Exercise 2 Solutions:Exercise 1