University of Arizona, Department of Computer Science

CSc 453: Fall 2015: Programming Assignments

The Start dates given here refer to the latest date by which the specification for an assignment will be made available. I will try to make the specifications available earlier than this, both to give people more flexibility in budgeting their time, and to allow them to anticipate future needs while designing their programs.

0. Assignment 0 Function: set up
1. html2txt Function: Convert a HTML file to a txt file (Goal: learning to use lex and yacc).
Input: HTML file;
Output: txt file.
Part 1: Start: Tue Sept 1; Due: 11:59pm Tue Sept 8; Specification
Part 2: Start: Tue Sept 8; Due: 11:59pm Mon Sept 14; Specification
Weight in final grade: 2+2 = 4%
2. Scanner + Parser Function: Read in a program according to the lexical conventions of the language; check syntax rules and report lexical/syntax errors; syntactic error recovery.
Input: source program character sequence;
Output: syntax error messages (if any).
Specification
Start date: Thu Sept 17
Due date: 11:59pm Mon Oct 5
Weight in final grade: 12%
3. Type Checking Function: Check type restrictions and report semantic errors; semantic error recovery.
Input: source program character sequence;
Output: syntax/semantic error messages (if any).
Specification
Start date: Tue Oct 13
Due date: 11:59pm Mon Oct 26
Weight in final grade: 17%
4. Code Generation Function: Generate assembly code.
Input: source program character sequence;
Output: assembly code instruction sequence.
Weight in final grade: 7+10 = 17%
  • 4(a). Milestone 1: Code generation for a subset of C--:
    Specification [milestone 1]
    Start date: Tue Nov 3
    Due date [milestone 1]: 11:59pm Fri Nov 13
    Weight in final grade: 7%

  • 4(b). Complete assignment: Code generation for all of C--:
    Specification [complete assignment]
    Start date: Tue Nov 3
    Due date [complete assignment]: 11:59pm Mon Nov 23
    Weight in final grade: 10%