FACTOID # 93: Saudi diplomats have 367 unpaid parking fines in Britain.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Turing complete" also viewed:
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Turing complete

In computability theory a programming language or any other logical system is called Turing-complete if it has a computational power equivalent to a universal Turing machine. In other words, the system and the universal Turing machine can emulate each other. (Under traditional hyphenation conventions, the adjective Turing-complete should be hyphenated, but the noun Turing completeness need not be.)


The term derives from the name of mathematician Alan Turing who introduced the model of the universal Turing machine.


While such machines may be physically impossible as they require unlimited storage and zero crashing probability, Turing completeness is often loosely attributed to physical machines or programming languages that would be universal if they had indefinitely enlargeable storage and were absolutely reliable. Charles Babbage's Analytical Engine would have been Turing-complete if it had ever been built, but the first actual implementation appeared in 1941: the program-controlled Z3 of Konrad Zuse. Its universality, however, was shown only much later, namely, by Raúl Rojas in 1998. The first machine known to be Turing-complete was ENIAC. All modern computers are also Turing-complete in this lax sense.


Turing completeness is significant in that every plausible design for a computing device so far advanced (even quantum computers) can be emulated by a universal Turing machine. Thus, a machine that can act as a universal Turing machine can, in principle, perform any calculation that any other computer is capable of (in other words, it is programmable). Note, however, that this says nothing about the effort to write a program for the machine or the time it may take to do the calculation.


It is hypothesized by some that the universe is Turing-complete (see philosophical implications in the Church-Turing thesis and digital physics).


See the article on computability theory for a long list of systems that are Turing-complete, as well as several systems that are less powerful, and several theoretical systems that are even more powerful than a universal Turing machine.


Examples

It is difficult to find examples of non-Turing complete languages, as these languages are very limited (see, however, machines that always halt). An example would be a series of mathematical formulas in a spreadsheet with no cycles. While it is possible to perform many interesting operations in such a system, this fails to be Turing complete as it is impossible to form loops. The macro language within Excel however is Turing-complete. Another famous example is regular expressions, as contained in languages such as Perl. A list of Turing-complete languages is contained under computability theory.


One important result from computability theory is that it is impossible in general to find if a program written in a Turing-complete language will continue executing forever or will stop within a finite period of time (see halting problem). One method of commonly getting around this is to cause programs to stop executing after a fixed period of time, or to limit the power of flow control instructions. Such systems are strictly not Turing-complete.


Another curious theorem from computability theory is that there are problems solvable by Turing-complete languages that cannot be solved by languages with finite looping capabilities (i.e. languages that guarantee any program will halt). This result is derived by, for example, Brainerd and Landweber using the PL and PL-{GOTO} languages.


The untyped lambda calculus is Turing-complete, but many typed lambda calculi, including System F, are not. The value of typed systems is based in their ability to represent most "typical" computer programs while detecting more errors.


Bibliography

Brainerd, W.S., Landweber, L.H. (1974), Theory of Computation, Wiley.


See also


  Results from FactBites:
 
Turing completeness - Wikipedia, the free encyclopedia (900 words)
In computability theory, an abstract machine or programming language is called Turing complete, Turing equivalent, or (computationally) universal if it has a computational power equivalent to a universal Turing machine (a simplified model of a programmable computer).
Turing completeness is significant in that every plausible design for a computing device so far advanced can be emulated by a universal Turing machine.
The computational systems (algebras, calculi) that are discussed as Turing complete systems are those intended for studying theoretical computer science.
Turing machine - Wikipedia, the free encyclopedia (3442 words)
Turing machines are extremely basic symbol-manipulating devices which — despite their simplicity — can be adapted to simulate the logic of any computer that could possibly be constructed.
Turing completeness, an attribute used in computability theory to describe computing systems with power equivalent to a universal Turing machine.
Turing tarpit, any computing system or language which, despite possessing Turing completeness, is generally considered useless for practical computing.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.