Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
courses:cs331-201701:topics [2018/09/13 21:55]
sellis [Schedule]
courses:cs331-201701:topics [2019/03/07 12:57] (current)
sellis [Table]
Line 1: Line 1:
-====== CMPU-331 Compilers (Fall 2018) ======+====== CMPU-331 Compilers (Spring 2019) ======
  
 ~~NOTOC~~ ~~NOTOC~~
Line 8: Line 8:
 ==== Schedule ==== ==== Schedule ====
  
-**This schedule ​may change slightly depending on time. Please keep yourself apprised of the current status ​of this schedule.**+**This schedule ​is intended as a general guide to the flow of topics through the semester.**
  
-It is preferred that you will have completed the appropriate readings //before// the corresponding class(es). You are responsible for keeping up with the readings and for ensuring that you have adequate notes of material covered in class, //some of which may not be in the textbook//: this includes lectures, assignments,​ hand-outs, additional reading, and so forth.+You should ​have completed the appropriate readings //before// the corresponding class(es). You are responsible for keeping up with the readings and for ensuring that you have adequate notes of material covered in class, //some of which may not be in the textbook//: this includes lectures, assignments,​ hand-outs, additional reading, and so forth.
  
 If you miss a class, please make arrangements with classmates to catch up on the notes you missed. If you miss a class, please make arrangements with classmates to catch up on the notes you missed.
  
