User Tools

Site Tools


compilers
Return to Home page

Formal Languages and Compilers Course (year 2021/2022)

Assistant: Stefano Scanzio
www: https://www.skenz.it/ss
email: stefano.scanzio [ AT_SYMBOL ] polito.it

News

  • [2022/07/01]: Open PhD position in Artificial Intelligence (deadline 29 July, 2022 at 13:00) at Politecnico di Torino (possibility to perform research activities in Milano):
    Title: “reliabLE mAchine leaRning in iNdustry 4.0 (LEARN)
    More informations: Scheda_borsa_EN_IEIIT_LEARN_Scanzio.pdf
    Instruction to participate to the selection: http://dottorato.polito.it/en/artificial_intelligence
    Contact: Stefano Scanzio https://www.skenz.it/ss
  • [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/04/01]: Published assignments and rules (Assignments20212022)
  • [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:
    jflex exp.jflex
    javac Calc.java
    java Calc example_expr.txt
  • Practice 2: practice2_1.pdf, practice2_2.pdf, practice2_6.pdf
    Grammar and introduction of Cup
    Example: exClass-2.zip.
    Video on how to compile the example:

    To compile and execute the example type the following commands:
    jflex scanner.jflex
    java java_cup.MainDrawTree parser.cup
    javac *.java
    java Main example_expr.txt

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

Rules and assignments for the 2021/2022 academic year: Assignments20212022

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

Pseudo Assembler interpreter

Exams

Proposed Theses (Master Degree)

New Master Thesis (Research thesis, starting time from now to October 2022)

Thesis about reducing communication latency in TSCH wireless sensor networks by using black and white listening techniques (see 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 (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
/web/htdocs/www.skenz.it/home/data/pages/compilers.txt · Last modified: 2022/07/01 10:24 by zioskenz

Privacy Policy