CH521 Programming Languages

This course examines the fundamental principles of contemporary programming languages. We will highlight the critical relationship between language design and language implementation, and we will devote special attention to issues of importance to expert programmers. Students should emerge better prepared to choose the best language for particular projects, to make more effective use of languages they already know, and to learn new languages quickly and completely. In particular, this course will teach

  • what’s “under the hood” of your favorite programming language,
  • learning about programming languages you do not already know,
  • features of different programming languages, and
  • programming language implementations.

Because of resource constraints of embedded systems (memory, energy, computational power), the efficiency of a programming language implementation can be a major concern. We will highlight programming language implementation techniques that facilitate embedded systems development. Because of the current shift to multi-core architectures, we will study the emerging best parallel programming practices.