CS118 Programming Languages

Course Content

CS118 consists of four threads: theory, notation, language and translation. As parallel processes they are largely independent, but some synchronization is required.
  • Theory:
    in which we discuss languages in general -- how they are defined, what they mean, and how they mediate between man and machine.
  • Notation:
    in which we discuss notations -- how they have changed the course of art and science, how they interact with the mind and body, how to invent a new one.
  • Languages:
    in which hundreds of programming languages and a handful of concepts form the substance. The languages are important because they are tools of computer science. We look at languages that (1) we know well enough to teach, (2) may be needed to solve real problems, (3) exhibit important concepts, (4) exhibit some aspect of elegance.
  • Translation:
    in which the means of translating programming languages are taught. This is a skills thread. (1) lexing and scanning, (2) top down and bottom up parsing, (3) canonical parse, parse tree and abstract syntax tree, (4) interpretation, (5) translation to HLL and machine code.

Created: March 26, 1966
Last modified: March 26, 2007