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!