The design of a successor to pascal
The language supports all of the type constructs of Pascal except the variant record.
A class construct has been provided to allow the implementation of abstract data types and the hiding of the actual implementation.
A type union replaces the variant record.
Parameterized types allow procedures to operate on wider classes of conformable data types than Pascal.
Predefined data types of "complex" and "string" have been added.
A new concept called a "selector" has been added.
The var parameter has been discarded. Parameter modes are now const, value, result and value result.
Functions are generalized to any type and additionally may return more than one value.
The assignment statement is replaced by the concurrent assignment statement.
The if-, while- and repeat-statements are replaced by Dijkstra's if- and do-statements.
A pipeline facility is provided for communication and synchronization of sequential processes.
KeywordsProgramming Language Variant Record Abstract Data Type Class Construct Separate Compilation
- Ammann, U. (1970) "Pascal-6000 compiler", ETH Zurich.Google Scholar
- Ammann, U. (1974) "The method of structured programming applied to the development of a compiler", International Computing Symp. 1973, (Günther, et al, Eds), 93–99.Google Scholar
- Barron, D.W., Buxton, J.N., Hartley, D.F., Nixon, F., Strachey, G.S. (1963) "The main features of CPL", Computer Journal 6, 134–143.Google Scholar
- Backus, J. (1978) "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs", Comm ACM 21, 8(August), 613–641.Google Scholar
- Brinch Hansen, P. (1976) "The programming language Concurrent Pascal", I.E.E.E. Trans. Software Eng. 1, 2 (June), 199–207.Google Scholar
- Dahl, O-J., et al. (1967) "SIMULA 67, common base language", Norwegian Computing Centre, Forskningveien, Oslo.Google Scholar
- Dijkstra, E.W.D. (1975) "Guarded commands, nondeterminacy and formal derivation of programs", Comm ACM 18, 8 (August), 453–457.Google Scholar
- Dijkstra, E.W.D. (1976) "A discipline of programming", Prentice-Hall.Google Scholar
- Hoare, C.A.R. (1971) "Procedures and parameters; an axiomatic approach", Symposium on Semantics of Algorithmic Languages (E.Engeler, ed), Lecture Notes in Mathematics 188, Springer-Verlag.Google Scholar
- Hoare, C.A.R. (1972) "Proof of correctness of data representations", Acta Informatica 1, 271–281.Google Scholar
- Hoare, C.A.R. (1978) "Communicating sequential processes", Comm ACM 21,8 (August), 666–677.Google Scholar
- Hoare, C.A.R. & Wirth, N. (1973) "An axiomatic definition of Pascal", Acta Informatica2, 335–355.Google Scholar
- Jensen,K. & Wirth,N. (1975) "Pascal User Manual and Report", Springer-Verlag.Google Scholar
- Wirth, N. (1971) "The programming language Pascal", Acta Informatica 1,1, 35–63.Google Scholar
- Wirth, N. (1975) "An assessment of the programming language Pascal", SIGPLAN Notices 10,6 (June), 23–30.Google Scholar
- Wirth, N. (1977) "What can we do about the unnecessary diversity of notations for syntactic definitions?", Comm ACM" 20,11 (November), 822–823.Google Scholar