What This Document Is
This document outlines the requirements for the second project in CISC 471, Compiler Design, at the University of Delaware. It details a practical assignment focused on building a syntax-directed translator for a specifically defined, small imperative language known as SIL-K. This project is designed to provide hands-on experience in translating programming language constructs into a lower-level intermediate representation.
Why This Document Matters
This project is crucial for students enrolled in Compiler Design who aim to solidify their understanding of language translation techniques. It’s particularly beneficial for those preparing to implement more complex compilers or interpreters. Students will gain valuable skills in parsing, semantic analysis (though simplified in this project), and code generation. This assignment is best utilized *after* a foundational understanding of compiler principles and syntax-directed translation has been established through lectures and readings.
Topics Covered
* Syntax-Directed Translation (SDT)
* Intermediate Code Generation (ILOC)
* Imperative Programming Language Design (SIL-K)
* Language Grammars and Parsing
* Static Memory Allocation
* Register Allocation (register-register model)
* Control Flow Implementation
* Array Data Structures (one and two-dimensional)
What This Document Provides
* A complete specification of the SIL-K language, including its grammar rules.
* Detailed instructions for the project deliverables and associated deadlines.
* A description of the target intermediate language, ILOC, and its instruction set.
* Guidelines regarding code structure and memory management within the ILOC environment.
* Information on accessing and utilizing the ILOC simulator for testing generated code.
* Specific requirements for utilizing virtual registers and static memory allocation.