Languages, compilers and interpreters

Most programmers learn languages, whereas most computer scientists learn about languages.

This gives the computer scientist a distinct advantage over the programmer, even in the domain of programming! Their knowledge generalizes; they are able to understand the operation of a new language more deeply and expeditiously than those who have merely learnt specific languages.

The course is scoped to give software engineers a first look under the covers of popular languages and their implementations. Compared to a typical compilers course, some of the details of compiler design are treated summarily, so as to afford more time building a stronger understanding of the general design of languages and operation of compilers and interpreters.

Topics covered

  • Overview of languages, language features, compilers and interpreters
  • Lexical analysis
  • Finite automata
  • Parsing
  • Syntax-Directed Translation
  • Types and type systems
  • Virtual machines
  • Garbage collection
  • Just-In Time compilation


This course presumes strong programming abilities, preferably in at least one interpreted and one compiled language.

Schedule and fees

This course is next scheduled to run in May 2017. Apply now to be considered; exact dates and times will be finalized based on participant availability. Classes will be approximately nine hours per week for three weeks, for a total price of $1,800

San Francisco, California
© 2016 Bradfield School of Computer Science