Christopher B. Browne's Home Page

4. The PASCAL Family of Languages


Pascal was a block structured, Algol -like language developed in the late '60s by N. Wirth as a "teaching" language. In order to keep it from consuming too much computing resources for students that tend to make a lot of mistakes and recompile programs frequently, it was implemented as a one pass system, with various language implications. It uses strong data typing, complaining at compile time about attempts to assign values incorrectly.

Numerous subsequent languages have been either apparently or directly based on Pascal.

Modula, Modula-2

Modula and Modula-2 were developed by Wirth as languages that add modularization and data hiding capabilities, as well as permitting separate compilation;

See documentation at Modula-2: Abstractions for Data and Programming Structures (Using ISO-Standard Modula-2)

An available implementation is MOCKA Modula-2 Compiler System for Unix-like systems. It is free of charge when used on Linux and FreeBSD; academic licenses on other platforms are quite expensive, and it is rather expensive for commercial use...

XDS x86 - Modula2 for x86 may become available for Linux.

GNU Modula-2


Modula3 adds object oriented capabilities and garbage collection to the "Modula family;"


Ada was developed for the US Department of Defense to be their "standard" military systems development language; it bears marked similarity to Pascal, while adding (perhaps too much) sophistication;


Oberon was developed by Niklaus Wirth and Jurg Gutknecht, combining many of the features in Modula-2 with object oriented structures, along with an integrated development environment directed particularly towards "systems programming."

Aficionados of Pascal-like languages tend to complain that C is messy, consider C to be overpermissive in the things it allows you to do, and suggest that the static type checking in their preferred language allows one to avoid many programming errors. Those that like C complain that Pascal (and kin) are overly rigid, and suggest that the type checking only finds some errors. And LISP/Scheme people suggest that other people are all overconcerned with syntax. Aren't language wars fun?

4.1. Simula

The SIMULA programming language was designed and built by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Centre (NCC) in Oslo between 1962 and 1967. It was originally designed and implemented as a language for discrete event simulation, but was later expanded and reimplemented as a full scale general purpose programming language. Although SIMULA never became widely used, the language has been highly influential on modern programming methodology. Among other things SIMULA introduced important object-oriented programming concepts like classes and objects, inheritance, and dynamic binding.

(See The History of Simula for the remainder of this text.

Simula was notable in inspiring the developers that developed Smalltalk and C++, whose object models have been the basis for most other object systems since then.

4.2. Eiffel

Eiffel is an Algol -like language, based on Simula, with OO and software engineering extensions, notably the notion of Design by Contract.

Contact me at