User Tools

Site Tools


compilers
Return to Home page

Differences

This shows you the differences between two versions of the page.


Previous revision
compilers [2024/04/09 14:27] (current) – [News] zioskenz
Line 1: Line 1:
 +====== 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 =====
 +/*  * [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)\\ <html><iframe width="185" height="105" src="https://www.youtube.com/embed/bJ0SUgrQO5Y" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>. */
 +/*  * [2022/04/20]: Added slides of the second practice, solutions of the second laboratory, and text of the third laboratory. */
 +/*  * [2022/04/01]: Published assignments and rules ([[compilers:Assignments20212022]]) */
 +/*
 +  * [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)\\ <html><iframe width="185" height="105" src="https://www.youtube.com/embed/t5ZuavBPWnA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>
 +*/
 +
 +  * [2024/04/09]: Updated practice calendar until the end of the course, added solution of the first laboratory, and text of the second laboratory.
 +  * [2024/03/21]: Welcome to the Formal Languages and Compilers course.
 +
 +/*
 +
 +  * [2021/10/05]: New research **Master** Thesis (Research thesis, **must start now and within October 2022**) about the use of atificial neural networks for the prediction of the quality of a wireless channel (see the video)\\ <html><iframe width="185" height="105" src="https://www.youtube.com/embed/t5ZuavBPWnA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>.
 +  * [2021/06/01]: Add 20200720.pdf exam
 +  * [2021/06/01]: All the material of the practical part of the course has been added, including the commented solution of an exam [[https://www.skenz.it/compilers/exam_20150903|exam_20150903]]
 +  * Added slides of the sixth classroom practice, solutions of the sixth laboratory, and text of the seventh laboratory
 +  * [2021/05/14]: Added slides of the fifth classroom practice, solutions of the fifth laboratory, and text of the sixth laboratory
 +  * [2021/05/03]: Added slides of the fourth classroom practice, solutions of the fourth laboratory, and text of the fifth laboratory
 +  * [2021/04/25]: Added slides of the third classroom practice, solutions of the third laboratory, and text of the fourth laboratory
 +  * [2021/04/18]: Added slides of the second classroom practice, solutions of the second laboratory, and text of the third laboratory
 +  * [2021/04/07]: Added assignments for the 2020/2021 academic year: [[compilers:Assignments20202021]]
 +  * [2021/04/06]: Added text of the second laboratory
 +  * [2021/03/24]: Added solution of the first laboratory
 +  * [2021/03/24]: Added guideline for installation of need tools in macOS
 +  * [2021/03/23]: Added text of the first laboratory
 +  * [2021/03/14]: Updated guide for Jflex and Cup installation in Windows: [[compilers:Install Windows]]
 +  * [2021/03/01]: Added material for the 2020/2021 course
 +
 +/*
 +  * [2020/06/11]: All the material of the course has been published.
 +  * [2020/06/08]: Added exams that will be commented in 2020/06/11 lesson, and commented solution [[https://www.skenz.it/cs/jflex_cup/exam_20150903|IMP: exam_20150903]]
 +  * [2020/05/26]: Added slides of the sixth classroom, text of the seventh laboratory, and solutions of the sixth laboratory
 +  * [2020/04/16]: Added [[compilers:assignments]] for the 2019/2020 academic year
 +  * The material of the course will be uploaded in the course website some days before each lesson/laboratory
 +*/
 +
 +===== Calendar =====
 +  * [2024/06/13] from 21:00 to 22:30 (VC "Portale della Didattica") -> Live virtual classroom tutoring about practice exam -(with assistant student)
 +  * [2024/06/04] from 14:30 to 16:30/17:00 (room 2n) -> Seventh classroom practice (EXAMS)
 +  * [2024/05/30] from 17:30 to 19:00 (LABINF) -> Sixth laboratory (Group L-Z)
 +  * [2024/05/30] from 16:00 to 17:30 (LABINF) -> Sixth laboratory (Group A-K)
 +  * [2024/05/30] from 14:30 to 16:00 (room 10) -> Sixth classroom practice
 +  * [2024/05/23] from 17:30 to 19:00 (LABINF) -> Sixth laboratory (Group L-Z)
 +  * [2024/05/23] from 16:00 to 17:30 (LABINF) -> Sixth laboratory (Group A-K)
 +  * [2024/05/23] from 14:30 to 16:00 (room 10) -> Fifth classroom practice
 +  * [2024/05/16] from 17:30 to 19:00 (LABINF) -> Fifth laboratory (Group L-Z)
 +  * [2024/05/16] from 16:00 to 17:30 (LABINF) -> Fifth laboratory (Group A-K)
 +  * [2024/05/16] from 14:30 to 16:00 (room 10) -> Fourth classroom practice
 +  * [2024/05/09] from 17:30 to 19:00 (LABINF) -> Fourth laboratory (Group L-Z)
 +  * [2024/05/09] from 16:00 to 17:30 (LABINF) -> Fourth laboratory (Group A-K)
 +  * [2024/05/09] from 14:30 to 16:00 (room 10) -> Third classroom practice
 +  * [2024/05/02] from 17:30 to 19:00 (LABINF) -> Third laboratory (Group L-Z)
 +  * [2024/05/02] from 16:00 to 17:30 (LABINF) -> Third laboratory (Group A-K)
 +  * [2024/05/02] from 14:30 to 16:00 (room 10) -> Second classroom practice
 +  * [2024/04/11] from 17:30 to 19:00 (LABINF) -> Second laboratory (Group L-Z)
 +  * [2024/04/11] from 16:00 to 17:30 (LABINF) -> Second laboratory (Group A-K)
 +  * [2024/04/04] from 17:30 to 19:00 (LABINF) -> First laboratory (Group L-Z)
 +  * [2024/04/04] from 16:00 to 17:30 (LABINF) -> First laboratory (Group A-K)
 +  * [2024/04/04] from 14:30 to 16:00 (room 10) -> First classroom practice 
 +  * [2024/03/21] from 21:00 to 22:30 (VC "Portale della Didattica") -> Live virtual classroom tutoring about tool installation (with assistant student)
 +
 +/*  * [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
 +*/
 +
 +  
 +
 +/*
 +  * [2021/06/01] from 14:30 to 16:30/17:00 (VC "Portale della Didattica") -> Seventh classroom practice
 +  * [2021/05/27] from 16:00 to 19:00 (VC "Portale della Didattica") -> Seventh laboratory
 +  * [2021/05/25] from 16:00 to 17:30 (VC "Portale della Didattica") -> Sixth classroom practice
 +  * [2021/05/20] from 16:00 to 19:00 (VC "Portale della Didattica") -> Sixth laboratory
 +  * [2021/05/18] from 14:30 to 16:30 (VC "Portale della Didattica") -> Fifth classroom practice
 +  * [2021/05/06] from 16:00 to 19:00 (VC "Portale della Didattica") -> Fifth laboratory
 +  * [2021/05/04] from 16:00 to 17:30 (VC "Portale della Didattica") -> Fourth classroom practice
 +  * [2021/04/29] from 16:00 to 19:00 (VC "Portale della Didattica") -> Fourth laboratory
 +  * [2021/04/27] from 16:00 to 17:30 (VC "Portale della Didattica") -> Third classroom practice
 +  * [2021/04/22] from 16:00 to 19:00 (VC "Portale della Didattica") -> Third laboratory
 +  * [2021/04/20] from 16:00 to 17:30 (VC "Portale della Didattica") -> Second classroom practice
 +  * [2021/04/08] from 16:00 to 19:00 (VC "Portale della Didattica") -> Second laboratory
 +  * [2021/03/25] from 17:30 to 19:00 (VC "Portale della Didattica") -> First laboratory (Group 2: M-Z)
 +  * [2021/03/25] from 16:00 to 17:30 (VC "Portale della Didattica") -> First laboratory (Group 1: A-L)
 +  * [2021/03/23] from 21:00 to 22:30 (VC "Portale della Didattica") -> Tutoring about tool installation
 +  * [2021/03/18] from 16:00 to 17:30 (VC "Portale della Didattica") -> First classroom practice
 +*/
 +
 +
 +
 +
 +/*
 +  * [2020/06/11] from 14:30 to 16:00/16:30 (Virtual Classroom "Portale della Didattica") -> **Commented exams**
 +  * [2020/06/08] from 08:30 to 11:30 (Virtual Classroom "Portale della Didattica") -> Seventh laboratory
 +  * [2020/05/29] from 14:30 to 16:00 (Virtual Classroom "Portale della Didattica") -> Sixth classroom practice
 +  * [2020/05/25] from 08:30 to 11:30 (Virtual Classroom "Portale della Didattica") -> Sixth laboratory
 +  * [2020/05/22] from 14:30 to 16:00 (Virtual Classroom "Portale della Didattica") -> Fifth classroom practice
 +  * [2020/05/18] from 08:30 to 11:30 (Virtual Classroom "Portale della Didattica") -> Fifth laboratory
 +  * [2020/05/15] from 14:30 to 16:00 (Virtual Classroom "Portale della Didattica") -> Fourth classroom practice
 +  * [2020/05/11] from 08:30 to 11:30 (Virtual Classroom "Portale della Didattica") -> Fourth laboratory
 +  * [2020/05/08] from 14:30 to 16:00 (Virtual Classroom "Portale della Didattica") -> Third classroom practice
 +  * [2020/04/27] from 08:30 to 11:30 (Virtual Classroom "Portale della Didattica") -> Third laboratory
 +  * [2020/04/24] from 14:30 to 16:00 (Virtual Classroom "Portale della Didattica") -> Second classroom practice
 +  * [2020/04/20] from 08:30 to 11:30 (Virtual Classroom "Portale della Didattica") -> Second laboratory
 +  * [2020/04/06] from 10:00 to 11:30 (Virtual Classroom "Portale della Didattica") -> First laboratory (Group 2: M-Z)
 +  * [2020/04/06] from 08:30 to 10:00 (Virtual Classroom "Portale della Didattica") -> First laboratory (Group 1: A-L)
 +  * [2020/03/27] from 14:30 to 16:00 (Virtual Classroom "Portale della Didattica") -> First classroom practice
 +*/
 +
 +===== Tools installation =====
 +
 +/*
 +==== VLAIB link (To use the software provided by Polito) ====
 +Connect to VM: [[https://laibathome.polito.it/]] (to enter use "s123456@studenti.polito.it" as id, the "Portale della didattica" password, and "POLITO").\\ Guide about VLAIB: [[https://www.areait.polito.it/docs/SERV_354_3.PDF]]
 +*/
 +==== Installation in your PC ====
 +[[compilers:Install Windows]]: How to download and install Jflex, Java, and Cup in the Windows operating system\\
 +[[compilers:Install Linux Bash]]: How to download, install and configure Jflex, Java, and Cup in the Ubuntu Linux operating system with bash shell\\
 +[[compilers:Install macOS]]: How to download, install and configure Jflex, Java, and Cup in the macOS operating system\\
 +
 +/*
 +==== Virtual Machine ====
 +All the needed tools were already installed in the virtual machine for **VirtualBox** with Linux you can download here: [[https://www.skenz.it/repository/compilers/progs/FLC.ova.zip|FLC.ova.zip]] (size: 3.9 GBytes, the password of the zip file will be provided the first practice lesson).
 +*/
 +
 +===== Slides (Practice in classroom) =====
 +
 +  * **Practice 1**: [[https://www.skenz.it/repository/compilers/classroom/practice1_1.pdf|practice1_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice1_2.pdf|practice1_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice1_6.pdf|practice1_6.pdf]]\\ Regular expressions and the scanner JFlex\\ Other material: Context dependent regular expressions, inclusive states and exclusive states in Jflex\\ <html><iframe width="250" height="140" src="https://www.youtube.com/embed/ho07RTTFENk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>\\ Classroom example: [[https://www.skenz.it/repository/compilers/classroom/exClass-1.zip|exClass-1.zip]].\\ To compile and execute type the following commands:<code bash>
 +jflex exp.jflex
 +javac Calc.java
 +java Calc example_expr.txt
 +</code>
 +
 +/*
 +  * **Practice 2**: [[https://www.skenz.it/repository/compilers/classroom/practice2_1.pdf|practice2_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice2_2.pdf|practice2_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice2_6.pdf|practice2_6.pdf]]\\ Grammar and introduction of Cup\\ Example: [[https://www.skenz.it/repository/compilers/classroom/exClass-2.zip|exClass-2.zip]].\\ Video on how to compile the example:\\ <html><iframe width="250" height="140" src="https://www.youtube.com/embed/9zK-T8RuWM8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>\\ To compile and execute the example type the following commands:<code bash>
 +jflex scanner.jflex
 +java java_cup.MainDrawTree parser.cup
 +javac *.java
 +java Main example_expr.txt
 +</code>
 +  * **Practice 3**: [[https://www.skenz.it/repository/compilers/classroom/practice3_1.pdf|practice3_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice3_2.pdf|practice3_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice3_6.pdf|practice3_6.pdf]]\\ Ambiguous grammars, Lists, Handling syntax errors\\ Additional material: complex example about shift/reduce conflicts: [[https://www.skenz.it/repository/compilers/classroom/exClass-4.zip|exClass-4.zip]]\\ <html><iframe width="250" height="140" src="https://www.youtube.com/embed/GIyU2wXNXOk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>
 +  * **Practice 4**: [[https://www.skenz.it/repository/compilers/classroom/practice4_1.pdf|practice4_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice4_2.pdf|practice4_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice4_6.pdf|practice4_6.pdf]]\\ Semantic: Synthesized attributes\\ Classroom example: [[https://www.skenz.it/repository/compilers/classroom/exClass-4b.zip|exClass-4b.zip]]\\ Additional material: debugging features of the Cup parser\\ <html><iframe width="250" height="140" src="https://www.youtube.com/embed/XkkuGMzKyRA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>
 +  * **Practice 5**: [[https://www.skenz.it/repository/compilers/classroom/practice5_1.pdf|practice5_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice5_2.pdf|practice5_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice5_6.pdf|practice5_6.pdf]]\\ Semantic: Inherited attributes\\ Classroom example (Inherithed attributes): [[https://www.skenz.it/repository/compilers/classroom/exClass-5.zip|exClass-5.zip]]
 +  * **Practice 6**: [[https://www.skenz.it/repository/compilers/classroom/practice6_1.pdf|practice6_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice6_2.pdf|practice6_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice6_6.pdf|practice6_6.pdf]]\\ Type-checking and exam solution\\ Commented exam: [[https://www.skenz.it/repository/compilers/exams/exam1.pdf|Exam 1]].\\ **Solution:** [[https://www.skenz.it/repository/compilers/exercises/sol_exam1.zip|sol_exam1]]
 +  * **Practice 7**: [[https://www.skenz.it/repository/compilers/exams/exam2.pdf|exam2.pdf]], [[https://www.skenz.it/repository/compilers/exams/20150903.pdf|20150903.pdf]]\\ **Solutions:** Exam2: [[https://www.skenz.it/repository/compilers/exercises/sol20060207-1.zip|sol1]], [[https://www.skenz.it/repository/compilers/exercises/sol20060207-2.zip|sol2]], [[https://www.skenz.it/repository/compilers/exercises/sol20060207-3.zip|sol3]]
 +  * **Other material:**\\ Commented solution of 20150903.pdf exam: [[https://www.skenz.it/compilers/exam_20150903|IMP: exam_20150903]]
 +*/
 +
 +
 +/*
 +  * **Practice 4**: [[https://www.skenz.it/repository/compilers/classroom/practice4_1.pdf|practice4_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice4_2.pdf|practice4_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice4_6.pdf|practice4_6.pdf]]\\ Semantic: Synthesized attributes\\ Classroom example: [[https://www.skenz.it/repository/compilers/classroom/exClass-4b.zip|exClass-4b.zip]]\\ Additional material: debugging features of the Cup parser\\ <html><iframe width="250" height="140" src="https://www.youtube.com/embed/XkkuGMzKyRA" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>
 +
 +  * **Practice 5**: [[https://www.skenz.it/repository/compilers/classroom/practice5_1.pdf|practice5_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice5_2.pdf|practice5_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice5_6.pdf|practice5_6.pdf]]\\ Semantic: Inherited attributes\\ Classroom example (Inherithed attributes): [[https://www.skenz.it/repository/compilers/classroom/exClass-5.zip|exClass-5.zip]]
 +
 +  * **Practice 6**: [[https://www.skenz.it/repository/compilers/classroom/practice6_1.pdf|practice6_1.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice6_2.pdf|practice6_2.pdf]], [[https://www.skenz.it/repository/compilers/classroom/practice6_6.pdf|practice6_6.pdf]]\\ Type-checking and exam solution\\ Commented exam: [[https://www.skenz.it/repository/compilers/exams/exam1.pdf|Exam 1]].\\ **Solution:** [[https://www.skenz.it/repository/compilers/exercises/sol_exam1.zip|sol_exam1]]
 +
 +  * **Practice 7**: [[https://www.skenz.it/repository/compilers/exams/exam2.pdf|exam2.pdf]], [[https://www.skenz.it/repository/compilers/exams/20150903.pdf|20150903.pdf]]\\ Exams commented in classroom\\ **Solutions:** Exam2: [[https://www.skenz.it/repository/compilers/exercises/sol20060207-1.zip|sol1]], [[https://www.skenz.it/repository/compilers/exercises/sol20060207-2.zip|sol2]], [[https://www.skenz.it/repository/compilers/exercises/sol20060207-3.zip|sol3]] 
 +  * **Other material:**\\ Commented solution of 20150903.pdf exam: [[https://www.skenz.it/compilers/exam_20150903|IMP: exam_20150903]]
 +*/
 +
 +===== Laboratories =====
 +
 +
 +  * **Laboratory 1:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_1.pdf|laboratory_1.pdf]]\\ Regular expression and the scanner JFlex\\ Before starting try to compile and to understand the following example: [[https://www.skenz.it/repository/compilers/classroom/exClass-1.zip|exClass-1.zip]]\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex1-1.zip|Exercise 1]], [[https://www.skenz.it/repository/compilers/exercises/ex1-2.zip|Exercise 2]], [[https://www.skenz.it/repository/compilers/exercises/ex1-3.zip|Exercise 3]] 
 +  * **Laboratory 2:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_2.pdf|laboratory_2.pdf]]\\ Exercises regarding the JFlex scanner.
 +
 +/*
 +  * \\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex2-1.zip|Exercise 1]], [[https://www.skenz.it/repository/compilers/exercises/ex2-2.zip|Exercise 2]]
 +
 +  * **Laboratory 3:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_3.pdf|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: [[https://www.skenz.it/repository/compilers/exercises/es3_before/compiler_es3_before.zip|compiler_es3_before.zip]]\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex3-1.zip|Exercise 1]], [[https://www.skenz.it/repository/compilers/exercises/ex3-2.zip|Exercise 2]], [[https://www.skenz.it/repository/compilers/exercises/ex3-3.zip|Exercise 3]]
 +  * **Laboratory 4:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_4.pdf|laboratory_4.pdf]]\\ Parsing of a logic program and error handling for the mini C programming language.\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex4-1.zip|Exercise 1]], [[https://www.skenz.it/repository/compilers/exercises/ex4-2.zip|Exercise 2]]
 +  * **Laboratory 5:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_5.pdf|laboratory_5.pdf]]\\ Simple calculator.\\ An example regarding synthesized attributes: [[https://www.skenz.it/repository/compilers/classroom/exClass-4b.zip|exClass-4b.zip]]\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex5.zip|Exercise 1]]
 +  * **Laboratory 6:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_6.pdf|laboratory_6.pdf]]\\ Realize a translator from **mini C** to **Pseudo Assembler**.\\ Description of the Pseudo Assembler language: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.pdf|interpreter.pdf]]\\ Download the interpreter: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.jar|interpreter.jar]]\\ To solve the exercise start from the solution of the second exercise of laboratory 4: [[https://www.skenz.it/repository/compilers/exercises/ex4-2.zip|Exercise 2]]\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex6.zip|Exercise 1]]
 +  * **Laboratory 7:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_7.pdf|laboratory_7.pdf]]\\ Type checking\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex7-1.zip|Exercise 1]] [[https://www.skenz.it/repository/compilers/exercises/ex7-2.zip|Exercise 2]]
 +*/
 +
 +
 + 
 +/*
 +
 +
 +  * **Laboratory 6:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_6.pdf|laboratory_6.pdf]]\\ Realize a translator from **mini C** to **Pseudo Assembler**.\\ Description of the Pseudo Assembler language: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.pdf|interpreter.pdf]]\\ Download the interpreter: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.jar|interpreter.jar]]\\ To solve the exercise start from the solution of the second exercise of laboratory 4: [[https://www.skenz.it/repository/compilers/exercises/ex4-2.zip|Exercise 2]]\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex6.zip|Exercise 1]]
 +  * **Laboratory 7:** [[https://www.skenz.it/repository/compilers/laboratory/laboratory_7.pdf|laboratory_7.pdf]]\\ Type checking\\ **Solutions:** [[https://www.skenz.it/repository/compilers/exercises/ex7-1.zip|Exercise 1]] [[https://www.skenz.it/repository/compilers/exercises/ex7-2.zip|Exercise 2]]
 +*/
 +
 +
 +===== Other tools like Jflex/Cup =====
 +  * [[compilers:Ply Examples]]: Laboratories solutions with Ply (i.e., scanner and parser in Python)
 +    * [[compilers:Ply]]: Mini guide about the use of the Ply scanner and parser
 +  * [[compilers:Flex Bison Examples]]: Laboratories solutions with Flex and Bison (i.e., scanner and parser in C)
 +    * [[compilers:Flex Bison]]: Mini guide about the use of the Flex scanner and the Bison parser
 +
 +===== Assignments ======
 +/*
 +Rules and assignments for the 2022/2023 academic year: [[compilers:Assignments20222023]]
 +*/
 +
 +==== Previous assignments ====
 +  * [[compilers:Flex Bison]]: Implementation of laboratories using the Flex scanner and the Bison parser in C
 +  * [[compilers:Ply]]: Implementation of laboratories using the Ply scanner and parser
 +  * [[compilers:Go to LLVM]]: Translator from the Go language to [[compilers:LLVM]]
 +  * [[compilers:Julia to LLVM]]: Translator from the Julia language to [[compilers:LLVM]]
 +
 +===== Useful Resources =====
 +  * [[compilers:LLVM]]: Guide about the use of LLVM
 +  * **Jflex:** [[https://www.jflex.de|Official Jflex Website]], [[https://www.jflex.de/manual.pdf|Official Jflex Manual]], [[https://www.jflex.de/docu.html|Official Jflex Documentation]]
 +  * **CUP:** [[http://www2.cs.tum.edu/projects/cup/|Official CUP Website]], [[http://www2.cs.tum.edu/projects/cup/docs.php|Official CUP Documentation]]
 +
 +===== Pseudo Assembler interpreter =====
 +  * Description of the Pseudo Assembler language: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.pdf|interpreter.pdf]]
 +  * Interpreter, jar version: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.jar|interpreter.jar]]\\ To run the interpreter: ''java -jar interpreter.jar <filename>''
 +  * Interpreter source code: [[https://www.skenz.it/repository/compilers/interpreter/interpreter.zip|interpreter.zip]]
 +
 +===== Exams =====
 +  * Some previous exams [[https://www.skenz.it/repository/compilers/exams/20200720.pdf|20200720.pdf]],[[https://www.skenz.it/repository/compilers/exams/20150903.pdf|20150903.pdf]],[[https://www.skenz.it/repository/compilers/exams/20120626.pdf|20120626.pdf]],[[https://www.skenz.it/repository/compilers/exams/20090909.pdf|20090909.pdf]], [[https://www.skenz.it/repository/compilers/exams/20081110.pdf|20081110.pdf]], [[https://www.skenz.it/repository/compilers/exams/20080912.pdf|20080912.pdf]], [[https://www.skenz.it/repository/compilers/exams/20080625.pdf|20080625.pdf]], [[https://www.skenz.it/repository/compilers/exams/20061107.pdf|20061107.pdf]]
 +
 +===== Proposed Theses (Master Degree) =====
 +/*
 +==== New Master Thesis (Research thesis, must start within **January 2022**) ====
 +Thesis about the use of **Artificial Neural Networks** to predict the **future performance** in terms of frame delivery ratio of a wireless channel based on the IEEE 802.11 (**Wi-Fi**) standard (see the video)\\ <html><iframe width="500" height="280" src="https://www.youtube.com/embed/-QlK9nnAsII" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>
 +*/
 +
 +==== New Master Thesis (Research thesis, starting time from now to September 2023) ====
 +Thesis about the use of artificial neural networks for the prediction of the quality of a wireless channel (see the video)\\ <html><iframe width="185" height="105" src="https://www.youtube.com/embed/t5ZuavBPWnA" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>.
 +
 +Thesis about reducing communication latency in TSCH wireless sensor networks by using black and white listening techniques (see the video)\\ <html><iframe width="185" height="105" src="https://www.youtube.com/embed/bJ0SUgrQO5Y" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>.
 +
 +<html>
 +<iframe width="280" height="157" src="https://www.youtube.com/embed/6sLmcXQcWMc" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 +</html>
 +
 +Thesis proposals can be downloaded here: [[https://www.skenz.it/ss/theses]]\\ **If interested**, for informations, contact: stefano.scanzio [ AT_SYMBOL ] polito.it  (tel. 011 090 5438)  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?rev=1585248843&do=diff

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