Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><a href="http://en.wikipedia.org/wiki/Turing_complete" rel="noreferrer">'Turing Completeness'</a> describes the property of being able to express any arbitrary <a href="http://en.wikipedia.org/wiki/Algorithm" rel="noreferrer">algorithmic computation,</a> which was the point of <a href="http://en.wikipedia.org/wiki/Turing_machine" rel="noreferrer">Turing's Machine</a> in the first place. A language or logical system can be described as 'Turing Complete' if it has this property. From a practical perspective all general purpose programming languages - and a surprisingly large number of special purpose ones - can do this for a suitably loose definition (see below).</p> <p>However, a strict definition of Turing Completeness implies infinite storage capacity, which is of course not physically possible. Given this, no physical machine can possibly be Turing Complete, but this constraint is usually relaxed (at least informally) when ascribing Turing Completeness to a programming language. One trivial test of Turing Completeness for a language is whether the language can be used to implement a Turing Machine simulator.</p> <p>An example of a widespread system that is not Turing Complete is Relational Algebra, the theoretical basis behind SQL as described in Codd's paper <a href="http://www.eecs.harvard.edu/~margo/codd-1970.pdf" rel="noreferrer">A relational model for large shared data banks.</a> Relational Algebra has the property of <a href="http://en.wikipedia.org/wiki/G%C3%B6del%27s_completeness_theorem" rel="noreferrer">Godel Completeness</a>, which means that it can express any computation that can be defined in terms of <a href="http://en.wikipedia.org/wiki/First-order_logic" rel="noreferrer">first-order predicate calculus</a> (i.e. ordinary logical expressions). However, it is not Turing-Complete as it cannot express an arbitrary algorithmic computation.</p> <p>Note that most if not all all practical SQL dialects extend the pure relational model with procedural constructs to the extent that they are Turing Complete by the definition as normally applied to programming languages. However, an individual SQL query by and large is not.</p> <p>Some more egregious examples of Turing Complete domain-specific languages are <a href="http://www.ctan.org" rel="noreferrer">TeX</a> and <a href="http://www.sendmail.org/m4/readme.html" rel="noreferrer">sendmail.cf,</a>. In the latter case there is actually a famous-ish example of someone using sendmail.cf to <a href="http://okmij.org/ftp/Computation/sendmail-as-turing-machine.txt" rel="noreferrer">implement a universal Turing Machine simulator.</a> </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload