This course will teach the basic concepts of compiler design and construction. The material overviews lexical and syntax analysis, scopes, type checking, intermediate code generation, assembly code generation, optimizations, and runtime considerations. It highlights main techniques and skills required to successfully implement a compiler for a C-like language.
Logistics
This semester is based on on-site learning at the Technion with no remote participation. There is an option to watch recordings from previous semesters for students who cannot be present on campus. The material is close to 1:1 with what was taught in the Winter 2023/2024 semester. You can find lectures recording in the playlist under the syllabus section (please pay attention to the instructions below). However, it is the student's responsibility to check for any changes or updates. Links to video resources are available from the syllabus page.
The tutorials will cover the same material but will be a little different, with more time given to solving the same questions and less time spent repeating lecture explanations.
Instructions for the playlist:
Weeks 1-5: watch as usual.
There are two week 6. In the order they appear in the playlist,
- watch the first as normal.
- watch the second from 44 minutes.
Week 7: watch until 1:22:00
Week 8: watch from 49 minutes.
Remainder: watch as usual.
Homework guidance clips appear in the relevant location in the semester but can be watched independently.
Prerequisites
One of the courses 'Introduction to Set Theory and Automata' (234129) or 'Automata and Formal Languages' (236353) is a prerequisite for this course. You must pass at least one final exam of 234129/236353 in order to be registered. If you passed Moed A but failed Moed B, contact the lecturer to get approval to register. If this is your last semester, you must include a letter from the secretariat confirming that when contacting the lecturer.Grade policy
- 5% MAGEN: One dry and one wet homework assignment (2.5% each).
- 20% TAKEF: Three wet assignments:
- Lexing (2%)
- Syntax and semantic check (6%)
- Code Generation (12%)
- 75-80%: final exam. You must pass the final exam to pass the course.
Individual extensions on homework assignments will be given only in case of MILUIM or hospitalization. To receive an extension you must contact the TA in charge of the assignment before its submission date. Late dry assignments should be send to the TA by email, with an ISHUR MILUIM or hospitalization attached. Late wet assignments should be submitted via GR and the ishur by email to the TA.
Excepting the above, late dry assignments will not be accepted.
Late wet assignments except HW 5 will be accepted with a penalty of 10 points per day late, for a maximum of 3 days. Friday + Saturday are counted as one day.
Individual extensions will not be granted for reasons of work, assignments in other courses, project deadlines, etc.
Homework re-submission
- Until the resubmission deadline published when grades are returned
- If the assignment has passed all tests provided with the exercise
- At a penalty of 15 points for resubmitting, and additional penalty by the size of the diff as follows:
- First 4 lines of diff are free
- Each additional line of diff: -3 points
Previous homework grades
Previous homework grades CANNOT be transferred. We highly recommend completing the homework assignment as they constitute a vital part of the learning process. Also, the homework grades may reduce the probability that the final grade will not properly reflect the student's knowledge of the course material.
Students who had taken the course during any of the last two semesters and submitted all mandatory hw assignments, can ask for HW EXEMPTION, in which case the final grade will be according to the exam only.
MOED C
THERE IS NO MOED C. A special exam date will only be given to those who did MILUIM, according to Technion guidelines and regulations. Those eligible who would like to have a special exam must notify the lecturer about it before MOED BET is held.