Abstract
-
- [....] Concurrent Pascal is an abstract programming language for computer operating systems. The language extends sequential Pascal with the monitor concept for structured concurrent programming. Compilation of Concurrent Pascal on a minicomputer is done by dividing the compiler into 7 sequential passes. The passes, written in sequential Pascal, generate virtual code that can be interpreted on any 16-bit minicomputer. It has been running on a [DEC] PDP-11/45 computer at Caltech since January 1975.(Hartman 1977)
Under
Further Work (p. 68--69), Hartman criticizes the removal of
classes from "sequential Pascal" as a "mistake": "The compilers would probably be smaller and simpler if they were written with classes." Although his conclusion about compiler-implementation is sensible, his criticism about language-design is puzzling. Classes are an object-oriented feature pioneered by
SimulaLanguage; no such feature is documented in published sources on
PascalLanguage, whether as a tentative feature later abandoned, or even as a feature intended for some other keyword or syntax[1]. Perhaps the criticism is to the Caltech "sequential Pascal" compiler, which was apparently
not based at all on the Pascal-P "implementation kit" of early 1973, thus a "from scratch" effort that'd be amenable to any language extensions that nonpurist implementors could devise.
References
- Per Brinch Hansen 1975: "The programming Language Concurrent Pascal". IEEE Transactions on Software Engineering, vol. 1, num. 2 (June 1975), p. 199--207.
- Alfred C. Hartman 1977: A Concurrent Pascal compiler for minicomputers (Lecture Notes in Computer Science num. 50). Springer-Verlag: Berlin (BRD/FRG), 119 pp. ISBN 3-540-08240-9 (S-V: Berlin); 0-387-08240-9 (S-V: New York).
- Per Brinch Hansen 1966--2002: "ESSAYS IN COMPUTING: Selected Papers". Includes Concurrent Pascal and other languages or compilers, notably Edison (1981) and Joyce (1987). Accessible at <http://brinch-hansen.net/>.
[1] It wouldn't be too surprising if despite the absence of documentation for a (hypothetically) once-intended class feature in PascalLanguage, the original implementors of that WirthLanguage? were gradually soured on it. Consider some ambiguities, ad hoc solutions, and other vexations that survived:
- type-equivalence (name vs. structural).
- Mutually referencing pointers-to-record in definitions of complex data structures.
- The barely documented forward declaration for functions and procedures. --ClayPhipps (2014-10-17)
CategoryProgrammingLanguage