[2022/05/30]: All the material for the course was uploaded.
[2022/05/23]: Added slides of the sixth practice, the material of the seventh practice, solutions of the sixth laboratory, and text of the seventh laboratory.
[2022/05/13]: Added slides of the fifth practice, solutions of the fifth laboratory, and text of the sixth laboratory.
[2022/05/06]: New research Master Thesis (Research thesis, starting time from now to October 2022) about reducing communication latency in TSCH wireless sensor networks by using black and white listening techniques (see the video)
.
[2022/05/02]: Added slides of the fourth practice, solutions of the fourth laboratory, and text of the fifth laboratory.
[2022/04/25]: Added slides of the third practice, solutions of the third laboratory, and text of the fourth laboratory.
[2022/04/20]: Added slides of the second practice, solutions of the second laboratory, and text of the third laboratory.
[2022/03/29]: Added solutions of the first laboratory, the text of the second laboratory, and the section “Other tools like Jflex/Cup”
[2022/02/28]: Welcome to the Formal Languages and Compilers course
Calendar
[2022/05/31] from 14:30 to 16:30/17:00 (room 10) → Fifth classroom practice (Exams solutions)
[2022/05/26] from 17:30 to 19:00 (LABINF) → Fifth laboratory (Group 2)
[2022/05/26] from 16:00 to 17:30 (LABINF) → Fifth laboratory (Group 1)
[2022/05/26] from 14:30 to 16:00 (room 10) → Sixth classroom practice
[2022/05/19] from 17:30 to 19:00 (LABINF) → Sixth laboratory (Group 2)
[2022/05/19] from 16:00 to 17:30 (LABINF) → Sixth laboratory (Group 1)
[2022/05/19] from 14:30 to 16:00 (room 10) → Fifth classroom practice
[2022/05/05] from 17:30 to 19:00 (LABINF) → Fifth laboratory (Group 2)
[2022/05/05] from 16:00 to 17:30 (LABINF) → Fifth laboratory (Group 1)
[2022/05/05] from 14:30 to 16:00 (room 10) → Fourth classroom practice
[2022/04/28] from 17:30 to 19:00 (LABINF) → Fourth laboratory (Group 2)
[2022/04/28] from 16:00 to 17:30 (LABINF) → Fourth laboratory (Group 1)
[2022/04/28] from 14:30 to 16:00 (room 10) → Third classroom practice
[2022/04/21] from 17:30 to 19:00 (LABINF) → Third laboratory (Group 2)
[2022/04/21] from 16:00 to 17:30 (LABINF) → Third laboratory (Group 1)
[2022/04/21] from 14:30 to 16:00 (room 10) → Second classroom practice
[2022/03/31] from 17:30 to 19:00 (LABINF) → Second laboratory (Group 2)
[2022/03/31] from 16:00 to 17:30 (LABINF) → Second laboratory (Group 1)
[2022/03/24] from 17:30 to 19:00 (LABINF) → First laboratory (Group 2)
[2022/03/24] from 16:00 to 17:30 (LABINF) → First laboratory (Group 1)
[2022/03/24] from 14:30 to 16:00 (room 10) → First classroom practice
[2022/03/21] 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