|CPS710: Translators I||CPS710: Compilers and Interpreters|
|CPS812: Translaters II||CPS812: Advanced Compilers and Interpreters|
|CPS883: Compilers and Translators||CPS883: Compilers|
For example, going to an online technical dictionary,
and searching for "interpreter", one gets the expected:
A program which executes source code by reading it one line at a time and performing each instruction immediately. An interpreter is different from a compiler, which does not execute the source code, but translates it into object code (machine language) which is stored in a file and executed later. Some programming languages must be interpreted; some can be both interpreted and compiled.
Sophie: I have a comment concerning point 2 (cps710). The reason for the name "Translators" was to give instructors the option to cover either compilers or interpreters. In the 8 years when I taught the course, which includes this year and last year, I have always focused this course on interpreters rather than compilers. I am quite convinced that this is a better approach for a first course, for many reasons which I will be pleased to explain either during the meeting or by email if I can't make it to the meeting. I do not know what other instructors have done; in addition to yourself they include Marcus and Dave.
Marc Lijour: I agree with the CIPS suggestion as I believe it makes it easier for the students to read the course catalog and to prepare for the course. While I agree 100% with Sophie, I suspect students would prefer to see a more explicit description rather than a more purist definition. Can interpreters still be taught/implemented as a valid first step in a compiler course?
Introduction to modern compiler design: theory, techniques, and
tools. Students will develop an interpreter or compiler. Assembler and
preprocessors will also be briefly discussed.
Lect: 3 hrs. Prerequisite: CPS 615
This course examines advanced aspects of compiling including run-time
support, garbage collection code generation and type systems. Scanning
and parsing will be neither covered nor required, but CPS 710 or
readings in these areas is recommended.
Lect: 3 hrs. Prerequisite: CPS 710
Topics include: Lexical analysis, deterministic and non-deterministic
finite automata; hardware implementation of DFAs; Context-free
grammars; parsing techniques; syntax directed translation, code
generation; compiler generators.
Lect: 3 hrs./Lab: 2 hrs. Departmental consent required