User Tools

Site Tools


compilers
Return to Home page

Formal Languages and Compilers Course (year 2024/2025)

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

News

  • [2025/04/01]: Added material of the second classroom, solution of the second laboratory, and text of the third laboratory.
  • [2025/03/26]: Added solution of the first laboratory and text of the second laboratory.
  • [2025/03/07]: Welcome to the Formal Languages and Compilers course.

Calendar

  • [2025/04/10] from 17:30 to 19:00 (LABINF) → Third laboratory (Group L-Z)
  • [2025/04/10] from 16:00 to 17:30 (LABINF) → Third laboratory (Group A-K)
  • [2025/04/10] from 14:30 to 16:00 (room R2b) → Second classroom practice
  • [2025/03/27] from 17:30 to 19:00 (LABINF) → Second laboratory (Group L-Z)
  • [2025/03/27] from 16:00 to 17:30 (LABINF) → Second laboratory (Group A-K)
  • [2025/03/20] from 17:30 to 19:00 (LABINF) → First laboratory (Group L-Z)
  • [2025/03/20] from 16:00 to 17:30 (LABINF) → First laboratory (Group A-K)
  • [2025/03/20] from 14:30 to 16:00 (room R2b) → First classroom practice
  • [2025/03/13] 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
  • 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

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: 2025/04/08 09:42 by zioskenz

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