AI Summary
[DOCUMENT_TYPE: user_assignment]
**What This Document Is**
This document details the first programming assignment for CISC 672 (and a subset for CISC 471) Advanced Compiler Construction at the University of Delaware. It outlines a practical exercise designed to reinforce understanding of the Cool language – a key focus of the course – and to build essential skills in language specification interpretation and software testing. This assignment requires students to independently develop and analyze Cool programs.
**Why This Document Matters**
This assignment is crucial for students enrolled in compiler construction courses. It’s particularly beneficial for those needing to solidify their grasp of a new programming language’s syntax and semantics, and for anyone wanting to practice translating language specifications into functional code. Successfully completing this assignment will provide a strong foundation for subsequent, more complex compiler development tasks. It’s best utilized *before* beginning to code, to fully understand expectations, and *during* development as a reference point for requirements.
**Topics Covered**
* Cool Programming Language Fundamentals
* Object-Oriented Programming in Cool
* Lexical and Syntax Analysis Testing
* Compiler Implementation Concepts
* Test Case Generation Strategies
* Language Specification Interpretation
* Program Documentation and Reporting
**What This Document Provides**
* A detailed assignment description with specific program requirements.
* Clear distinctions in task expectations between CISC 471 and CISC 672 students.
* Guidance on utilizing the provided Cool compiler and SPIM interpreter.
* Requirements for program documentation, including compilation instructions, feature coverage, and limitations.
* Expectations for creating comprehensive test cases to validate program functionality.
* A defined scope for program size and complexity for each assigned task.