Turing (programming language)

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Turing
Paradigm multi-paradigm: object-oriented, procedural
Appeared in 1982
Designed by Ric Holt and James Cordy
Developer Holt Software Associates
Typing discipline static, manifest
Major implementations Turing, TPlus, OpenT
Dialects Object-Oriented Turing, Turing Plus
Influenced by Euclid, Pascal, SP/k
OS Cross-platform: Microsoft Windows, Linux, Apple Macintosh

Turing is a Pascal-like programming language developed in 1982 by Ric Holt and James Cordy, then of University of Toronto, Canada. Turing is a descendant of Euclid, Pascal and SP/k that features a clean syntax and precise machine-independent semantics.

Named after British computer scientist Alan Turing, Turing is used primarily as a teaching language at the high school and university level. Two other versions exist, Object-Oriented Turing and Turing Plus, a systems programming variant. In September 2001, "Object Oriented Turing" was renamed "Turing" and the original Turing was renamed "Classic Turing". Turing is no longer supported by Holt Software Associates in Toronto. Downloads can be found here Holt Software. Versions for Microsoft Windows, Linux, and Apple Macintosh are available. Turing is still widely used in high schools in Ontario as an introduction to programming.

In November 2007, Turing, which was previously a commercialized programming language, became freeware. As of November 28, 2007, it was available for download from the Holt Software website free of charge for personal, commercial, and educational use.[1]

Contents

[edit] Syntax

Turing is designed to have a very lightweight, readable, intuitive syntax. Here is the entire Hello World! program in Turing with syntax highlighting:

put "Hello World!"

Turing avoids semicolons and braces, using explicit end markers for most language constructs instead, and allows declarations anywhere. Here is a complete program defining and using the traditional recursive function to calculate a factorial.

 % Accepts a number and calculates its factorial
 
 function factorial (n: int) : real
      if n = 0 then
           result 1
      else
           result n * factorial (n - 1)
      end if
 end factorial
 
 var n : int
 loop
      put "Please input an integer :" ..
      get n
      exit when n > 0
      put "Input must be a non-negative integer."
 end loop
 
 put "The factorial of ", n, " is ", factorial (n)

[edit] Open implementations

Currently, there are two open source alternative implementations of Turing, TPlus, a native compiler for the concurrent systems programming language variant Turing Plus, and OpenT, a new system currently under development. Open sourcing of the original complete Turing implementation from Holt Software is also currently underway.

[edit] TPlus

TPlus is an open-source implementation of original (non-OO) Turing with systems programming extensions developed at the University of Toronto and ported to Linux, Solaris and Mac OS X at Queen's University in the late 1990s. TPlus implements Turing+ (Turing Plus), a concurrent systems programming language based the original Turing programming language. Some, but not all, of the features of Turing Plus were eventually subsumed into the present Object-Oriented Turing language. Turing Plus extends original Turing with processes and monitors (as specified by C.A.R. Hoare) as well as language constructs needed for systems programming such as binary input-output, separate compilation, variables at absolute addresses, type converters and other features.

[edit] OpenT

OpenT is an open-source language, compiler, and IDE being developed by the members of the dTeam of Computer Science Canada. It shares many similarities with Turing, and is fully backwards compatible with it. OpenT was originally begun to avoid the proprietary nature of Turing, although the original complete Holt Software Turing implementation is currently being transferred to open source.

[edit] Support

There is a lack of support for Turing on the internet due to its narrow range of users (mostly Ontario high school students). There are, however, a few websites that offer support and tutorials.

  • Computer Science Canada - This page features tutorials, games, programs, message boards and the option for visitors to post their turing related programs on the site.

[edit] Notes

  1. ^ "Download Turing 4.1.1". compsci.ca Blog. 2007-11-28. http://compsci.ca/blog/download-turing-411/. Retrieved on 2009-01-10. 

[edit] References

[edit] See also

[edit] External links

This article was originally based on material from the Free On-line Dictionary of Computing, which is licensed under the GFDL.

Personal tools
Languages