" began not with a line of code, but with a question: What is a program, truly?
Γ⊢e1∶IntΓ⊢e2∶IntΓ⊢e1+e2∶Intthe fraction with numerator cap gamma ⊢ e sub 1 colon Int space cap gamma ⊢ e sub 2 colon Int and denominator cap gamma ⊢ e sub 1 plus e sub 2 colon Int end-fraction
This constraint is a feature, not a bug. It guarantees that the function is purely algebraic and detached from specific implementation details. This instills a deep appreciation for abstraction barriers—a concept that is crucial in large-scale software architecture, yet often lost in the weeds of object-oriented inheritance hierarchies. 15312 foundations of programming languages
: Most implementation work (interpreters and language dynamics) is done in Standard ML (SML) .
Once you see the underlying type structure, every new language is just a variation on a theme. " began not with a line of code,
Beyond pure logic, 15312 tackles the "messy" parts of programming: exceptions, mutable state (references), and continuations. By formalizing these concepts, students learn how to manage complexity without sacrificing mathematical certainty. Why Should You Care?
By the 1960s, the Tower of Babel had been rebuilt—this time with FORTRAN, COBOL, Lisp, ALGOL, and others. No one could agree on what a programming language should be. That’s when a small group of computer scientists began asking a radical question: Beyond pure logic, 15312 tackles the "messy" parts
Premise1Premise2Conclusionthe fraction with numerator Premise sub 1 space Premise sub 2 and denominator Conclusion end-fraction
At its heart, 15312 is a course in and Operational Semantics . It moves away from the "black box" approach of using a compiler and instead teaches students how to build a language from the ground up using mathematical logic.