» 图灵完备性

图灵完备性

1936
  • Alan Turing
Computer science lab showcasing Turing completeness in programming languages.

A system of data-manipulation rules, such as a 编程语言, is Turing complete if it can simulate any single-taped Turing machine. This means it is computationally universal and can be used to solve any computable problem, given enough time and memory. Most general-purpose programming languages are Turing complete, forming the theoretical foundation for their expressive power.

Turing completeness is a concept from computability theory that defines the power of a computational system. It originates from Alan Turing’s 1936 paper describing a theoretical device known as the Turing machine. This machine consists of an infinitely long tape, a head that can read, write, and move along the tape, and a set of states and transition rules. Despite its simplicity, a Turing machine can perform any computation that can be described algorithmically. A programming language or any other formal system is deemed ‘Turing complete’ if it has the capability to simulate a universal Turing machine. This implies that the language can compute anything that is computable.

The core requirements for a system to be Turing complete are conditional branching (e.g., if-then-else statements) and the ability to loop indefinitely or recursively (e.g., while, for loops). These constructs allow the system to make decisions and repeat operations, which is sufficient to model the behavior of a Turing machine’s state transitions and tape manipulation. The Church-Turing thesis, a fundamental principle in computer science, posits that any function that is naturally considered ‘computable’ can be computed by a Turing machine. Therefore, a Turing-complete language is, in theory, capable of expressing any algorithm.

然而,这种理论威力也伴随着一个重大后果:停机问题。图灵证明,不可能创建一个通用算法,能够针对所有可能的输入确定任何给定程序是最终运行完成还是永远运行下去。这种不可判定性是所有图灵完备系统的固有属性。因此,一些领域特定语言被有意设计为非图灵完备的。例如,标准 SQL 和 HTML 就不是图灵完备的,这保证了它们的脚本或定义能够终止,并防止它们意外陷入无限循环,而这正是数据库查询和文档渲染所期望的特性。

UNESCO Nomenclature: 1202
- 计算机科学

类型

抽象系统

中断

递增

使用方法

广泛使用

前体

  • Kurt Gödel’s work on incompleteness theorems
  • Alonzo Church’s development of lambda calculus
  • David Hilbert’s program to formalize mathematics
  • 算法的概念可以追溯到古代

应用

  • 通用编程语言(python、c++、java)
  • 具有宏功能的电子表格系统(例如带有 VBA 的 Excel)
  • minecraft’s redstone circuitry
  • cellular automata like conway’s game of life
  • 一些带有递归公用表表达式的高级 SQL 扩展
  • C++模板元编程子系统
  • css3 与某些 html 组合

专利:

NA

潜在的创新想法

级别需要会员

您必须是!!等级!!会员才能访问此内容。

立即加入

已经是会员? 在此登录
Related to: turing completeness, turing machine, computability theory, alan turing, church-turing thesis, universal computation, algorithm, formal language, decidability, halting problem.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

迎接新挑战
机械工程师、项目、工艺工程师或研发经理
有效的产品开发

可在短时间内接受新的挑战。
通过 LinkedIn 联系我
塑料金属电子集成、成本设计、GMP、人体工程学、中高容量设备和耗材、精益制造、受监管行业、CE 和 FDA、CAD、Solidworks、精益西格玛黑带、医疗 ISO 13485

我们正在寻找新的赞助商

 

您的公司或机构从事技术、科学或研究吗?
> 给我们发送消息 <

接收所有新文章
免费,无垃圾邮件,电子邮件不分发也不转售

或者您可以免费获得完整会员资格以访问所有受限制的内容>这里<

历史背景

(如果日期不详或不相关,例如 "流体力学",则对其显著出现的时间作了四舍五入的估计)。

相关发明、创新和技术原理

滚动至顶部

你可能还喜欢