Overview of Course
CS 360 - Compiler Design Fall Semester 1996
There is a natural communication gap between humans and computers. Computer hardware operates at a very atomic level in terms of bits and registers, whereas, people tend to express themselves in terms of natural languages such as English or in mathematical notation. This communication gap is usually bridged by an artificial computer language (e. g., Basic, Pascal) which allows the human to express himself/herself with a well-defined set of words, sentences and formulas that can direct the computer. This artificial language is usually implemented on a computer as a piece of software called a language processor. The design of the language processor as well as the character of the language is critical to bridging this gap between human and machine.
This course will concern itself with the design of one class of language processors - the compiler. Since the common mathematical foundation of all (computer) language processing is the theory of automata and formal languages, a large portion of the course will be discussing and applying these theories of computer science. Even though the course deals with the theories appropriate to compilers, the material can be used in the design of any language processor.