Меню

If you are a CMU student, note that this course is intended for undergraduates, while graduate students should look toward .

Analyzes dynamically typed languages (like JavaScript or Python) as a special, single-typed subset of static languages. The Practical Value of Programming Language Theory

Arguments are passed unevaluated and are only computed when their values are strictly necessary. This is famously utilized by Haskell.

The course is structured to build a complete picture of a programming language from the ground up. The progression of topics is logical and cumulative, with each new concept building on the formal foundation established by the previous one. Here is a look at the key topics typically covered, based on course syllabi from various semesters:

Using existential types to completely hide implementation details from the user, enforcing true modularity. Control Effects and Memory Management

The curriculum of 15-312 is built around several foundational concepts developed by leading computer scientists, most notably Professor Robert Harper. Abstract Syntax vs. Concrete Syntax

15312 Foundations of Programming Languages: A Comprehensive Guide

): Understanding how types can be arranged in a hierarchy (e.g., a Dog is a Animal ).

(a well-typed expression is either a value or can take a step) and Preservation (if an expression takes a step, its type remains the same). Effects and Control:

Defining functions that work universally over any type (e.g., generics in Java or templates in C++).


Яндекс.Метрика