Difference between revisions of "COMP442/6421 - winter 2024"
From Dr. Joey Paquet Web Site
(Created page with "==Course Description== '''COMP 442/6421 - Compiler Design''' (4 credits) '''Prerequisites (COMP442): '''COMP 228 or SOEN 228 or COEN 311; COMP 335; COMP 352 or COEN 352<br>...") |
(→Lecture Schedule) |
||
(13 intermediate revisions by one user not shown) | |||
Line 21: | Line 21: | ||
|| in-person lecture NN || <tt>M------</tt> || <tt>17:45-20:15</tt> || H-1070 <br> [https://www.youtube.com/channel/UCJuTFcB9yqK-wI2LHK-RyGQ [YouTube]] || Paquet, Joey || [mailto:joey.paquet@concordia.ca joey.paquet@concordia.ca] | || in-person lecture NN || <tt>M------</tt> || <tt>17:45-20:15</tt> || H-1070 <br> [https://www.youtube.com/channel/UCJuTFcB9yqK-wI2LHK-RyGQ [YouTube]] || Paquet, Joey || [mailto:joey.paquet@concordia.ca joey.paquet@concordia.ca] | ||
|- | |- | ||
− | || office hours || <tt>M------</tt> || <tt>11:00-13:00</tt> || ER-10- | + | || office hours || <tt>M------</tt> || <tt>11:00-13:00</tt> || ER-10-19 <br>[https://concordia-ca.zoom.us/j/84565410380 [zoom]] || Paquet, Joey || |
− | https://concordia-ca.zoom.us/j/84565410380 [zoom]] || Paquet, Joey || | + | |
|- | |- | ||
− | || lab NN NI || <tt>M------</tt> || <tt>20:30-22:20</tt> || H- | + | || lab NN NI || <tt>M------</tt> || <tt>20:30-22:20</tt> || H-917 || Jafarpour, Hamed || [mailto:jafarpour.ha@gmail.com jafarpour.ha@gmail.com] |
|- | |- | ||
− | || lab NN NJ || <tt>M------</tt> || <tt>15:45-17:35</tt> || H-907 || Patel, Priyang || [mailto: | + | || lab NN NJ || <tt>M------</tt> || <tt>15:45-17:35</tt> || H-907 || Patel, Priyang || [mailto:priyangpatel001@gmail.com priyangpatel001@gmail.com] |
|- | |- | ||
|| marker || || || || Jafarpour, Hamed || [mailto:jafarpour.ha@gmail.com jafarpour.ha@gmail.com] | || marker || || || || Jafarpour, Hamed || [mailto:jafarpour.ha@gmail.com jafarpour.ha@gmail.com] | ||
|- | |- | ||
− | || marker || || || || Patel, Priyang || [mailto:priyangpatel001@gmail.com] | + | || marker || || || || Patel, Priyang || [mailto:priyangpatel001@gmail.com priyangpatel001@gmail.com] |
|} | |} | ||
Line 47: | Line 46: | ||
*[ [[Media:Assignment1.COMP442-6421.paquet.2024.4.zip|handout]] ] [ [https://bit.ly/3WfbHmL video] ] project assignment #1 (lexical analyzer) | *[ [[Media:Assignment1.COMP442-6421.paquet.2024.4.zip|handout]] ] [ [https://bit.ly/3WfbHmL video] ] project assignment #1 (lexical analyzer) | ||
|| | || | ||
− | *[ [[Media:COMP442-6421.1.introduction. | + | *[ [[Media:COMP442-6421.1.introduction.2024.4.ppt|slides]] ] [ [https://bit.ly/38NQ6w8 video] ] introduction |
− | *[ [[Media:COMP442-6421.2.lexical.ppt|slides]] ] [ [https://bit.ly/399HM9Z video] ] lexical analysis ( | + | *[ [[Media:COMP442-6421.2.lexical.ppt|slides]] ] [ [https://bit.ly/399HM9Z video] ] lexical analysis (1/2) |
|| | || | ||
*[ [[Media:COMP442-6421.lab.01.introduction.2022.4.pdf|slides]] ] introduction | *[ [[Media:COMP442-6421.lab.01.introduction.2022.4.pdf|slides]] ] introduction | ||
Line 62: | Line 61: | ||
|- | |- | ||
|| week 3 | || week 3 | ||
− | || | + | || jan 29 |
|| | || | ||
− | + | *project assignment 1 due (jan 28) | |
− | + | *[ schedule ] [ [[Media:COMP442_6421.assignment1.gradingSheet.paquet.2024.4.pdf|grading sheet]] ] [ [[Media:A1.grades.COMP442-6421.paquet.2024.4.pdf|grades]] ] project assignment 1 demonstrations (jan 30-feb 1) | |
− | + | *[ [[Media:Assignment2.COMP442-6421.paquet.2024.4.zip|handout]] ] [ [https://bit.ly/3XV0E3F video] ] project assignment #2 (syntactic analyzer) | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | *project assignment 1 due (jan | + | |
− | *[ | + | |
− | *[ [[Media:Assignment2.COMP442-6421.paquet. | + | |
|| | || | ||
*[ [[Media:COMP442-6421.4.SyntaxII.ppt|slides]] ] [ [https://bit.ly/2N3B50R video] ] top-down parsing I | *[ [[Media:COMP442-6421.4.SyntaxII.ppt|slides]] ] [ [https://bit.ly/2N3B50R video] ] top-down parsing I | ||
Line 79: | Line 71: | ||
* Programmer on duty | * Programmer on duty | ||
|- | |- | ||
− | || week | + | || week 4 |
− | || feb | + | || feb 5 |
|| | || | ||
|| | || | ||
Line 88: | Line 80: | ||
*[ [[Media:COMP442-6421.lab04.grammar-parsing.2021.4.pdf|slides]] ] [ [https://concordia.yuja.com/V/Video?v=495114&node=2070774&a=1000632278&autoplay=1 video] ] grammar transformation and parsing | *[ [[Media:COMP442-6421.lab04.grammar-parsing.2021.4.pdf|slides]] ] [ [https://concordia.yuja.com/V/Video?v=495114&node=2070774&a=1000632278&autoplay=1 video] ] grammar transformation and parsing | ||
|- | |- | ||
− | || week | + | || week 5 |
− | || feb | + | || feb 12 |
|| | || | ||
|| | || | ||
*[ [[Media:COMP442-6421.7.SDTII.ppt|slides]] ] [ [https://bit.ly/3sein5P video] ] syntax-directed translation II | *[ [[Media:COMP442-6421.7.SDTII.ppt|slides]] ] [ [https://bit.ly/3sein5P video] ] syntax-directed translation II | ||
|| | || | ||
− | * | + | * Programmer on duty |
|- | |- | ||
− | || week | + | || week 6 |
− | || feb | + | || feb 19 |
|| | || | ||
− | *project assignment 2 due (feb | + | *project assignment 2 due (feb 18) |
− | *[ | + | *[ schedule ] [ [[Media:COMP442_6421.assignment2.gradingSheet.paquet.2024.4.pdf|grading sheet]] ] [ [[Media:A2.grades.COMP442-6421.paquet.2024.4.pdf|grades]] ] project assignment 2 demonstrations (feb 20 - feb 22) |
− | *[ [[Media:assignment3.COMP442-6421.paquet. | + | *[ [[Media:assignment3.COMP442-6421.paquet.2024.4.zip|handout]] ] [ [https://bit.ly/3lXSyJD video] ] project assignment #3 (AST generation) |
|| | || | ||
*[ [[Media:COMP442-6421.8.SDTAST.ppt|slides]] ] [ [https://bit.ly/2NnC7VK video] ] AST generation using SDT | *[ [[Media:COMP442-6421.8.SDTAST.ppt|slides]] ] [ [https://bit.ly/2NnC7VK video] ] AST generation using SDT | ||
Line 107: | Line 99: | ||
*[ [[Media:COMP442-6421.8.5.ASTgeneration.ppt|slides]] ] [ [https://youtu.be/_SatSSd8O58 video] ] AST generation concrete examples | *[ [[Media:COMP442-6421.8.5.ASTgeneration.ppt|slides]] ] [ [https://youtu.be/_SatSSd8O58 video] ] AST generation concrete examples | ||
|| | || | ||
− | * | + | *[ [[Media:COMP442-6421.lab05.AST.2021.4.zip|slides]] ] [ [https://concordia.yuja.com/V/Video?v=500283&node=2085385&a=1657358570&autoplay=1 video] ] AST generation |
|- | |- | ||
|| midterm break | || midterm break | ||
− | || feb | + | || feb 26 - mar 3 |
|| | || | ||
|| | || | ||
|| | || | ||
|- | |- | ||
− | || week | + | || week 7 |
− | || mar | + | || mar 4 |
|| | || | ||
− | |||
− | |||
− | |||
|| | || | ||
*[ [[Media:COMP442-6421.9.VisitorSymTab.ppt|slides]] ] [ [https://bit.ly/30nBvCp video] ] Tree traversal and symbol table generation | *[ [[Media:COMP442-6421.9.VisitorSymTab.ppt|slides]] ] [ [https://bit.ly/30nBvCp video] ] Tree traversal and symbol table generation | ||
Line 127: | Line 116: | ||
*[[Media:astvisitor.zip|Visitor for all phases]] | *[[Media:astvisitor.zip|Visitor for all phases]] | ||
|- | |- | ||
− | || week | + | || week 8 |
− | || mar | + | || mar 11 |
|| | || | ||
+ | *[ [[Media:assignment4.COMP442-6421.paquet.2024.4.zip|handout]] ] [ [http://bit.ly/3JmTosE video] ] project assignment #4 (semantic analysis) | ||
+ | |||
+ | *project assignment 3 due (mar 10) | ||
+ | *[ schedule ] [ [[Media:COMP442_6421.assignment3.gradingSheet.paquet.2024.4.pdf|grading sheet]] ] [ [[Media:A3.grades.COMP442-6421.paquet.2024.4.pdf|grades]] ] project assignment 3 demonstrations (mar 12-14) | ||
|| | || | ||
*[ [[Media:COMP442-6421.10.BottomUpI.ppt|slides]] ] [ [https://bit.ly/2Ne2A8a video] ] bottom-up parsing I | *[ [[Media:COMP442-6421.10.BottomUpI.ppt|slides]] ] [ [https://bit.ly/2Ne2A8a video] ] bottom-up parsing I | ||
+ | || | ||
+ | * Programmer on duty | ||
+ | |- | ||
+ | || week 9 | ||
+ | || mar 18 | ||
+ | || | ||
+ | || | ||
*[ [[Media:COMP442-6421.11.BottomUpII.ppt|slides]] ] [ [https://bit.ly/3f0cWUE video] ] bottom-up parsing II | *[ [[Media:COMP442-6421.11.BottomUpII.ppt|slides]] ] [ [https://bit.ly/3f0cWUE video] ] bottom-up parsing II | ||
|| | || | ||
Line 137: | Line 137: | ||
|- | |- | ||
|| week 10 | || week 10 | ||
− | || mar | + | || mar 25 |
|| | || | ||
− | *project assignment 4 due (mar | + | *project assignment 4 due (mar 24) |
− | *[ | + | *[ schedule ] [ [[Media:COMP442_6421.assignment4.gradingSheet.paquet.2024.4.pdf|grading sheet]] ] [ [[Media:A4.grades.COMP442-6421.paquet.2024.4.pdf|grades]] ] project assignment 4 demonstrations (mar 26-28) |
− | *[ [[Media:assignment5.COMP442-6421.paquet. | + | *[ [[Media:assignment5.COMP442-6421.paquet.2024.4.zip|handout]] ] [ [https://bit.ly/3qhO9k0 video] ] project assignment #5 (code generation) |
|| | || | ||
*[ [[Media:COMP442-6421.12.CodeGenerationI.ppt|slides]] ] [ [https://bit.ly/2Pp8S5u video] ] code generation I | *[ [[Media:COMP442-6421.12.CodeGenerationI.ppt|slides]] ] [ [https://bit.ly/2Pp8S5u video] ] code generation I | ||
Line 148: | Line 148: | ||
|- | |- | ||
|| week 11 | || week 11 | ||
− | || | + | || apr 8 |
|| | || | ||
|| | || | ||
Line 156: | Line 156: | ||
|- | |- | ||
|| week 12 | || week 12 | ||
− | || apr | + | || apr 15 |
|| | || | ||
− | *project assignment 5 due (apr | + | *project assignment 5 due (apr 11) |
− | *[ | + | *[ schedule ] [ [[Media:COMP442_6421.assignment5.gradingSheet.paquet.2024.4.pdf|grading sheet]] ] [ [[Media:A5.grades.COMP442-6421.paquet.2024.4.pdf|grades]] ] project assignment 5 demonstrations (apr 12-14) |
+ | * final project due (apr 14) | ||
+ | *[ schedule ] [ [[Media:COMP442_6421.final.project.demonstration.gradingSheet.paquet.2024.4.pdf|grading sheet]] ] [ [[Media:finalProjectDemonstration.grades.COMP442-6421.paquet.2024.4.pdf|grades distribution]] ] final project demonstrations (apr 15-17) | ||
+ | *[ [[Media:COMP442-6421.14.review.2024.ppt|slides]] ] [ [https://www.youtube.com/watch?v=NhmgRuCuess video] ] review and discussion on final examination | ||
|| | || | ||
− | |||
|| | || | ||
*[ [[Media:COMP442-6421.exercises.ppt|slides]] ] [ [https://www.youtube.com/watch?v=LNsiNcFh-uA video] ] exercises | *[ [[Media:COMP442-6421.exercises.ppt|slides]] ] [ [https://www.youtube.com/watch?v=LNsiNcFh-uA video] ] exercises | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
|| examination period | || examination period | ||
− | || apr | + | || apr 18 - may 1 |
|| | || | ||
− | * [ [[Media:Finalsample.COMP442-6421.paquet.2019.4.pdf|sample examination]] ] [ [[Media:finalExamination.grades.COMP442-6421.paquet. | + | * [ [[Media:Finalsample.COMP442-6421.paquet.2019.4.pdf|sample examination]] ] [ [[Media:finalExamination.grades.COMP442-6421.paquet.2024.4.pdf|grades distribution]] ] final examination (April 22nd 2024, 19h00-22h00 in H-967) |
|| | || | ||
|| | || | ||
Line 184: | Line 177: | ||
==Course Material and Resources== | ==Course Material and Resources== | ||
− | *[[Media:syllabus.COMP442-6421.paquet. | + | *[[Media:syllabus.COMP442-6421.paquet.2024.4.pdf|Course outline]] |
*[[Media:Moon.zip|Moon processor simulator: code, documentation, libraries, examples]] | *[[Media:Moon.zip|Moon processor simulator: code, documentation, libraries, examples]] |
Latest revision as of 09:08, 22 April 2024
Contents |
Course Description
COMP 442/6421 - Compiler Design (4 credits)
Prerequisites (COMP442): COMP 228 or SOEN 228 or COEN 311; COMP 335; COMP 352 or COEN 352
Prerequisites (COMP6421): COMP 5201, 5361, 5511.
Compiler organization and implementation. Programming language constructs, their syntax and semantics. Syntax directed translation, code optimization. Run-time organization of programming languages. Project. Lectures: three hours per week. Laboratory: two hours per week.
Course Schedule and Contacts
component | day | time | location | instructor | |
---|---|---|---|---|---|
in-person lecture NN | M------ | 17:45-20:15 | H-1070 [YouTube] |
Paquet, Joey | joey.paquet@concordia.ca |
office hours | M------ | 11:00-13:00 | ER-10-19 [zoom] |
Paquet, Joey | |
lab NN NI | M------ | 20:30-22:20 | H-917 | Jafarpour, Hamed | jafarpour.ha@gmail.com |
lab NN NJ | M------ | 15:45-17:35 | H-907 | Patel, Priyang | priyangpatel001@gmail.com |
marker | Jafarpour, Hamed | jafarpour.ha@gmail.com | |||
marker | Patel, Priyang | priyangpatel001@gmail.com |
Lecture Schedule
wk | wk lecture date | event | lectures topics/material | lab material (for videos - see moodle) |
---|---|---|---|---|
week 1 | jan 15 |
| ||
week 2 | jan 22 | |||
week 3 | jan 29 |
|
| |
week 4 | feb 5 | |||
week 5 | feb 12 |
| ||
week 6 | feb 19 |
|
||
midterm break | feb 26 - mar 3 | |||
week 7 | mar 4 |
| ||
week 8 | mar 11 |
|
| |
week 9 | mar 18 |
| ||
week 10 | mar 25 |
|
||
week 11 | apr 8 | |||
week 12 | apr 15 |
|
||
examination period | apr 18 - may 1 |
|