STATE UNIVERSITY OF NEW YORK AT OSWEGO
                 Computer Science Department


    I.  COURSE NUMBER AND CREDIT:

        CSC 444 - 3 S. H.

   II.  COURSE TITLE:

        Compiler Construction

  III.  COURSE DESCRIPTION:

        Formal definition of programming languages including
        specification of syntax and semantics.  Structure of
        compilers.  Data structures used in compilation and
        code generation.

   IV.  PREREQUISITES:

        CSC 241 or permission.

    V.  JUSTIFICATION:



   VI.  COURSE OBJECTIVES:

        This course is designed to acquaint students with
        both theory and the practical problems encountered in
        language definition and compiler writing.  The
        objective is to provide students with a knowledge of
        compiler construction, parsing, and formal language
        definitions.

  VII.  COURSE OUTLINE:

        A.  Review
            1.  Data Structures
            2.  Assembly techniques
            3.  Symbol table techniques
        B.  Formal Lanugage Definition
            1.  Notation
            2.  Chomskey Classification
            3.  Parsing
            4.  Recursion
        C.  Lexical Analysis
        D.  Syntax Analysis
            1.  Procedure grammars
            2.  Operator procedure grammar
            3.  Top-down Analysis
            4.  Bottom-up Analysis
            5.  Implementation
        E.  Code generation
            1.  Arithmetic statements
            2.  Tree structure
            3.  Temporaries
            4.  Optimization
        F.  Storage Allocation
            1.  Variable allocation
            2.  Arrays
            3.  Subroutines
        G.  Compiler Organization
            1.  Phases of a compiler
            2.  Diagnostics

 VIII.  METHODS OF INSTRUCTION:

        A.  Lectures
        B.  Programming Exercises
        C.  Examinations

   IX.  COURSE REQUIREMENTS:



    X.  MEANS OF EVALUATION:

        A.  Examinations
        B.  Programming Exercises

   XI.  RESOURCES:



  XII.  BIBLIOGRAPHY:

        Aho, A. & Ullman, J. D. Principles of Compiler
           Design, Addison-Wesley, 1979.

        Aho, A. & Ullman, J. D. The Theory of Palsing,
           Translation, and Compiling (Vol. I, palsing)
           Prentice-Hall, 1972.

        Aho, A. & Ullman, J. D. The Theory of Palsing,
           Translation, and Compiling (Vol. II, compiling)
           Prentice-Hall, 1972.

        Barrett, W. A. & Couch, J. D. Compiler Construction:
           Theory and Practice, SRA, 1979.

        Gries, D. Compiler Construction for Digital
           Computers, Wiley, 1971.

        Pyster, A. B. Compiler Design and Construction,
           Van Nostrand Reinhold, 1980.
 Last Updated: 7/9/07