NEW COURSE
Effective: FALL 2001
Course Number *: 765-322
Course Title: Computer Languages and Compilers
15 Character Abbreviation: Compilers
25 Character Abbreviation: Languages and Compilers
Sponsor: Jonathan Kane
E-mail Address: kanej@mail.uww.edu
Department: Mathematical and Computer Sci.
College: Letters & Sciences
Other Programs Affected: Mathematics Major, Computer Science Minor
Check if course is to meet any of the following requirements:
None Writing Computer Diversity General
Ed and Area
Contact hours/credits: 16
Total lecture hours: 48
Total lab hours: 0
Total contact hours: 48
Number of credits 3
Check if course is repeatable: No Yes (if
yes answer the following questions)
No of times in major
No of credits in major
No of times in degree
No of credits in degree
Enter the appropriate titles if the course is required in any of the
following:
Major Title(s)
Minor Title(s)
Emphasis Title(s) Computer Mathematics Major
Course justification:
A course in the construction of assemblers and compilers is central
to any major in Computer Science. It introduces the basic concepts of systems
programming as well as lays down the theoretical aspects of computer languages
which gives students an understanding of language design and usage. For
this reason this course is necessary for the proposed Computer Mathematics
emphasis in the Mathematics Major and would play an important role in a
future major in Computer Science, a long term goal of the Department of
Mathematical and Computer Sciences.
Relationship to program assessment objectives:
This course offers both a very practical background in how to write
system software such as assemblers and compilers as well as presenting
abstract concepts pertaining to computer language design. Thus, this course
meets both the objective of covering practical problem solving skills and
the objective of teaching students to deal with abstract concepts.
Budgetary impact:
The Department of Mathematical and Computer Sciences currently has
faculty prepared to teach this course. If the Computer Mathematics emphasis
in the Mathematics major is approved, this course would have to be taught
on a biannual basis. If a future Computer Science major is approved, the
course may need to be taught on an annual basis. The department is currently
involved in searches for three new faculty with expertise in Computer Science.
The filling of these positions will allow this new course to be offered.
In addition, although it would be possible to teach the course using the computer software facilities currently available on campus, the course could be improved by offering the students the use of compiler generation software or so called "compiler compilers" whose purchase might pose additional costs. There is a proposal for a new Computer Science laboratory on campus. Such software would naturally be included in such a laboratory design.
Course description:
This course is an introduction to the theory of computer languages
and the construction of assemblers and compilers. Students will write a
small assembler and a small compiler and will compare features of many
computer languages.
Course requisites:
Prerequisites 765-271 and either 765-372 or 950-231
Course objectives and tentative course syllabus:
In this course students will learn the fundamentals of assembler and
compiler design and will write a simple assembler and compiler. In addition,
students will learn basic characteristics of computer programming languages,
learn to compare the common programming languages, and learn the theoretical
basis for analysis of computer languages. Discussion will include the three
fundamental pieces of a language compiler: the scanner, the parser, and
the semantic routines. Discussion may include the use of "compiler compilers,"
tools used to automatically produce scanners and parsers.
Weeks Topic
1
Computer Language History
2
Construction of an Assembler
2
Fundamentals of Modern Computer Languages
1
Context Free Grammar
Pieces of a Compiler:
1
scanners,
2
parsers,
2
semantic routines
Special Constructs:
1
Arrays
1
Functions
2
Time devoted to discussion of projects
Bibliography:
Aho, Alfred and Jeffrey Ullman Principles of Compiler Design
Addison-Westley 1977.
*Aho, Alfred V. and Jeffrey D. Ullman The theory of parsing, translation,
and compiling Prentice-Hall 1973.
*Watson, Des High-level languages and their compilers Addison-Wesley,
1989.
*Hunter, Robin The design and construction of compilers Wiley,
1981.
*Calingaert, Peter Assemblers, compilers, and program translation
Computer Science Press, 1979.
*Brown, Peter John Writing interactive compilers and interpreters
Wiley, 1979.
Lewis, Philip M., Daniel J. Rosenkrantz, Richard E. Stearns Compiler
design theory Addison-Wesley Pub. Co., 1976.
William A. Barrett Compiler construction : theory and practice
Science Research Associates, 1986.
Barrett, William A. , John D. Couch Compiler construction : theory
and design Science Research Associates, 1979.
Holub, Allen I. Compiler design in C Prentice Hall, 1990.
*Currently available in the UW-Whitewater Library