Course Catalog URL
Identifier
COMS 5400
Professor(s)
Last Updated: Spring 2025
- Credits and contact hours: 3 credits, 4 contact hours
- Textbook, title, author, and year: Engineering a Complier, Keith D. Cooper, Linda Torczon, 3rd edition; Modern Compiler Implementation in ML, Andrew W. Appel
- Other supplemental materials: None
Specific course information
- Brief description of the content of the course: This course is an introduction to the theory and practice of building compilers. The main objective of the students is to build their own compiler for the programming language of their choice.
- Prerequisites or co-requisites: COMS 3310 or COMS 3420 and COMS 3090 and ENGL 2500
- Required, elective, or selected elective? Selected Elective
Specific goals for the course
Upon completing this course, students will learn the following:
- An ability to apply knowledge of computing and mathematics appropriate to the discipline
- An ability to design, implement, and evaluate a computer-based system, process, component or program to meet desired needs
- An ability to use current techniques, skills, and tools necessary for computing practices
- An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems that demonstrate comprehension of the tradeoffs in design choices
- An ability to apply design and development principles in the construction of software systems of varying complexity.
Brief list of topics to be covered
- Lexical analysis
- Parsing methods
- Semantic Analysis and Type Checking
- Code Generation
- Memory Allocation
- Compiler Optimization
- Tools for constructing compilers