Advanced Compilers
Graduate course (current and previous semesters)
Course Description
About compilers course
Introduction
The course is intended to teach the students the advanced techniques that underlie the practice of Compiler Construction. The course will introduce the theory and tools that can be standardly employed in order to perform syntax-directed translation of a high-level programming language into an executable code.
These techniques can also be employed in wider areas of application, whenever we need a syntax-directed analysis of symbolic expressions and languages and their translation into a lower-level description. They have multiple applications for man-machine interaction, including verification and program analysis.
Objectives
- We are looking for a debugger which makes a chain of instructions affecting a faulty result when debugging a program. This technique is called backward slicing. Using the statistical method we could restrict this chain to those of segments which have been observed more frequently in the faulty execution rather than the successful one. Here the main difficulty is raised by accidentally passing execution. Another obstacle is the collective impact of statements on each other and the program execution results. In this respect, we have given some solutions based on information and game theory. For the time being, we are working on word embedding techniques to determine the impact of program statement on each other on the faulty results.
Motivations
- Compiler Research: The next 50 Years [pdf]
Course Materials
Common and necessary files for all semesters
Resource
- Lecture Notes (Dr Parsa) [pdf]
- Main Reference (Dragon Book) [Buy]
- DFA, Lexical Analysis and FLex [pptx]
- Convert DFA to RegExp [pdf]
- Introduction to ANTLR [pdf]
- Flex Manual [www]
- Flex One Minutes Tutorials [mp4]
Tools
- Flex for Windows (Lex and YACC for Windows)
- Flex for Linux
- Bison, The YACC-compatible Parser Generator (GNU/Linux)
- ANTLR
Sample Exams
- Semester 1388-1
- Semester 1389-1
Useful Links
Neural Fuzzing Lectures [By Morteza Zakeri]
- Deep Sequence 2 Sequence learning
- Neural Fuzzing (E-mail to: m-zakeri@live.com)
- Homeworks
- IUST DeepFuzz [Source code on github]
Current Semester (Spring 2018)
IUST Semester 1396-2
This course thought only in Fall semesters.
Previous Semesters
The main archived notes and files
Announcements
- 1397-02-04: HW03 was published.
- 1397-02-02: Welcome to advanced compilers course by Dr. Saeed Parsa!
Course Instructors
- Dr. Saeed Parsa
Teaching Assistants
- Morteza Zakeri
- Mohsen Amirian
Class Time and Location
- Semester 1396-2 (Spring 2018)
- Main Lecture: Saturdays and Mondays, 08:00 – 10:00
- Location: Classroom D104
- TA Class: Mondays, 12:00 – 13:00, Classroom D104
Grading Policy
- Comming soon . . .
Homeworks
- HW01 / Solutions
- HW02
- HW03
- HW04
Project
- Project Proposal
TA Class Notes
- HW1 descriptions
FAQ
- ?