|
ABSTRACT
A formal system is presented which abstracts the notions of data item, function, and relation. It is argued that the system is more suitable than set theory (or its derivatives) for the concise and accurate description of program semantics. It is shown how the system can be used to build composite data types out of simpler ones with the operations of rowing, structuring, and uniting. It is also demonstrated that completely new primitive types can be introduced into languages through the mechanism of singleton data types.
Both deterministic and nondeterministic functions are shown to be definable in the system. It is described how the local environment can be modeled as a data item and how imperative statements can be considered functions on the environment. The nature of recursive functions is briefly discussed, and a technique is presented by which they can be introduced into the system. The technique is contrasted with the use of the paradoxical combinator, Y. The questions of local and global environments and of various modes of function calling and parameter passing are touched upon.
The theory is applied to the proof of several elementary theorems concerning the semantics of the assignment, conditional, and iterative statements.
An appendix is included which presents in detail the formal system governing webs and fen, the abstractions used informally in the body of the paper.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
Bekid, H., and Walk, K. Formalization of storage properties. In Symposium on Semantics AIgorithmie Languages. Erwin Engeler (Ed.), Springer Lecture Note Series, Springer-Verlag, Heidelberg, 1971, p. 39.
|
| |
2
|
BOhm, C. The CUCH as a formal and descriptive language. In Formal Language Description Languages./or Computer Programmhlg T.B. Steel (Ed.), North-Holland, Amsterdam, 1966, pp. 198- 220.
|
 |
3
|
|
| |
4
|
|
| |
5
|
Church, A. An unsolvable problem of elementary number theory. Am. J. .Math. 58 (1936), 345-363.
|
| |
6
|
Curry, H. B., and Feys, R. Combinatory Logic, Vol 1. North- Holland, Amsterdam, 1958.
|
| |
7
|
Dennis, J. B. Notes on the design of a common base language. Mimeographed notes prepared for Tutorial Syrup. on Semantic Models of Computation, Dec. 1971.
|
 |
8
|
|
| |
9
|
Hilbert, D., and Bernays, P. Grundlagen der Mathematik, Berlin, 1934 and 1939, Sec. 1.
|
 |
10
|
|
 |
11
|
|
 |
12
|
|
| |
13
|
Landin, P.J. The mechanical evaluation of expressions. Computer J. 6 (Jan. 1964), 308-320.
|
| |
14
|
Landin, P.J. A formal description of ALGOL 60. In Formal Language Description Languages for Computer Programming. T. B. Steel (Ed.), North-Holland, Amsterdam, 1966, pp. 266-294.
|
 |
15
|
|
 |
16
|
|
| |
17
|
|
| |
18
|
Lucas, P., and Walk, K. On the formal description of PL/I. Annual Reviews t2{Automatic Programming 6, 3 (1969).
|
| |
19
|
MacLennan, B. Semantic specification and machine independent compilation. Proc. ACM 10th Ann. Southeast Reg. Conf.,,June 1971 (mimeographed).
|
 |
20
|
|
 |
21
|
|
| |
22
|
yon Neumann, J. Die Axiomatisierung der Mengenlehre. Math. Z. 27 (1928), 669-752.
|
| |
23
|
yon Neumann, J. Line Axiomatisierung der Mengenlehre. J. reine angew. Math. 154 (1925), 219 240.
|
 |
24
|
|
| |
25
|
Scott, D. The lattice of flow diagrams. In Symposium on Semantics of Algorithmic Languages. Erwin Engeler (Ed.), Springer Lecture Note Series, Springer-Verlag, Heidelberg, 1971, pp. 311-366.
|
| |
26
|
Scott, D. and Strachey, C. Toward a Mathematical Semantics Jbr Computer Languages. Oxford U. Computing Lab., Programming Research Group Tech. Mono. PRG-6.
|
| |
27
|
Strachey, C. Towards a formal semantics. In Formal Language Description Languages for Computer Programming. T.B. Steel (Ed.), North-Holland, Amsterdam, 1966, pp. 198 220.
|
| |
28
|
van Wijngaarden, et al. Report on the algorithmic language ALGOL 68. Numerische Mathematik 14 (1969), 79-218. Offprint available from Dept. AL68-D, ACM Headquarters, New York.
|
| |
29
|
Wirth, N. The programming language Pascal. Acta blformatica 1, 1 (1971), 35-63.
|
| |
30
|
Wulf, W.A., et al. Bliss Reference Manual. Dept. of Computer Sci. document, Carnegie-Mellon U., Pittsburgh, Pa., 1970.
|
INDEX TERMS
Keywords:
axioms,
correctness,
data structures,
data types,
description languages,
extensible languages,
formal description,
formal language definition,
formal systems,
lambda-calculus,
models of computation,
modes,
semantics
|