Compilers
Posted on Tue 23 March 2021 in courses
Teaching assistant
Foreword
I was teaching assistant of Compiler Design and Construction B.Sc. course by Dr. Saeed Parsa for seven semesters (more than three years) at Iran University of Science and Technology. Our teaching materials during these three years are available to view and download.
I put all source code that I developed to practically teach compiler to students on the GitHub page, the IUST compiler course.
Useful links
Projects
I designed and planned some practical projects about the applications of compiler science in program analysis. The projects shown in Table 1 have been assigned to the students who take the IUST compiler course during different semesters. Click on the link in the “Project” column to see the project proposal.
Table 1: Compiler projects.
Project | Description | Semesters | Courses |
---|---|---|---|
OpenUnderstand 2 | Low-level source code metrics calculation | Spring 2022 | Compiler |
OpenUnderstand | Symbols table development | Fall 2021, Spring 2022, | Compiler |
QualityMeter | - Source code quality attribute computation - Refactoring opportunity detection | Fall 2021 | Advanced compiler |
CodART 2 | Source code smell detection | Spring 2021 (Cancelled) | Compiler |
CodART | Source code refactoring | Fall 2020, Spring 2021, | Compiler |
CodART | Refactoring to design pattern at the source code level | Fall 2020 | Advanced compiler |
CleanCode | Source code smell detection | Fall 2019, Spring 2020 | Compiler |
CodA | Source code instrumentation and testbed analysis tool | Fall 2018 | Compiler / Advanced compiler |
ANTLR MiniJava | Parse-tree and intermediate code generation for the MiniJava programming language with ANTLR | Fall 2016, Spring 2017 | Compiler |
As a student
I always enjoy learning about compilers, code transformation, and their application in automated software engineering. I firmly believe that the next generation of software engineers are intelligent white-box compilers! Such compilers are structure-aware, context-aware, and domain-aware, assisting the programmer in writing high-quality and testable programs. Compilers helped artificial intelligence (AI) in the past, and now AI boosts compilers!