CSE450: Translation of Programming Languages
Fall Semester, 2024
Instructor: Charles Ofria (ofria@cse.msu.edu) Office: ISTB 1103
TA: Thad Greiner (greine30@msu.edu)
Web page: http://www.cse.msu.edu/~cse450/
Meeting time & Room: M/W 12:40-2pm, STEM 2201
Office Hours:
- Instructor: after class + by appointment
- TA: Tu/Th 6-7pm (over Zoom; see Piazza for link) + by appointment
Handouts
Projects
Lectures
- (8/26) Lecture 1 - Course Introduction
- (8/28) Lecture 2 - Lexing and Regular Expressions
- (9/4) Lecture 3 - Writing a Lexer
- (9/9) Lecture 4 - Symbol Tables
- (9/11) Lecture 5 - Introduction to Parsing
- (9/16) Lecture 6 - Hacking a Parser
- (9/18) Lecture 7 - Project 2 Overview & Discussion (no slides)
- (9/23) Lecture 8 - Live Coding: WordLang (Building a simple parser)
- (9/25) Lecture 9 - Live Coding: WordLang (Constructing an abstract syntax tree)
- Optional Videos:
1: WordLang Updates: Infrastructure (11:39),
2: WordLang Updates: ASTNode (14:55),
3: WordLang Updates: SymbolTable (12:22),
4: WordLang Updates: Parsing Helpers (14:49),
5: WordLang Updates: Parsing (15:44)
- (9/30) Lecture 10 - Parsing rules review and discussion
- (10/2) Lecture 11 - Live Coding: WordLang (Executing the Parse tree)
- (10/7) Lecture 12 - Live Coding: WordLang (Implementing binary expressions)
- (10/9) Lecture 13 - Open Discussion about Project 2
- (10/14) Lecture 14 - Semantic Analysis Overview
- (10/16) Lecture 15 - Implementing Multiple Types in WordLang
- (10/23) Lecture 16 - Introduction to Project 3
- (10/28) Lecture 17 - Writing code in WebAssembly
- (10/30) Lecture 18 - Flow Control in WebAssembly
- (11/4) Lecture 19 - Other oddities in WebAssembly
- (11/6) Lecture 20 - Open Discussion about Project 3
- (11/11) Lecture 21 - Lexer Generators
- (11/13) Lecture 22 - Implementing Functions in WebAssembly
- (11/18) Lecture 23 - Introduction to Project 4
- (11/20) Lecture 24 - Memory management in WebAssembly
- (11/25) Lecture 25 - Theory and Practice of Memory Management
Links
Course-specific Tools
WebAssembly Text References
Other External References