Difference between revisions of "COMP442/6421 - winter 2020"

From Dr. Joey Paquet Web Site
Jump to: navigation, search
(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)
 
(155 intermediate revisions by one user not shown)
Line 16: Line 16:
 
! {{tableHeaderCell}} | location   
 
! {{tableHeaderCell}} | location   
 
! {{tableHeaderCell}} | instructor
 
! {{tableHeaderCell}} | instructor
! {{tableHeaderCell}} | e-mail address
+
! {{tableHeaderCell}} | email
  
 
|-
 
|-
|| lecture NN    || <tt>M------</tt> || <tt>17:45-20:15</tt> || <tt>H937</tt>      || Paquet, Joey      || paquet@cse.concordia.ca    
+
|| lecture NN    ||                       ||                     || [https://www.youtube.com/channel/UCJuTFcB9yqK-wI2LHK-RyGQ YouTube]    || Paquet, Joey      || [mailto:paquet@cse.concordia.ca paquet@cse.concordia.ca] 
 
|-
 
|-
|| office hours  || <tt>--W----</tt> || <tt>10:00-12:00</tt> || <tt>EV3.221</tt>  || Paquet, Joey      ||                            
+
|| office hours  || <tt>M-W-F--</tt>       || <tt>11:00-11:30</tt> || [https://concordia-ca.zoom.us/j/579735285) zoom]    || Paquet, Joey      ||  
 
|-
 
|-
|| lab hours NNI || <tt>M------</tt> || <tt>20:30-22:20</tt> || <tt>TBD</tt>      || TBD                ||
+
||               || <tt>M-W-F--</tt>      || <tt>19:00-19:30</tt> || [https://concordia-ca.zoom.us/j/662960823) zoom]    || Paquet, Joey       ||                          
|- 
+
|| lab hours NNJ || <tt>M------</tt> || <tt>15:45-17:30</tt> || <tt>TBD</tt>      || TBD                ||
+
|-  
+
|| lab hours NNK || <tt>M------</tt> || <tt>20:30-22:20</tt> || <tt>TBD</tt>       || TBD                || 
+
 
|-
 
|-
|| marker        ||                 ||                      ||                    || Zachary Lapointe  || zachary.lapointe@mail.concordia.ca   
+
|| lab hours    || <tt>M--T---</tt>      || <tt>15:00-16:00</tt> || [https://concordia-ca.zoom.us/j/705180957) zoom]    || Zachary Lapointe  || 
 +
|-
 +
|| marker        ||                       ||                      ||                    || Zachary Lapointe  || [mailto:zachary.lapointe@mail.concordia.ca zachary.lapointe@mail.concordia.ca]    
 
|}
 
|}
  
Line 36: Line 34:
 
{| {{simpleTable}}
 
{| {{simpleTable}}
 
! {{tableHeaderCell}}| wk  
 
! {{tableHeaderCell}}| wk  
! {{tableHeaderCell}}| date
+
! {{tableHeaderCell}}| wk starting date
 
! {{tableHeaderCell}}| event
 
! {{tableHeaderCell}}| event
 
! {{tableHeaderCell}}| lectures topics/material
 
! {{tableHeaderCell}}| lectures topics/material
Line 51: Line 49:
 
|| jan 13
 
|| jan 13
 
||
 
||
*[[Media:Assignment1.COMP442.paquet.2020.4.pdf|project assignment #1 (lexical analyzer) (handout)]]
+
*[[Media:Assignment1.COMP442-6421.paquet.2020.4.zip|project assignment #1 (lexical analyzer) (handout)]]
 
||
 
||
 
*[[Media:COMP442-6421.2.lexical.ppt|lexical analysis]]
 
*[[Media:COMP442-6421.2.lexical.ppt|lexical analysis]]
 
||
 
||
*[[Media:COMP442-6421.lab1.pdf|lab slides 1]]
+
*[[Media:COMP442-6421.lab.01.introduction.pdf|lab slides 1]]
 
|-
 
|-
 
|| week 3
 
|| week 3
Line 63: Line 61:
 
*[[Media:COMP442-6421.3.SyntaxI.ppt|syntax analysis: introduction]]
 
*[[Media:COMP442-6421.3.SyntaxI.ppt|syntax analysis: introduction]]
 
||
 
||
 +
*[[Media:COMP442-6421.lab.02.lexer.pdf|lab slides 2]]
 
|-
 
|-
 
|| week 4
 
|| week 4
Line 68: Line 67:
 
||
 
||
 
*project assignment 1 due (jan 27) [ [[Media:Grades.assignment1.COMP442-6421.paquet.2020.4.pdf|grades]] ]
 
*project assignment 1 due (jan 27) [ [[Media:Grades.assignment1.COMP442-6421.paquet.2020.4.pdf|grades]] ]
*[[Media:Assignment2.COMP442.paquet.2020.4.pdf|project assignment #2 (syntactic analyzer) (handout)]]
+
*[[Media:Assignment2.COMP442-6421.paquet.2020.4.zip|project assignment #2 (syntactic analyzer) (handout)]]
 
||
 
||
 
*[[Media:COMP442-6421.4.SyntaxII.ppt|top-down parsing I]]
 
*[[Media:COMP442-6421.4.SyntaxII.ppt|top-down parsing I]]
||
+
||  
*[[Media:COMP442-6421.lab2.pdf|lab slides 2]]
+
* Programmer On duty
 
|-
 
|-
 
|| week 5
 
|| week 5
Line 81: Line 80:
 
*[[Media:COMP442-6421.6.SDT.ppt|syntax-directed translation I]]
 
*[[Media:COMP442-6421.6.SDT.ppt|syntax-directed translation I]]
 
||
 
||
*[[Media:COMP442-6421.lab3.pdf|lab slides 3]]
+
*[[Media:COMP442-6421.lab.03.parser.pdf|lab slides 3]]
 
|-
 
|-
 
|| week 6
 
|| week 6
Line 90: Line 89:
 
*[[Media:COMP442-6421.8.SDTAST.ppt|AST generation using SDT]]
 
*[[Media:COMP442-6421.8.SDTAST.ppt|AST generation using SDT]]
 
||
 
||
*[[Media:COMP442-6421.lab4.pdf|lab slides 4]]
+
*[[Media:COMP442-6421.lab.04.SDT.zip|lab slides 4]]
 
|-
 
|-
 
|| week 7
 
|| week 7
 
|| feb 17
 
|| feb 17
 
||
 
||
*project assignment 2 due (feb 17) [ [[Media:Grades.assignment2.COMP442-6421.paquet.2019.4.pdf|grades]] ]
+
*project assignment 2 due (feb 17) [ [[Media:Grades.assignment2.COMP442-6421.paquet.2020.4.pdf|grades]] ]
*[[Media:assignment3.COMP442.paquet.2020.4.pdf|project assignment #3 (symbol table creation)(handout)]]
+
*[[Media:assignment3.COMP442-6421.paquet.2020.4.zip|project assignment #3 (symbol table creation)(handout)]]
 
||
 
||
 
*[[Media:COMP442-6421.9.VisitorSymTab.ppt|Tree traversal and symbol table generation]]
 
*[[Media:COMP442-6421.9.VisitorSymTab.ppt|Tree traversal and symbol table generation]]
 
||
 
||
*[[Media:COMP442-6421.lab5.pdf|lab slides 5]]
+
* Programmer On Duty
*[[Media:astvisitor.zip|Visitor for all phases (updated)]]
+
 
|-
 
|-
|| mid-term break
+
|| midterm break
 
|| feb 24 - mar 1
 
|| feb 24 - mar 1
 
||
 
||
Line 115: Line 113:
 
*[[Media:COMP442-6421.10.BottomUpI.ppt|bottom-up parsing I]]
 
*[[Media:COMP442-6421.10.BottomUpI.ppt|bottom-up parsing I]]
 
||
 
||
 +
*[[Media:COMP442-6421.lab.05.Visitor.pdf|lab slides 5]]
 +
*[[Media:astvisitor.zip|Visitor for all phases]]
 
|-
 
|-
 
|| week 9
 
|| week 9
Line 122: Line 122:
 
*[[Media:COMP442-6421.11.BottomUpII.ppt|bottom-up parsing II]]
 
*[[Media:COMP442-6421.11.BottomUpII.ppt|bottom-up parsing II]]
 
||
 
||
 +
*[[Media:COMP442-6421.lab.06.LRparsing.pdf|lab slides 6]]
 
|-
 
|-
 
|| week 10
 
|| week 10
|| mar 16
+
|| mar 23
 
||
 
||
*DISC deadline (mar 23)
+
*DISC deadline (see [[#Course Material and Resources|Course Material and Resources]])
*project assignment 3 due (mar 16) [ [[Media:Grades.assignment3.COMP442-6421.paquet.2020.4.pdf|grades]] ]
+
*[[Media:assignment4.COMP442.paquet.2020.4.pdf|project assignment #4 (code generation) (handout)]]
+
 
||
 
||
*[[Media:COMP442-6421.12.CodeGenerationI.ppt|code generation I]]
+
*[ [https://www.youtube.com/watch?v=KPhTIAlAXZs video] ] How we are going to proceed for the remainder of the semester
 +
*[ [https://www.youtube.com/watch?v=XgqpgJjIqWg video] ] Update on resources, deadlines, grading scheme, and final examination
 +
 
 +
*[ [https://www.youtube.com/watch?v=BN9Px7bvnBg video] ] [ [[Media:COMP442-6421.12.CodeGenerationI.ppt|slides]] ] code generation I
 
||
 
||
*[[Media:COMP442-6421.lab6.pdf|lab slides 6]]
+
* Programmer On Duty
 
|-
 
|-
 
|| week 11
 
|| week 11
|| mar 23
+
|| mar 30
 
||
 
||
 +
*[ [https://www.youtube.com/watch?v=s36fseVge3M video] ] [ [[Media:assignment4.COMP442-6421.paquet.2020.4.zip|handout]] ] project assignment #4 (code generation) (handout)
 +
*[ [[Media:Grades.assignment3.COMP442-6421.paquet.2020.4.pdf|grades]] ] project assignment 3 due (mar 31)
 +
*[ [https://docs.google.com/spreadsheets/d/1U8t4oIMtnPJLugFs7XKtnWlsVN2r5ZcWx4dyPQR6enA/edit?usp=sharing schedule] ] [ [https://concordia-ca.zoom.us/j/517091828 zoom ] ] project assignment 3 demonstrations (apr 2-3)
 
||
 
||
*[[Media:COMP442-6421.13.CodeGenerationII.ppt|code generation II]]
+
*[ [https://www.youtube.com/watch?v=VeLeFl_Pyqs video] ] [ [[Media:COMP442-6421.13.CodeGenerationII.ppt|slides]] ] code generation II
 
||
 
||
 +
*[ [https://www.youtube.com/watch?v=hhygTFmXpjk video] ] [ [[Media:COMP442-6421.lab7.CodeGeneration.zip|slides]] ] lab slides 7
 
|-
 
|-
 
|| week 12
 
|| week 12
|| mar 30
+
|| apr 6
 
||
 
||
 +
*[ [https://www.youtube.com/watch?v=lZk6wPqwLPg video] ] [ [[Media:Projectdemonstration.COMP442.paquet.2020.4.pdf|handout]] ] final project grading sheet (handout)
 
||
 
||
*[[Media:COMP442-6421.14.review.ppt|review]]
+
*[ [https://www.youtube.com/watch?v=NhmgRuCuess video] ] [ [[Media:COMP442-6421.14.review.2020.ppt|slides]] ] review and discussion on final examination
 
||
 
||
 +
*[ [https://www.youtube.com/watch?v=eFMTL3pQ-3s video] ] [ [[Media:COMP442-6421.lab.08.codegenerationII.zip|slides ]]] lab slides 8
 +
*[ [https://www.youtube.com/watch?v=LNsiNcFh-uA video] ] [ [[Media:COMP442-6421.exercises.ppt|slides]] ] exercises
 
|-
 
|-
 
|| week 13
 
|| week 13
|| apr 6-7-8
+
|| apr 13
 
||
 
||
*project assignment 4 due (apr 8-9-10)
+
*[ [[Media:Grades.assignment4.COMP442-6421.paquet.2020.4.pdf|grades]] ] project assignment 4 due (apr 14)
*[[Media:Projectdemonstration.COMP442.paquet.2020.4.pdf|final project grading sheet (handout)]]
+
*[ [https://docs.google.com/spreadsheets/d/1tTnrToqNSjdn7IqvzjZZbmpFhaUPPMiqZfT51pYKU-A/edit?usp=sharing schedule] ] [ [https://concordia-ca.zoom.us/j/889749340 zoom ] ] project assignment 4 demonstrations (apr 16-17)
*[[COMP442/6421 final project demonstrations schedule - winter 2020|final project demonstrations]]
+
 
||
 
||
 
||
 
||
 +
* Programmer On Duty
 
|-
 
|-
|| examination week
+
|| week 14
|| apr 16 - may 3
+
|| apr 20
 +
||
 +
*[ [[Media:Grades.project.COMP442-6421.paquet.2020.4.pdf|grades]] ] final project due (apr 22)
 +
*[ [https://docs.google.com/spreadsheets/d/109-bG9n1V5BKvs9MBHY9gcmkrNsSwvnHL4pDdWXM9f0 schedule] ] [ [https://concordia-ca.zoom.us/j/97692324119 zoom] ] final project presentations (apr 23-24)
 
||
 
||
*final examination [ [[Media:Finalsample.COMP442-6421.paquet.2019.4.pdf|sample]] ] [ [[Media:COMP442-6421.FinalExaminationCheatSheet.2019.4.pdf|cheat sheet]] ] : <br>date TBD
+
||
 +
|-
 +
|| final examination
 +
|| apr 27
 +
||
 +
*[ [[Media:Grades.examination.COMP442-6421.paquet.2020.4.pdf|grades]] ] home examination - (apr 29-30) [ [[Media:Finalsample.COMP442-6421.paquet.2019.4.pdf|sample examination]] ]
 
||
 
||
 
||
 
||
Line 167: Line 184:
 
==Course Material and Resources==
 
==Course Material and Resources==
  
*[[Media:syllabus.COMP442.paquet.2020.4.pdf|Course outline]]
+
*[[Media:syllabus.COMP442-6421.paquet.2020.4.pdf|Course outline]]
 
*[https://fis.encs.concordia.ca/eas/ ENCS Electronic Student Submission System]
 
*[https://fis.encs.concordia.ca/eas/ ENCS Electronic Student Submission System]
 
*[[Media:Moon.zip|Moon processor simulator: code, documentation, libraries, examples]]
 
*[[Media:Moon.zip|Moon processor simulator: code, documentation, libraries, examples]]
 +
*If you would like to discontinue the course, contact: [mailto:studentaccounts@concordia.ca  studentaccounts@concordia.ca]
 +
 +
==Online course resources==
 +
 +
*[https://concordia-ca.zoom.us/ Zoom at Concordia]
 +
 +
===Online videos===
 +
*[https://www.youtube.com/channel/UCJuTFcB9yqK-wI2LHK-RyGQ YouTube channel]
 +
*[https://www.youtube.com/watch?v=KPhTIAlAXZs How we are going to proceed for the remainder of the semester]
 +
*[https://www.youtube.com/watch?v=XgqpgJjIqWg Update on resources, deadlines, grading scheme, and final examination]
 +
*[https://www.youtube.com/watch?v=BN9Px7bvnBg Lecture 10 -- Code Generation I]
 +
*[https://www.youtube.com/watch?v=VeLeFl_Pyqs Lecture 11 -- Code Generation II]
 +
*[https://www.youtube.com/watch?v=NhmgRuCuess Review and discussion on the final examination]
 +
*[https://www.youtube.com/watch?v=s36fseVge3M Explanations for assignment #4]
 +
*[https://www.youtube.com/watch?v=lZk6wPqwLPg Explanations for final project demonstrations]
 +
*[https://www.youtube.com/watch?v=LNsiNcFh-uA Explanations for exercises]
 +
*[https://www.youtube.com/watch?v=hhygTFmXpjk Laboratory 7 -- Code Generation I]
 +
*[https://www.youtube.com/watch?v=eFMTL3pQ-3s Laboratory 8 -- Code Generation II]
 +
 +
===Notes on how the semester will proceed===
 +
 +
*The semester will proceed online. If you don't have access to a computer and a network connection, let me know by email.
 +
 +
====Lectures====
 +
*A link to video lectures will be posted in the table above for each remaining lecture in the semester. The video lectures will be posted on YouTube, so all you need is a web browser to view them. The video lectures are not interactive. Office hours will be regularly provided if you have questions about the lectures or any other question you may have. I am always available by email as usual. 
 +
 +
====Office hours====
 +
*Office hours will be setup using [https://concordia-ca.zoom.us/ Zoom]. See "Course Schedule and Contacts" above for the next scheduled online office hours. You can participate in a zoom meeting using a browser or by downloading the zoom client application. When you join a meeting, the browser will give you the choice. Installing the zoom client is not necessary for you to participate. Note that such meetings are by default open to anyone that has the link to the zoom meeting. You can join with a camera feed or using audio only. If you really require a one-to-one online conversation, let me know and I shall arrange it.     
 +
 +
====Assignments and project====
 +
*The assignments/project will continue to be carried on as we had initially planned. The only difference will be how the demonstrations will be done. For each deliverable, we will give you a link to a Google sheet (as we did before) so that you can schedule a time slot where you will do your assignment demonstration. Then, at the time of the demonstrations, a zoom meeting will be setup, so that you can join the meeting during your allocated time slot. Zoom allows you to share your computer screen during the meeting, so you will be able to demonstrate to the marker that your application behaves as required by sharing your computer screen. To preserve your privacy, we shall make sure that the demonstration meetings are not made public in any way. If you want to try it out, join us at one of the online office hours meetings.
 +
 +
====Deadlines====
 +
*As you may have seen, the University has mandated that all submission deadlines be pushed after March 30th. See the updated schedule in the section [[#Lecture Schedule|Lecture Schedule]] above.
 +
 +
====Final examination====
 +
*As per the decision of the University, no in-person final examinations will be held. There will still be a final examination, but it will be a home examination held on April 29-30.

Latest revision as of 11:39, 7 January 2021

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 email
lecture NN YouTube Paquet, Joey paquet@cse.concordia.ca
office hours M-W-F-- 11:00-11:30 zoom Paquet, Joey
M-W-F-- 19:00-19:30 zoom Paquet, Joey
lab hours M--T--- 15:00-16:00 zoom Zachary Lapointe
marker Zachary Lapointe zachary.lapointe@mail.concordia.ca

Lecture Schedule

wk wk starting date event lectures topics/material lab material
week 1 jan 6
week 2 jan 13
week 3 jan 20
week 4 jan 27
  • Programmer On duty
week 5 feb 3
week 6 feb 10
week 7 feb 17
  • Programmer On Duty
midterm break feb 24 - mar 1
week 8 mar 2
week 9 mar 9
week 10 mar 23
  • [ video ] How we are going to proceed for the remainder of the semester
  • [ video ] Update on resources, deadlines, grading scheme, and final examination
  • Programmer On Duty
week 11 mar 30
  • [ video ] [ handout ] project assignment #4 (code generation) (handout)
  • [ grades ] project assignment 3 due (mar 31)
  • [ schedule ] [ zoom ] project assignment 3 demonstrations (apr 2-3)
week 12 apr 6
  • [ video ] [ handout ] final project grading sheet (handout)
  • [ video ] [ slides ] review and discussion on final examination
week 13 apr 13
  • [ grades ] project assignment 4 due (apr 14)
  • [ schedule ] [ zoom ] project assignment 4 demonstrations (apr 16-17)
  • Programmer On Duty
week 14 apr 20
  • [ grades ] final project due (apr 22)
  • [ schedule ] [ zoom ] final project presentations (apr 23-24)
final examination apr 27

Course Material and Resources

Online course resources

Online videos

Notes on how the semester will proceed

  • The semester will proceed online. If you don't have access to a computer and a network connection, let me know by email.

Lectures

  • A link to video lectures will be posted in the table above for each remaining lecture in the semester. The video lectures will be posted on YouTube, so all you need is a web browser to view them. The video lectures are not interactive. Office hours will be regularly provided if you have questions about the lectures or any other question you may have. I am always available by email as usual.

Office hours

  • Office hours will be setup using Zoom. See "Course Schedule and Contacts" above for the next scheduled online office hours. You can participate in a zoom meeting using a browser or by downloading the zoom client application. When you join a meeting, the browser will give you the choice. Installing the zoom client is not necessary for you to participate. Note that such meetings are by default open to anyone that has the link to the zoom meeting. You can join with a camera feed or using audio only. If you really require a one-to-one online conversation, let me know and I shall arrange it.

Assignments and project

  • The assignments/project will continue to be carried on as we had initially planned. The only difference will be how the demonstrations will be done. For each deliverable, we will give you a link to a Google sheet (as we did before) so that you can schedule a time slot where you will do your assignment demonstration. Then, at the time of the demonstrations, a zoom meeting will be setup, so that you can join the meeting during your allocated time slot. Zoom allows you to share your computer screen during the meeting, so you will be able to demonstrate to the marker that your application behaves as required by sharing your computer screen. To preserve your privacy, we shall make sure that the demonstration meetings are not made public in any way. If you want to try it out, join us at one of the online office hours meetings.

Deadlines

  • As you may have seen, the University has mandated that all submission deadlines be pushed after March 30th. See the updated schedule in the section Lecture Schedule above.

Final examination

  • As per the decision of the University, no in-person final examinations will be held. There will still be a final examination, but it will be a home examination held on April 29-30.