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 hybrid learning with the option to watch recordings from the previous Winter for students who are quarantined or cannot be present on campus. The material is 1:1 with what was taught then. Links to video resources are available from the syllabus page.
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 - (Might change during first week of semester)
- 5% MAGEN: One dry and one wet homework assignment (2.5% each).
- 20% TAKEF: Three wet assignments:
- Lexical analysis and flex (2%)
- Introduction to Bison (6%)
- Translation to assembly (12%)
- 75%: 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 turned in to the TA's mailbox, 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 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. Any student interested in this option should make sure that he/she has submitted all mandatory assignments and his/her grade for each one was at least 70, and should contact the TA in charge, within the first 2 weeks of the current semester, stating that he/she wants to choose this option.
MOED C
THERE IS NO MOED C (unless otherwise announced by the Technion). 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.