CS 3723
Programming Languages  
Spring 2014
  Course Outline  

The main objective of the semester's first half is an understanding of syntax-directed translation. Here is an online definition:

In simplest terms, 'Syntax Directed Translation' means driving the entire compilation (translation) process with the syntax recognizer (the parser).
Using specific examples we will see how this works in practice.


0. Introductory Material.
  1. Contrasts:
    i.    Syntax versus    Semantics
    ii.    Run-time versus Compile-time
    iii.    Translation   versus Interpretation
  2. Outline of a Compiler

1. Formal Grammars and Parsing.
  1. Basic definitions
  2. Derivations, parse trees, ambiguity
  3. Shift-reduce parsing

2. Compiler for a Small Language.
  1. Recursive-descent parsing
  2. MIPS assembly language (emphasis on doubles)
  3. Construct a compiler from the parser (syntax-directed compilation)

3. Regular Expressions and Python.
  1. Python scripting language (introduction)
  2. Regular expressions
  3. Regular expressions in Python

4. Using Automata Theory to Implement Regular Expressions.
  1. Finite automata (DFAs, NFAs, subset algorithm, ε-moves)
  2. Translate arbitrary regular expression into an NFA with ε-moves
  3. Interpret the states of the NFA as it processes input.

5. Unusual Languages.
  1. Python (more of the language)
  2. Lisp (emphasis on recursive programming)
  3. Perhaps Postscript or Prolog or both


Revision date: 2014-01-01. (Please use ISO 8601, the International Standard.)