CU website

Software project

Information

Instructor

Syllabus

Assignments

Supporting Material

PEP

 

Homework Assignments

General policies apply to all of the homework assignments. You are responsible for understanding those policies, and submitting your work in accordance with them. You are also responsible for regularly checking the grade summary to ensure that your scores are correctly recorded.


Assignment #1

Properties of Languages and Machines:
  • Properties of programming languages
  • Properties of processors
  • Basic kinds of data structures
To be begun during week 1.

Assignment #2

Abstractions of Programs:
  • How a tree represents a program
  • Design patterns for tree implementation
  • Orthogonality of constructs and interpretations
To be begun during week 2.

Assignment #3

Source Program Trees:
  • What should the structures be?
  • How are basic symbols recognized in text?
  • How is the structure determined from text?
  • What task breakdown will your group use for structural analysis?
To be begun during week 3.

Assignment #4

A Structural Analyzer for C--:
  • Understanding an abstract source tree specification
  • Relating phrase structure to tree structure
  • Implementing an executable structural analyzer
To be begun during week 4.

Assignment #5

Scope Rules:
  • What are the scope rules of C--?
  • How do these rules relate to the tree?
  • What kinds of data are involved in the computation?
  • What task breakdown will your group use for name analysis?
To be begun during week 5.

Assignment #6

A Name Analyzer for C--:
  • Implementing consistent renaming according to visibility rules
  • Detecting and reporting undefined and multiply-defined identifiers
  • Verifying actual identifier bindings
To be begun during week 6.

Assignment #7

Overload Resolution:
  • Defining, setting, and querying properties
  • Accounting for dependence arising through side effects
  • Indications, operators, and coercions
  • Determining the type of each expression and reporting errors
To be begun during week 7.

Assignment #8

A Type Analyzer for C--:
  • Understanding the type specification for a language
  • Relating context conditions to the tree structure
  • Implementing an executable type analyzer
To be begun during week 9.

Assignment #9

Data Mapping:
  • Representation of primitive data
  • Combining data
  • Activation records
To be begun during week 10.

Assignment #10

Storage Allocation:
  • Obtaining memory representations of source objects
  • Using extent properties to overlay storage
  • Establishing information required for action mapping
To be begun during week 11.

Assignment #11

Code Sequences:
  • A general design procedure
  • A mapping from C-- to SPIM
  • SPIM tree extensions for C--
To be begun during week 12.

Assignment #12

Target Program Tree:
  • Constructing trees via tree computations
  • Tree transformation via tree parsing
  • Implementing an executable action mapper
To be begun during week 13.

Assignment #13

Code Generation:
  • Determining the register count of an expression
  • Allocating registers to intermediate results
  • Building textual representations
To be begun during week 15.
Instructor
Revision 2.7 (1998/08/21 20:14:32)