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 assumes confident programming ability in any language. Some familiarity with computer architecture is also advantageous: those without an undergraduate computer science background are advised to take our Computer Architecture course before undertaking Languages, Compilers and Interpreters.

Schedule and fees

This course is next scheduled to run Tuesdays and Fridays 6pm-9pm and Sundays 2pm-5pm for three weeks starting Tuesday, 2 May 2017. The total price is $1,800.

San Francisco, California
© 2016 Bradfield School of Computer Science