Summary
Many of the problems in programming languages today are a result of the model of computation offered by our machines. Structured programming combats these problems by restricting flow of control and storage references to a relatively safe set of control and data structures. Some current research attempts to aid programming reliability by enforcing such restrictions in the programming language. This paper proposes a simpler view of some basic language elements (variable, assignment, parameter), not based on our machines, that is safe without restriction. Structuring is then defined independently of what is being structured. A single, simple structure, applied to both values and assignments, yields equivalents for the “safe set” of data and control structures.
Similar content being viewed by others
References
Dijkstra, E.W.: A discipline of programming. New Jersey: Prentice-Hall 1976
Donahue, J.E.: Locations considered unnecessary. Acta Informat. 8, 221–242 (1977)
Hardgrave, W.T.: Positional versus keyword parameter communication in programming languages. SIGPLAN 11, 52–58 (1976)
Hehner, E.C.R.: do considered od: a contribution to the programming calculus. CSRG Technical Report 75, University of Toronto, 1976
Hoare, C.A.R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–583 (1969)
Hoare, C.A.R.: Recursive data structures. Internat. J. Comput. Information Sci. 4, 105–132 (1975)
Kieburtz, R.B.: Programming without pointer variables. ACM Conference on Data: Abstraction, Definition and Structure, Salt Lake City, 1976
Knuth, D.E.: Structured programming with go to statements. ACM Computing Surveys, 6.4, December, 1974
Lampson, B.W., Horning, J.J., London, R.W., Mitchell, J.G., Popek, G.J.: Report on the programming language Euclid. SIGPLAN 12, 1–79 (1977)
Ledgard, H.F., Marcotty, M.: A genealogy of control structures. Comm. ACM 18, 629–639 (1975)
McKeeman, W.M.: An approach to computer language design. Report STAN-CS-66-48, Stanford University, 1966
Ross, D.T.: Uniform referents: an essential property for a software engineering language. In: Software engineering (J.T. Tou, ed.). New York-London: Academic Press 1970
Scott, D., Strachey, C.: Towards a mathematical semantics for computer languages. In: Computers and automata (J. Fox, ed.), pp. 19–46. New York: Wiley 1972
Webster's Third New International Dictionary, p. 132. Springfield, Mass.: Merriam 1976
Wirth, N.: On the design of programming languages. Proc. IFIP Congress, Stockholm, 1974. In: Information processing, Vol. 74, pp. 386–393. Amsterdam: North-Holland 1974
Wirth, N.: Modula: a language for modular multiprogramming. Technical Report 19, Institut für Informatik, Eidgenössische Technische Hochschule, Zürich, June, 1976
Author information
Authors and Affiliations
Additional information
This work was supported by the National Research Council of Canada
Rights and permissions
About this article
Cite this article
Hehner, E.C.R. On removing the machine from the language. Acta Informatica 10, 229–243 (1978). https://doi.org/10.1007/BF00264318
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF00264318