skip to main content
article
Free Access

The Turing programming language

Published:01 December 1988Publication History
Skip Abstract Section

Abstract

Turing, a new general purpose programming language, is designed to have Basic's clean interactive syntax, Pascal's elegance, and C's flexibility.

References

  1. 1 Conway, R.W., and Wilcox, T.R. Design and implementation of a diagnostic compiler for PL/1. Commun. ACM 6, 3 {Mar. 1973), 169-179. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2 Cordy, I.R., and Holt, R.C. Specification of Concurre'at Euclid. Tech. Rep. CSRI~133, Computer Systems Research Institute, University of Toronto, August 1981.Google ScholarGoogle Scholar
  3. 3 Cordy, J.R. A diagrammatic approach to processing programming language semantics, Tech. Rep. CSRI-67, Computer .'2ystems Research Institute, University of Toronto, March 1976 (later published In Proceedings of SIGPLAN 79 Symposium on Compiler' Construction. SIGPLAN Not. 14, 8 {Aug. 1979}, 39-49. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4 Cordy, ).R., and Graham, T.C.N. TTV: A programming environment that's as smart as you waat it to be. In Proceedings of the 5th Canadian Symposium on Instructional Technology (Ottawa, Canada, May 1986), NRC (National Research Council}, 1986.Google ScholarGoogle Scholar
  5. 5 Cordy, J.R., and Graham, T.C.N. Design of an interpretive environment for TURING. In Proceedings of SIGPLAN 87 Symposium on Interpreters and Interpretive Techniques. SIGPLAN Not. 22, 7 (July 1987). Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6 Cordy, J.R., Eliot, N., and Robertson, M. TURINGTOOL: A knowledge-based user interface to aid in the maintenance task, Tech. Rep. 87-183, Department of Computing and {nformation Science, Queen's University at Kingston, July 1987.Google ScholarGoogle Scholar
  7. 7 Dijkstra, E.W. A Discipline of Programming. Prentice-Hall, Englewood,} Cliffs, N.J., 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8 Gries. D. The Science of Programming. Springer-Verlag, New York, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9 Habermann, A.N. Critical comments on the programming language Pascal. Acta Informatica 3, 1973, 47-57.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10 Hehner, E.C.R. The Logic of Programming. Prentice-Hall International Series in Computer Science, London, 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11 Hodges, A. Alan Turing: The enigma. Simon & Schuster, New York, 1983. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12 Holt, R.C., Cordy, J.R., and Wortman, D.W. An introduction to S/SL: syntax semantics language. ACM Trans. Prog. Lang. Syst. 4, 2 (Apr. 1982) 149-178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13 Holt, R.C., and Cordy, J.R. The TURING language report. Tech. Rep. CSRG-153, Computer Systems Research Institute, University of Toronto, December 1983.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 14 Holt, R.C. Concurrent Euclid, The Unix System and Ti~nis. Addison- Wesley, Reading, Mass. 1983.Google ScholarGoogle Scholar
  15. 15 Holt, R.C. TURING: An inside look at the genesis of a programming language. Computer-world 18, 20 (May 1984).Google ScholarGoogle Scholar
  16. 16 Holt, R.C., Hume, J.N.P. Introduction to Computer Science Using the TURING Programming Language. Reston, Prentice-Hall, Englewood Cliffs, N.J., 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. 17 Holt, R.C., and Cordy, J.R. The TURING PLUS report. Tech. Memo, Computer Systems Research Institute, University of Toronto, 1985.Google ScholarGoogle Scholar
  18. 18 Holt, R.C. Design goals for the TURING programming language. Tech. Rep. CSRI-187, Computer Systems Research Institute, University of Toronto, 1986.Google ScholarGoogle Scholar
  19. 19 Holt, R.C., Matthews, P.A., Rosselet, J.A., and Cordy, ).R. The TURING Programming Language: Design and Definition. Prentice-Hall Eng}ewood Cliffs, N.J., ~ 987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. 20 Hull, T.E., Abraham, M.S., Cohen, M.S., Curley, A.F.X., Hall, C.B., Penny, D.A., and Sawchuk, J.T.M. Numerical TURING. ACM SIG- NUM Newsletter 20, 3 (July 1985), 26-34. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21 Ichbiah, J. et al. Rationale for the design of the Ada programming language. ACM SIGPLAN Not., 14, 6 (June 1979). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22 ISO Specification of the Computer Language Pascal. International Standards Organization. 1981.Google ScholarGoogle Scholar
  23. 23 Jensen, K., and Wirth, N. Pascal User Manual and Report. 2d ed., Springer-Verlag, New York, 1974. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24 Kastens, U., Hurt, B., and Zimmerman, E. GAG: A Practical Compiler Generator. Springer-Verlag, Berlin, 1982.Google ScholarGoogle Scholar
  25. 25 Kernighan, B.W. Why Pascal Is Not My Favorite Programming Language. Computer Science Report 100, Bell Laboratories, Murray Hill, N.J., July 1981.Google ScholarGoogle Scholar
  26. 26 Lampson, B.W., Horning, J.J., London, R.L., Mitchell, J.G., and Popek, G.J. Report on the programming language Euclid. ACM SIGPLAN Not. 12, 2 (Feb. 1977) (The revised language is described in Rep. CSL-81-12, Xerox Palo Alto Research Center, October 1981.) Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. 27 Rosselet, J.A. Definition and implementation of context conditions for programming languages. Tech. Rep. CSRG-162, Computer Systems Research Institute, University of Toronto, July 1984.Google ScholarGoogle Scholar
  28. 28 Welsh, J., Sneeringer, W.J., and Hoare, C.A.R. Ambiguities and insecurities in Pascal. Software--Practice and Experience 7, 6 (Nov. 1977), 685-696.Google ScholarGoogle ScholarCross RefCross Ref
  29. 29 Wirth, N. Modula: A programming language for modular multiprogramming systems. Software--Practice and Experience, 7, I (Jan.-Feb. 1977}, 3-35.Google ScholarGoogle Scholar

Index Terms

  1. The Turing programming language

            Recommendations

            Reviews

            Simon John Thompson

            Turing is a general-purpose imperative programming language designed to support both teaching and larger-scale applications, especially in its system programming extension, Turing Plus. The authors of this paper give an informal introduction to the language (which they classify as a `super Pascal') by means of a number of examples that illustrate its superiority to Pascal. Besides tightening up some of Pascal's documented insecurities, the developers of Turing added elements of specification via Hoare-style pre- and post-conditions. These conditions can be checked at run-time and provide a succinct and powerful means of program documentation. In my view, the most important aspect of Turing is its formal definition [1]. This definition uses axiomatic semantics, which has existed for a number of years. Although the axiomatic approach does have its limits—the definition's authors point out that aliasing and side-effects are difficult to handle—it seems imperative that any new language have such a definition. Another aspect of Turing that deserves comment is the way it handles variant records and pointers: insecurities are tightened up to allow run-time signalling of violations. In both cases the constructs could have been further modified to prevent run-time errors, surely a desirable situation. Specifically, for the first case code could be provided, at any use of a variant record, to deal with every variant, and in the second case the explicit deallocation of pointers could be replaced by garbage collection. Nevertheless, the authors present a coherent summary of the salient features of an elegant language, and they whet one's appetite for the greater detail for the definition [1].

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image Communications of the ACM
              Communications of the ACM  Volume 31, Issue 12
              Dec. 1988
              138 pages
              ISSN:0001-0782
              EISSN:1557-7317
              DOI:10.1145/53580
              Issue’s Table of Contents

              Copyright © 1988 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 December 1988

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader