15312 Foundations Of — Programming Languages

This deep link between programming and logic means that writing a correct program is like constructing a proof of a theorem.

How programs behave, defined rigorously via operational semantics.

15-312 is famous for using as its implementation language. Why SML?

How languages ensure safety and prevent errors. 15312 foundations of programming languages

Comparing languages like Standard ML (which evaluate arguments immediately) to languages like Haskell (which delay evaluation until necessary). 3. Advanced Paradigms and Concepts

As the course progresses, it moves beyond basic arithmetic and functions into complex computational mechanisms used in modern production languages. Continuations and Control Flow

An uninhibited type (a type with no possible values, like Void ) represents a contradiction or falsehood ( Falsecap F a l s e This deep link between programming and logic means

If you want, I can:

Generic programming and modularity.

Are you interested in for self-study? Let me know how you would like to proceed! Share public link Why SML

Once you see the underlying type structure, every new language is just a variation on a theme.

To support parametric polymorphism, we'll introduce , which represent the type of a polymorphic function.

The course explores different evaluation strategies. Eager (call-by-value) evaluates function arguments before passing them, while lazy (call-by-name) defers evaluation until the argument is explicitly needed. 3. Type Systems: The Vanguard of Program Safety

: An insightful blog post by a former teaching assistant that breaks down the unique challenges of the course, including the implementation of homework problems using Standard ML. Hacker News Core Concepts & Supplementary Materials