Turing programming language
   HOME

TheInfoList



OR:

Turing is a High-level programming language, high-level, General-purpose programming language, general purpose programming language developed in 1982 by Ric Holt and James Cordy, at University of Toronto in Ontario, Canada. It was designed to help students taking their first computer science course learn how to code. Turing is a descendant of Pascal (programming language), Pascal, Euclid (programming language), Euclid, and SP/k that features a clean Syntax (programming languages), syntax and precise machine-independent Semantics (computer science), semantics. Turing 4.1.0 is the latest stable version. Versions 4.1.1 and 4.1.2 do not emit stand alone .exe files. Versions pre-4.1.0 have outdated syntax and functions.


Overview

Named after British computer scientist Alan Turing, Turing is used mainly as a teaching language at the high school and university level. Two other versions exist, #Object-Oriented Turing, Object-Oriented Turing and #Turing+, Turing+, a systems programming variant. In September 2001, "Object Oriented Turing" was renamed "Turing" and the original Turing was renamed "Classic Turing". Turing is now unsupported by Holt Software Associates in Toronto, Ontario. Turing was widely used in high schools in Ontario as an introduction to programming. On November 28, 2007, Turing, which was previously a commercial programming language, became freeware, available to download from the developer's website free of charge for personal, commercial, and educational use. The makers of Turing, Holt Software Associates, have since ceased operations, and Turing has seen no further development since November 25, 2007.


Syntax

Turing is designed to have a very lightweight, readable, intuitive Syntax (programming languages), syntax. Here is the entire "Hello, World!" program in Turing with syntax highlighting: put "Hello World!" Turing avoids semicolons and Curly brackets, braces, using explicit end markers for most language constructs instead, and allows Declaration (computer programming), declarations anywhere. Here is a complete program defining and using the traditional Recursion, recursive function to calculate a factorial. Comment (computer programming), % 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)


Open implementations

Currently, there are two open source alternative implementations of Turing: Open Turing, an open source version of the original Interpreter (computing), interpreter, and #TPlus, TPlus, a native compiler for the concurrent system programming language variant #Turing+, Turing+. #OpenT, OpenT, a project to develop a Turing compiler, was discontinued.


Open Turing

Open Turing is an open-source implementation of the original Turing interpreter for Windows written by Tristan Hume. It includes speed improvements, new features such as OpenGL 3D and a new code editor. It is fully backwards compatible with the closed-source implementation.


TPlus

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


Turing+

Turing+ (Turing Plus) is a concurrent systems programming language based on the Turing programming language designed by James Cordy and Ric Holt, then at the University of Toronto, Canada, in 1987. Some, but not all, of the features of Turing+ were eventually subsumed into #Object-Oriented Turing, Object-Oriented Turing. Turing+ extended original Turing with processes and Monitor (synchronization), monitors (as specified by C.A.R. Hoare) as well as language constructs needed for systems programming such as binary input-output, separate compiling, variables at absolute addresses, type converters, and other features. Turing+ was explicitly designed to replace Concurrent Euclid in systems-programming applications. The TUNIS operating system, originally written in Concurrent Euclid, was recoded to Turing+ in its MiniTunis implementation. Turing+ has been used to implement several production software systems, including the language TXL (programming language), TXL.


Object-Oriented Turing

Object-Oriented Turing is an extension of the Turing programming language and a replacement for #Turing Plus, Turing Plus created by Ric Holt of the University of Toronto, Canada, in 1991. It is Imperative programming, imperative, Object-oriented programming, object-oriented, and Concurrency (computer science), concurrent. It has Modularity (programming), modules, Class (computer science), classes, single Inheritance (object-oriented programming), inheritance, Process (computing), processes, exception handling, and optional machine-dependent programming. There is an integrated development environment under the X Window System and a demo version. Versions exist for Sun-4, MIPS architecture, MIPS, IBM System p, RS-6000, NeXTSTEP, Windows 95, and others.


References


Further reading

* * * *


External links

* {{Authority control 1982 establishments in Ontario Academic programming languages Algol programming language family Articles with example code Educational programming languages Programming languages created in 1982 Statically typed programming languages Structured programming languages University of Toronto Alan Turing