-^  Week            ^  Beginning ​      ​^ Topic                                                                     ​^ Reading ​                 ^  Slides ​                                                                                                                                               +^  Week                                                                                          ^  Beginning ​     ^ Topic                                                              ^ Reading ​                              ​^  Slides ​                                                                                                                                                                                                                                                                                                                                                   
-|  1               ​|  ​4th September ​  | Introduction. What is a compiler? Brief review of material. ​              ​| Ch. 1, 2.1-2.5. ​         |  [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction.pdf|Full]] ​ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction_sm.pdf|Handout]] ​ +|  1                                                                                             ​|  ​21st January ​  | Introduction. What is a compiler? Brief review of material. ​       | Ch. 1, 2.1-2.5. ​                      ​|  [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction.pdf|Full]] ​ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction_sm.pdf|Handout]] ​                                                                                                                                                                                                     
-|  2               ​|  ​11th September  ​| Lexical ​analysis                                                        ​ Ch. 2.6, 3.1-3.5, 3.8.  |  [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis_sm.pdf|Handout]] ​                                                                                                                                                     +|  2                                                                                             ​|  ​28th January ​  | Lexical ​Analysis                                                 | Ch. 2.6, 3.1-3.5, 3.8.                |  [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis_sm.pdf|Handout]] ​                                                                                                                                                                                              ​
-|  3               ​|  ​18th September  ​| Languages, syntax and parsing. ​                                           | Ch. 4.1-4.3. ​            |                                                                                                                                                        | +|  3                                                                                             ​|  ​4th February ​  | Languages, syntax and parsing. ​                                    ​| Ch. 4.1-4.3. ​                         | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​03_Syntactic_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​03_Syntactic_Analysis_sm.pdf|Handout]] ​                                                                                                                                                                                           
-|  4               ​| ​ 25th September ​ | Top-down parsing. ​                                                        ​| ​                         |                                                                                                                                                        | +|  ​4                                                                                             |  11th February ​ ​| ​Top-down parsing                                                 | Ch. 4.4                             | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​04_Top-Down_Parsing.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​04_Top-Down_Parsing_sm.pdf|Handout]] ​                                                                                                                                                                                               
-|  5               ​| ​ 2nd October ​    | Bottom-up parsing.\\ More powerful bottom-up parsing. ​                    ​| ​                         |                                                                                                                                                        | +|  ​5                                                                                             |  18th February ​ ​| ​Symbol tables.\\ Syntax-directed translation                     | Ch. 2.7, 7.1-7.3.\\ Ch. 5.            ​| [[https://​www.cs.vassar.edu/​~cs331/​lectures/​06_Symbol_Tables.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​06_Symbol_Tables_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​07_Syntax-Directed_Translation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​07_Syntax-Directed_Translation_sm.pdf|Handout]] ​                 
-|  6               ​| ​ 9th October ​    | Symbol tables. ​                                                           |                          |                                                                                                                                                        | +|  ​6                                                                                             |  ​25th February  ​| Bottom-up parsing. ​                                                ​| Ch. 4.5-4.6. ​                         | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​05_Bottom-Up_Parsing.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​05_Bottom-Up_Parsing_sm.pdf|Handout]] ​                                                                                                                                                                                             
-|  **Fall Break** ​                                                                                                                                                                                                                                                                                ​||||| +|  ​7                                                                                             |  ​4th March      ​Intermediate code generation                                     | Ch. 2.86.1-6.3.                     ​| [[https://​www.cs.vassar.edu/​~cs331/​lectures/​08_Intermediate_Code_Generation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​08_Intermediate_Code_Generation_sm.pdf|Handout]] ​                                                                                                                                                                       
-|  7               ​| ​ 23rd October ​   | Syntax-directed translation. ​                                             |                          |                                                                                                                                                        | +|  ​.\\ ** SPRING BREAK**\\ Saturday, 9th March to Sunday, 24th March.\\ //Happy vacation!//​\\ .                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          ​||||| 
-|  8               ​| ​ 30th October ​   | Intermediate code generation. ​                                            ​| ​                         |                                                                                                                                                        | +|  ​8                                                                                             |  ​25th March     Relational operations and control flow.\\ Arithmetic expressions.  ​| Ch. 6.6-6.7.\\ Ch. 6.4-6.5, 7.1-7.4.  ​| [[https://​www.cs.vassar.edu/​~cs331/​lectures/​11_Semantic_Actions_Phase_2.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​11_Semantic_Actions_Phase_2_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​12_Semantic_Actions_Phase_3.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​12_Semantic_Actions_Phase_3_sm.pdf|Handout]] ​ 
-|  9               ​| ​ 6th November ​   | Runtime environments.\\ The Vassar Interpreter\\ Arithmetic expressions. ​ |                          |                                                                                                                                                        | +|  9                                                                                             ​|  ​1st April      ​| Runtime environments.\\ ​(The Vassar Interpreter.)                  ​                                      ​| [[https://​www.cs.vassar.edu/​~cs331/​lectures/​09_Run-time-Environments.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​09_Run-time-Environments_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​10_The_Vassar_Interpreter.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​10_The_Vassar_Interpreter_sm.pdf|Handout]] ​           
-|  10              |  13th November ​  | //Review week.// ​                                                         |                          |                                                                                                                                                        | +|  10                                                                                            |  ​8th April      ​Procedure ​and function declaration and calls                     | Ch. 7.1-7.3                                                                                                                                                                                                                                                                                                                                                                                    
-|  11              |  20th November ​  | Relational expressions and control flow.                                  |                          |                                                                                                                                                        | +|  11                                                                                            |  ​15th April     More powerful bottom-up parsing                                  ​| Ch. 4.7.                                                                                                                                                                                                                                                                                                                                                                                         
-|  12              |  27th November ​  | Procedure and function declaration and calls. ​                            ​| ​                         |                                                                                                                                                        | +|  12                                                                                            |  ​22nd April     Software design & development I                                  ​                                      ​                                                                                                                                                                                                                                                                                                                                                           
-|  13              |  4th December ​   | Optimisation and code generation. ​                                        ​| ​                         |                                                                                                                                                        | +|  13                                                                                            |  ​29th April     Software design & development II.                                  ​                                      ​                                                                                                                                                                                                                                                                                                                                                           
-|  14              |  11th December ​  | Optimisation and code generation I (conclusion). ​                         |                          |                                                                                                                                                        | +|  14                                                                                            |  ​6th April      ​Optimisation. ​                                                     ​Ch. 9.1-9.4,\\ 8.4-8.5, 8.7-8.8. ​     ​                                                                                                                                                                                                                                                                                                                                                           
-|  End of classes ​                                                                                                                                                                                                                                                                                ​||||| +                                                                                                               ​                                                                                                         ​                                                                                                                                                                                                                                                                                                                                                           |
- +
-/*^  Week            ^  Beginning ​      ^ Topic                                                                                        ^ Reading ​                        ​^ ​ Slides ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       ^ +
-|  1               ​| ​ 4th September ​  | Introduction ​                                                                                | Ch. 1, 2.1-2.5. ​                | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction.pdf|Full]] ​ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​01_Introduction_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                          ​+
-|  ​2               |  11th September ​ ​| ​Lexical analysis                                                                           | Ch. 2.6, 3.1-3.5, 3.8.          ​| [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​02_Lexical_Analysis_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                   +
-|  ​3               |  18th September ​ ​| ​Languages, syntax and parsing                                                              ​| Ch. 4.1-4.3.                    | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​03_Syntactic_Analysis.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​03_Syntactic_Analysis_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                               | +
-|  4               ​| ​ 25th September ​ | Top-down parsing. ​                                                                           | Ch. 4.4.                        | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​04_Top-Down_Parsing.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​04_Top-Down_Parsing_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                   +
-|  ​5               |  ​2nd October ​    | Bottom-up parsing.\\ More powerful bottom-up parsing. ​                                       ​| Ch. 4.5-4.6.\\ Ch. 4.7.         | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​05_Bottom-Up_Parsing.pdf|Full]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​05_Bottom-Up_Parsing_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                               +
-|  ​6               |  ​9th October ​    Symbol tables                                                                              ​| Ch. 2.77.1-7.3.               ​| [[https://​www.cs.vassar.edu/​~cs331/​lectures/​06_Symbol_Tables.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​06_Symbol_Tables.pdf_sm|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                         +
-|  **Fall Break**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ​||||| +
-|  ​7               |  ​23rd October ​   ​Syntax-directed translation                                                                ​| Ch. 5.                          | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​07_Syntax-Directed_Translation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​07_Syntax-Directed_Translation_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                             | +
-|  8               ​| ​ 30th October ​   | Intermediate code generation. ​                                                               | Ch. 2.8, 6.1-6.3. ​              ​| ​[[https://​www.cs.vassar.edu/​~cs331/​lectures/​08_Intermediate_Code_Generation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​08_Intermediate_Code_Generation_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                           +
-|  9               ​|  ​6th November ​   ​| Runtime environments.\\ The Vassar Interpreter\\ Arithmetic expressions                    ​Ch. 6.4-6.5, 7.1-7.4. ​          | [[https://​www.cs.vassar.edu/​~cs331/​lectures/​09_Run-time_Environments.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​09_Run-time_Environments_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​10_The_Vassar_Interpreter.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​10_The_Vassar_Interpreter_sm.pdf|Handout]]\\ [[https://​www.cs.vassar.edu/​~cs331/​lectures/​11_Semantic_Actions_Phase_2.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​11_Semantic_Actions_Phase_2_sm.pdf|Handout]]  ​+
-|  10              |  ​13th November ​  Optimisation ​and code generation                                                           | Ch. 9.1-9.4, 8.4-8.5, 8.7-8.8 [[https://​www.cs.vassar.edu/​~cs331/​lectures/​13_Optimisation.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​13_Optimisation_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                                           ​+
-|  11              |  ​20th November ​  Relational expressions and control flow.\\ Optimisation and code generation I (conclusion).  ​| Ch. 6.6-6.7.                    [[https://​www.cs.vassar.edu/​~cs331/​lectures/​12_Semantic_Actions_Phase_3.pdf|Full]] [[https://​www.cs.vassar.edu/​~cs331/​lectures/​12_Semantic_Actions_Phase_3_sm.pdf|Handout]] ​                                                                                                                                                                                                                                                                                                                                                   ​+
-|  12              |  ​27th November ​  Procedure and function declaration and calls                                               Ch. 7.1-7.3. ​                   ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               +
-|  13              |  ​4th December ​   ​                                                                                                                             ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               +
-|  14              |  ​11th December ​                                                                                                                               ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               +
- End of classes ​                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |||||*/+