Course Overview
What this ALGOL course covers, how to use it, prerequisites.
A self-contained, hands-on course covering the ALGOL family of programming languages: the 1958 International Algebraic Language (ALGOL 58), the landmark ALGOL 60 (Revised Report) with its block structure, call by name, Jensen's device and recursion, the formal definition through BNF, stropping and hardware representations, ALGOL W and the major dialects (Burroughs/Unisys, Elliott, Simula's ALGOL base), and the ambitious ALGOL 68 (Revised Report) with its orthogonal modes, references, coercions, unions, user-defined operators, formatted transput, parallel clauses and two-level van Wijngaarden grammar. You will run real programs with modern implementations (Algol 68 Genie for ALGOL 68, MARST for ALGOL 60), implement classic algorithms in both languages, and trace ALGOL's influence on Pascal, C, Simula, Ada, Modula and structured programming. Every chapter has runnable examples and exercises.
Course Map
Part I — Foundations (ALGOL 60) Introduction to ALGOL History: From IAL to ALGOL 68 BNF & the Formal Definition
Stropping: Reference, Publication & Hardware Languages Implementations Then and Now Installing & Running ALGOL Today Your First ALGOL 60 Programs
Program Structure, Blocks & Compound Statements Types, Declarations & Expressions Arrays, Dynamic Bounds & own Variables Conditional Statements & Expressions The for Statement Labels, goto & Switches Part II — Core Language Procedures & Function Designators Call by Value vs Call by Name Jensen's Device & Thunks Recursion & the Man or Boy Test
Lexical Scope, Block Structure & the Run-Time Stack Standard Functions & Input/Output
ALGOL 60 Problems, Ambiguities & the Modified Report Classic Algorithms in ALGOL 60
Dialects: Burroughs/Unisys, Elliott, Simula & Others Part III — Advanced (ALGOL 68)
ALGOL 68: Design, Orthogonality & First Programs Identity Declarations, Variables & REF Modes Coercions & Contexts Clauses & Control Flow Rows: Arrays, Slicing & FLEX STRUCT, UNION & Conformity Clauses
Procedures, Routine Texts & Higher-Order Programming Operators: OP & PRIO
Generators, References & Linked Data Structures Parallel Clauses & Semaphores Error Handling & Events
Algol 68 Genie: Pragmats, Preludes & Extensions Two-Level van Wijngaarden Grammars Classic Algorithms in ALGOL 68
Part IV — Legacy, Influence & Real-World ALGOL's Influence: BNF, Structured Programming & Descendants
Comparing ALGOL 60, ALGOL 68, Pascal & C — Why ALGOL Matters Best Practices & Common Pitfalls
Appendices: Cheat Sheets, Keywords, Standard Procedures, History, Resources, Study Plan