Programming Languages: Concepts and Implementation
Introduction and the Basics of Syntax and Semantics
These slides introduce the course and give an overview over syntax and semantics.
For a later, more in-depth treatment of "big-step operational semantics" or "natural semantics",
please refer to
this handout instead.
Representing Information in Memory
Assembly Language: 2opm
This module series introduces assembly languages via 2opm, a
synthetic assembly language. 2opm is substantially simpler
than typical assembly languages but maps directly to amd64/x86_64
assembly, meaning that it can be executed directly on these
contemporary 64 bit CPUs.
You can get 2opm as part
of the AttoVM compiler/runtime, which the course covers later, and
try it yourself (tested on Linux/OS X). Here
is the 2opm summary description.
Registers, arithmetic, and other basic operations.
2OPM Advanced Operations
Building conditionals and loops with jump and branch instructions.
Subroutine execution and recursion.
Overview: Implementation of High-Level Languages
Executing High-Level Languages
Executing in the UNIX run-time environment
Programming Languages: Expressions, Statements, Subroutines
This module series introduces variables, expressions, statements, and
subprograms as the first set of core concepts in general-purpose
Names and Bindings
Names and Scopes
Statements, including Assignments
Iterative Control Structures
Programming Languages: Expressions, Statements, Subroutines: Implementation
This module series describes some of the less obvious implementation
strategies the concepts introduced in Programming Languages: Expressions, Statements, Subroutines.
Implementing Iterative Control Structures
Implementing Parameter Passing
Closures and Thunks
More to come...
This page is Copyright © 2004-2021 Christoph Reichenbach. Re-use in whole or in parts is allowed without restriction.