ECE 351 - Compilers
Programming paradigms, compilation, interpretation, virtual machines. Lexical analysis, regular expressions, and finite automata. Parsing, context-free grammars, and push-down automata. Semantic analysis, scope and name analysis, type checking. Intermediate representations. Control flow. Data types and storage management. Code generation.
Prerequisites
(One of BME122, ECE250, MSE240, MTE140, SYDE223); One of CS245/CS245E, ECE208 or SE212
Offerings
Fall 2025 [1259]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 5521 | 239 / 268 | | | | |
| LEC 001 | 5359 | 130 / 134 | 13:00 - 14:20 | W,Th | | |
| LEC 002 | 5423 | 109 / 134 | 08:30 - 09:50 | Th | | |
| TUT 101 | 5360 | 126 / 134 | 19:00 - 19:50 | T | | |
| TUT 102 | 5424 | 113 / 134 | 08:00 - 08:50 | T | | |
Winter 2024 [1241]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LEC 001 | 9096 | 0 / 1 | | | | |
Fall 2023 [1239]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 5620 | 274 / 296 | | | | |
| LEC 001 | 5383 | 141 / 148 | 08:30 - 09:50 | M,F | | |
| LEC 002 | 5461 | 133 / 148 | 13:30 - 14:50 | W,Th | | |
| TUT 101 | 5384 | 136 / 148 | 11:30 - 12:20 | T | | |
| TUT 102 | 5462 | 138 / 148 | 11:30 - 12:20 | Th | | |
Fall 2022 [1229]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 10850 | 295 / 296 | | | | |
| LEC 001 | 5973 | 147 / 148 | 12:30 - 13:50 | M,F | E7 4043 | Arie Gurfinkel |
| LEC 002 | 6338 | 148 / 148 | 12:30 - 13:50 | W,Th | E7 4053 | Arie Gurfinkel |
| TUT 101 | 5975 | 148 / 148 | 19:00 - 19:50 | M | E7 4043 | |
| TUT 102 | 6339 | 147 / 148 | 19:00 - 19:50 | T | E7 4053 | |
Fall 2021 [1219]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 9067 | 85 / 100 | | | | |
| LAB 202 | 9068 | 40 / 100 | | | | |
| LAB 203 | 9069 | 18 / 100 | | | | |
| LAB 204 | 11189 | 124 / 300 | | | | |
| LEC 001 | 9063 | 143 / 300 | 10:00 - 11:20 | M,F | | Arie Gurfinkel |
| LEC 002 | 11187 | 124 / 300 | 10:00 - 11:20 | M,F | | Arie Gurfinkel |
| TUT 101 | 9065 | 23 / 50 | 15:30 - 16:20 | Th | E7 4043 | |
| TUT 102 | 9066 | 40 / 50 | 13:30 - 14:20 | Th | E7 4417 | |
| TUT 103 | 9064 | 32 / 50 | 16:30 - 17:20 | Th | E7 5343 | |
| TUT 104 | 11188 | 124 / 300 | | | | |
| TUT 105 | 11783 | 0 / 50 | | | | |
| TUT 106 | 11784 | 48 / 50 | 15:30 - 16:20 | T | STC 0060 | |
| TUT 107 | 11785 | 0 / 50 | | | | |
Spring 2020 [1205]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3098 | 23 / 41 | | | | |
| LAB 202 | 3145 | 19 / 41 | | | | |
| LAB 203 | 3146 | 24 / 41 | | | | |
| LAB 204 | 3147 | 40 / 41 | | | | |
| LAB 205 | 3148 | 38 / 41 | | | | |
| LAB 206 | 3149 | 39 / 41 | | | | |
| LEC 001 | 3096 | 66 / 134 | | | | Reza Babaee Cheshmeahmadrezaee |
| LEC 002 | 3321 | 117 / 134 | | | | Reza Babaee Cheshmeahmadrezaee |
| TUT 101 | 3097 | 66 / 134 | | | | |
| TUT 102 | 3322 | 117 / 134 | | | | |
Winter 2020 [1201]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 4810 | 36 / 40 | 15:00 - 16:20 | T | E2 2356A | |
| LAB 202 | 4834 | 41 / 40 | 15:00 - 16:20 | W | E2 2356A | |
| LAB 203 | 4835 | 37 / 40 | 15:00 - 16:20 | Th | E2 2356A | |
| LEC 001 | 4781 | 114 / 120 | 10:00 - 11:20 | M,F | E7 4053 | Arie Gurfinkel |
| TUT 101 | 4782 | 114 / 120 | 08:30 - 09:50 | W | E7 4053 | |
Spring 2019 [1195]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3127 | 15 / 40 | 15:00 - 16:20 | T | E2 2356A | Eric Praetzel |
| LAB 202 | 3179 | 18 / 40 | 15:00 - 16:20 | W | E2 2356A | Eric Praetzel |
| LAB 203 | 3180 | 22 / 40 | 15:00 - 16:20 | Th | E2 2356A | Eric Praetzel |
| LAB 204 | 3181 | 38 / 40 | 10:00 - 11:20 | T | E2 2356A | Eric Praetzel |
| LAB 205 | 3182 | 32 / 40 | 10:00 - 11:20 | W | E2 2356A | Eric Praetzel |
| LAB 206 | 3183 | 36 / 40 | 10:00 - 11:20 | Th | E2 2356A | Eric Praetzel |
| LEC 001 | 3125 | 55 / 120 | 12:00 - 13:20 | M,F | E7 5353 | Derek Rayside |
| LEC 002 | 3388 | 106 / 120 | 12:00 - 13:20 | M,F | E7 5353 | Derek Rayside |
| TUT 101 | 3126 | 55 / 120 | 16:30 - 17:20 | Th | E7 4417 | |
| TUT 102 | 3389 | 106 / 120 | 16:30 - 17:20 | W | E7 4417 | |
Winter 2019 [1191]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 4710 | 34 / 40 | 15:00 - 16:20 | T | E2 2356A | |
| LAB 202 | 4739 | 38 / 40 | 15:00 - 16:20 | W | E2 2356A | |
| LAB 203 | 4740 | 38 / 40 | 15:00 - 16:20 | Th | E2 2356A | |
| LEC 001 | 4681 | 110 / 120 | 10:00 - 11:20 | M,F | E7 4053 | Derek Rayside |
| TUT 101 | 4682 | 110 / 120 | 16:30 - 17:20 | Th | E7 4053 | |
Spring 2018 [1185]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3071 | 24 / 26 | 15:00 - 16:20 | T | E2 2356A | Tiuley Alguindigue |
| LAB 202 | 3133 | 21 / 26 | 15:00 - 16:20 | W | E2 2356A | Tiuley Alguindigue |
| LAB 203 | 3134 | 25 / 26 | 15:00 - 16:20 | Th | E2 2356A | Tiuley Alguindigue |
| LAB 204 | 3135 | 32 / 40 | 10:00 - 11:20 | T | E2 2356A | Tiuley Alguindigue |
| LAB 205 | 3136 | 28 / 40 | 10:00 - 11:20 | W | E2 2356A | Tiuley Alguindigue |
| LAB 206 | 3137 | 29 / 40 | 10:00 - 11:20 | Th | E2 2356A | Tiuley Alguindigue |
| LEC 001 | 3069 | 70 / 78 | 10:00 - 11:20 | M,F | RCH 305 | Vijay Ganesh |
| LEC 002 | 4988 | 89 / 120 | 15:00 - 16:20 | M,F | RCH 103 | Vijay Ganesh |
| TUT 101 | 3070 | 70 / 78 | 16:30 - 17:20 | Th | RCH 305 | |
| TUT 102 | 4989 | 89 / 120 | 16:30 - 17:20 | W | DWE 1501 | |
Winter 2018 [1181]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 4902 | 37 / 40 | 15:00 - 16:20 | T | E2 2356A | Bernard John Eric Roehl |
| LAB 202 | 4934 | 40 / 40 | 15:00 - 16:20 | W | E2 2356A | Bernard John Eric Roehl |
| LAB 203 | 4935 | 35 / 40 | 15:00 - 16:20 | Th | E2 2356A | Bernard John Eric Roehl |
| LEC 001 | 4872 | 112 / 120 | 10:00 - 11:20 | M,F | DWE 1501 | Derek Rayside |
| TUT 101 | 4873 | 112 / 120 | 16:30 - 17:20 | Th | DWE 1501 | |
Spring 2017 [1175]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3096 | 16 / 23 | 15:00 - 16:20 | T | E2 2363 | Reza Babaee Cheshmeahmadrezaee |
| LAB 202 | 3162 | 24 / 23 | 15:00 - 16:20 | W | E2 2363 | Reza Babaee Cheshmeahmadrezaee |
| LAB 203 | 3163 | 23 / 23 | 15:00 - 16:20 | Th | E2 2363 | Reza Babaee Cheshmeahmadrezaee |
| LAB 204 | 3164 | 25 / 23 | 10:00 - 11:20 | T | E2 2363 | Reza Babaee Cheshmeahmadrezaee |
| LAB 205 | 3165 | 23 / 23 | 10:00 - 11:20 | W | E2 2363 | Reza Babaee Cheshmeahmadrezaee |
| LAB 206 | 3166 | 21 / 23 | 10:00 - 11:20 | Th | E2 2363 | Reza Babaee Cheshmeahmadrezaee |
| LEC 001 | 3094 | 132 / 140 | 10:00 - 11:20 | M | EIT 1015 | Vijay Ganesh |
| TUT 101 | 3095 | 132 / 140 | 16:30 - 17:20 | Th | EIT 1015 | |
Winter 2017 [1171]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 4720 | 32 / 30 | 15:00 - 16:20 | T | E2 2364 | Bernard John Eric Roehl |
| LAB 202 | 4752 | 29 / 30 | 15:00 - 16:20 | W | E2 2364 | Bernard John Eric Roehl |
| LAB 203 | 4753 | 29 / 30 | 15:00 - 16:20 | Th | E2 2364 | Bernard John Eric Roehl |
| LEC 001 | 4689 | 90 / 90 | 10:00 - 11:20 | M,F | RCH 105 | Derek Rayside |
| LEC 002 | 8617 | 0 / 1 | | | | |
| TUT 101 | 4690 | 90 / 90 | 16:30 - 17:20 | Th | RCH 110 | |
Spring 2016 [1165]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3164 | 31 / 35 | 15:00 - 16:20 | T | E2 2363 | |
| LAB 202 | 3235 | 29 / 35 | 15:00 - 16:20 | W | E2 2363 | |
| LAB 203 | 3236 | 0 / 1 | 15:00 - 16:20 | Th | E2 2363 | |
| LAB 204 | 3237 | 29 / 35 | 10:00 - 11:20 | T | E2 2363 | |
| LAB 205 | 3238 | 28 / 35 | 10:00 - 11:20 | W | E2 2363 | |
| LAB 206 | 3239 | 0 / 1 | 10:00 - 11:20 | Th | E2 2363 | |
| LEC 001 | 3162 | 117 / 140 | 10:00 - 11:20 | M,F | EIT 1015 | Derek Rayside |
| TUT 101 | 3163 | 117 / 140 | 16:30 - 17:20 | Th | EIT 1015 | |
Winter 2016 [1161]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 5301 | 25 / 28 | 15:00 - 16:20 | T | E2 2364 | |
| LAB 202 | 5338 | 27 / 28 | 15:00 - 16:20 | W | E2 2364 | |
| LAB 203 | 5339 | 26 / 28 | 15:00 - 16:20 | Th | E2 2364 | |
| LEC 001 | 5265 | 78 / 84 | 10:00 - 11:20 | M,F | RCH 309 | Derek Rayside |
| TUT 101 | 5266 | 78 / 84 | 16:30 - 17:20 | Th | RCH 309 | |
Spring 2015 [1155]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3284 | 22 / 14 | 15:00 - 16:20 | T | E2 2363 | |
| LAB 202 | 3364 | 23 / 14 | 15:00 - 16:20 | W | E2 2363 | |
| LAB 203 | 3365 | 0 / 14 | 15:00 - 16:20 | Th | E2 2363 | |
| LAB 204 | 3366 | 18 / 14 | 10:00 - 11:20 | T | E2 2363 | |
| LAB 205 | 3367 | 20 / 14 | 10:00 - 11:20 | W | E2 2363 | |
| LAB 206 | 3368 | 0 / 14 | 10:00 - 11:20 | Th | E2 2363 | |
| LEC 001 | 3282 | 83 / 96 | 10:00 - 11:20 | M,F | DWE 3522 | Derek Rayside |
| TUT 101 | 3283 | 83 / 96 | 16:30 - 17:20 | Th | RCH 110 | |
Winter 2015 [1151]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 5127 | 22 / 30 | 15:00 - 16:20 | T | E2 2364 | |
| LAB 202 | 5167 | 24 / 30 | 15:00 - 16:20 | W | E2 2364 | |
| LAB 203 | 5168 | 23 / 30 | 15:00 - 16:20 | Th | E2 2364 | |
| LEC 001 | 5090 | 69 / 87 | 10:00 - 11:20 | M,F | EIT 1015 | Vijay Ganesh |
| TUT 101 | 5091 | 69 / 87 | 16:30 - 17:20 | Th | EIT 1015 | |
Fall 2014 [1149]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LEC 001 | 8833 | 1 / 1 | | | | |
Spring 2014 [1145]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3218 | 14 / 20 | 15:00 - 16:20 | T | E2 2363 | |
| LAB 202 | 3325 | 14 / 20 | 15:00 - 16:20 | W | E2 2363 | |
| LAB 203 | 3326 | 14 / 20 | 15:00 - 16:20 | Th | E2 2363 | |
| LAB 204 | 3327 | 14 / 20 | 10:00 - 11:20 | T | E2 2363 | |
| LAB 205 | 3328 | 15 / 19 | 10:00 - 11:20 | W | E2 2363 | |
| LAB 206 | 3329 | 13 / 19 | 10:00 - 11:20 | Th | E2 2363 | |
| LEC 001 | 3216 | 84 / 118 | 10:00 - 11:20 | M,F | QNC 1502 | Vijay Ganesh |
| TUT 101 | 3217 | 84 / 118 | 16:30 - 17:20 | T | QNC 1502 | |
Winter 2014 [1141]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 5054 | 18 / 40 | 15:00 - 16:20 | T | E2 3353 | |
| LAB 202 | 5119 | 21 / 40 | 15:00 - 16:20 | W | E2 3353 | |
| LAB 203 | 5120 | 18 / 40 | 15:00 - 16:20 | Th | E2 3353 | |
| LEC 001 | 5015 | 57 / 120 | 10:00 - 11:20 | M,F | RCH 103 | Vijay Ganesh |
| TUT 101 | 5016 | 57 / 120 | 16:30 - 17:20 | Th | RCH 103 | |
Fall 2013 [1139]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LEC 001 | 8306 | 1 / 1 | | | | |
Spring 2013 [1135]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 3107 | 14 / 118 | 15:00 - 16:20 | T | E2 2363 | |
| LAB 202 | 5470 | 17 / 20 | 15:00 - 16:20 | W | E2 2363 | |
| LAB 203 | 5471 | 17 / 20 | 15:00 - 16:20 | Th | E2 2363 | |
| LAB 204 | 5472 | 17 / 20 | 10:00 - 11:20 | T | E2 2363 | |
| LAB 205 | 5473 | 21 / 19 | 10:00 - 11:20 | W | E2 2363 | |
| LAB 206 | 5474 | 17 / 19 | 10:00 - 11:20 | Th | E2 2363 | |
| LEC 001 | 3105 | 103 / 118 | 10:00 - 11:20 | M,F | RCH 302 | Derek Rayside |
| TUT 101 | 3106 | 103 / 118 | 16:30 - 17:20 | Th | RCH 302 | |
Winter 2013 [1131]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 4919 | 19 / 44 | 15:00 - 16:20 | T | E2 2363 | |
| LAB 202 | 7669 | 22 / 44 | 15:00 - 16:20 | W | E2 2363 | |
| LAB 203 | 7670 | 19 / 44 | 15:00 - 16:20 | Th | E2 2363 | |
| LEC 001 | 4863 | 60 / 132 | 13:30 - 14:50 | M,F | RCH 301 | Derek Rayside |
| TUT 101 | 4864 | 60 / 132 | 16:30 - 17:20 | Th | RCH 301 | |
Spring 2012 [1125]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 4644 | 80 / 118 | | | | |
| LEC 001 | 4642 | 80 / 118 | 13:30 - 14:50 | M,F | RCH 110 | Derek Rayside |
| TUT 101 | 4643 | 80 / 118 | 16:30 - 17:20 | Th | RCH 110 | |
Winter 2012 [1121]
| Section | Class | Enrolled | Time | Days | Location | Instructor |
|---|
| LAB 201 | 7799 | 5 / 108 | | | | |
| LEC 001 | 7283 | 5 / 108 | 13:30 - 14:50 | M,F | RCH 211 | Derek Rayside |
| TUT 101 | 7284 | 5 / 108 | 16:30 - 17:20 | Th | RCH 211 | |
UW Flow Ratings
Liked: 76.34%
Easy: 77.27%
Useful: 79.55 %
ECE 351 leads to