CENG 513
Compiler Design and Construction
This graduate-level course provides theoretical and practical concepts of compiler design. It will cover the front-end, including scanners and parsers, middle-end optimizations, and back-end with instruction selection, register allocation, and instruction scheduling techniques. We will have practical examples based on the LLVM framework.
Course Objectives
1. Understand scanning and parsing techniques.
2. Understand high-level optimizations and code transformations.
3. Practice and implement basic compiler structures.
4. Understand machine-dependent optimizations and low-level execution details.
Recommended or Required Reading
– Engineering a Compiler, Keith D. Cooper, Linda Torczon, Morgan Kaufmann.
– Practical examples with LLVM framework
Learning Outcomes
1. Know the theoretical fundamentals of compiler theory
2. Recognize theoretical limits on the abilities of compilers
3. Discuss the next generation compilers
4. Design and implement compilers
| Topics |
| Introduction |
| Lexical Analysis |
| Parser |
| Parser – Kaleidoscope |
| Intermediate Representation |
| LLVM IR |
| Code Optimization |
| Code Optimization – LLVM Pass |
| Midterm |
| Instruction Selection |
| Instruction Scheduling |
| Register Allocation |
| ML Compilers |
| Paper Presentations |
Grading
20% Midterm Exam – Take Home
20% Programming Assignments
20% Paper Reproduce and Presentation
40% Final Exam – Take Home
Instructor(s)
- CENG 500
- CENG 501
- CENG 502
- CENG 503
- CENG 504
- CENG 505
- CENG 506
- CENG 507
- CENG 508
- CENG 509
- CENG 511
- CENG 512
- CENG 514
- CENG 515
- CENG 516
- CENG 517
- CENG 518
- CENG 521
- CENG 522
- CENG 523
- CENG 524
- CENG 525
- CENG 531
- CENG 532
- CENG 533
- CENG 534
- CENG 541
- CENG 542
- CENG 543
- CENG 544
- CENG 551
- CENG 552
- CENG 555
- CENG 556
- CENG 557
- CENG 561
- CENG 562
- CENG 563
- CENG 564
- CENG 565
- CENG 566
- CENG 567
- CENG 568
- CENG 590
- CENG 608
- CENG 611
- CENG 612
- CENG 613
- CENG 631
- CENG 632
- CENG 641
- CENG 642
- CENG 643
- CENG 651
- CENG 661
- CENG 662
- CENG 663

