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 will start with an asynchronous online learning setting due to the national safety circumstances. On-site learning will resume if the situation permits it. Track the notice board for updates. There is an option to watch recordings from previous semesters for students who cannot be present on campus. We have put together a playlist comprised of latest recordings of each lecture. The material is close to 1:1 with the recording, but it is the student's responsibility to check for any changes or updates. 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
- 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.
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.