Skip to main content
Log in

On removing the machine from the language

  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Dijkstra, E.W.: A discipline of programming. New Jersey: Prentice-Hall 1976

    Google Scholar 

  2. Donahue, J.E.: Locations considered unnecessary. Acta Informat. 8, 221–242 (1977)

    Google Scholar 

  3. Hardgrave, W.T.: Positional versus keyword parameter communication in programming languages. SIGPLAN 11, 52–58 (1976)

    Google Scholar 

  4. Hehner, E.C.R.: do considered od: a contribution to the programming calculus. CSRG Technical Report 75, University of Toronto, 1976

  5. Hoare, C.A.R.: An axiomatic basis for computer programming. Comm. ACM 12, 576–583 (1969)

    Google Scholar 

  6. Hoare, C.A.R.: Recursive data structures. Internat. J. Comput. Information Sci. 4, 105–132 (1975)

    Google Scholar 

  7. Kieburtz, R.B.: Programming without pointer variables. ACM Conference on Data: Abstraction, Definition and Structure, Salt Lake City, 1976

  8. Knuth, D.E.: Structured programming with go to statements. ACM Computing Surveys, 6.4, December, 1974

  9. 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)

    Google Scholar 

  10. Ledgard, H.F., Marcotty, M.: A genealogy of control structures. Comm. ACM 18, 629–639 (1975)

    Google Scholar 

  11. McKeeman, W.M.: An approach to computer language design. Report STAN-CS-66-48, Stanford University, 1966

  12. 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

    Google Scholar 

  13. 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

    Google Scholar 

  14. Webster's Third New International Dictionary, p. 132. Springfield, Mass.: Merriam 1976

  15. 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

    Google Scholar 

  16. Wirth, N.: Modula: a language for modular multiprogramming. Technical Report 19, Institut für Informatik, Eidgenössische Technische Hochschule, Zürich, June, 1976

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Additional information

This work was supported by the National Research Council of Canada

Rights and permissions

Reprints 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

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00264318

Keywords

Navigation