everything.study
17-396

Language Design and Prototyping

12 units · Undergraduate

Spring: 12 units Many programmers think of programming languages as having a fixed, standard set of features and #8212;but in fact, languages are being extended all the time, and new languages are constantly being developed, providing great expressive power. In this course, students will learn about techniques for designing and prototyping programming languages. Design topics include language features, a practical approach to semantics, conceptual design techniques, and examples of both general purpose and domain-specific language designs. Prototyping topics include interpreters, source-to-source translators, languages as libraries, and paper prototyping techniques used for lightweight user evaluations. In course assignments, students will practice design and prototyping techniques, implementing prototype languages in several different styles. The course will end with a project in which students design, implement, and evaluate their own programming language. Prerequisites: 17-214 or 15-213 or 17-514 Course Website: http://www.cs.cmu.edu/~aldrich/courses/17-396/

Sources