CS 241/341
Programming Language Design and Implementation

Ever wonder why there are so many semicolons in Java programs, or what it would mean for a language to not be object-oriented? In this course, we will explore issues related to the design and implementation of programming languages. Along the way, we will discover answers to these questions and more. Topics will include syntax, semantics, runtime support for languages as well as an introduction to functional programming.

This course is being offered concurrently at the 200 and 300 level. Everyone will attend the same classes on Tuesdays and Thursdays. Students in the 300 level section will also meet for a 4th hour on Friday where we will examine programming languages in more depth. Each student in the 300 level section will also become our class expert in a particular programming language, giving us all the opportunity to see a variety of ways in which the same concepts can be implemented in different languages.