User Tools

Site Tools


compilers
Return to Home page

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

  • [2024/07/12]: New research Master Theses (Research thesis, four different topics, starting July-December 2024) (watch the video)
  • [2024/06/03]: All the material has been uploaded on the website.
  • [2024/04/22]: Added rules for assignments.
  • [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.

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: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)

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

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

Pseudo Assembler interpreter

Exams

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
/web/htdocs/www.skenz.it/home/data/pages/compilers.txt · Last modified: 2024/07/11 23:05 by zioskenz

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