什么是图灵完备

Yang 1535

图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。简单来说,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。这个词源于引入图灵机概念的数学家艾伦·图灵。

一、什么是图灵完备

图灵完备是指机器执行任何其他可编程计算机能够执行计算的能力。简单来说,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。这个词源于引入图灵机概念的数学家艾伦·图灵。

二、什么是图灵完备性

如果一个计算系统可以计算每一个图灵可计算函数,那么这个系统就是图灵完备的;或者说,这个系统可以模拟通用图灵机。

图灵完备性也可以用来描述计算机语言的计算能力。

三、图灵完备语言定义

具有图灵完备性的计算机语言,就被称为图灵完备语言。绝大多数的编程语言,都是图灵完备语言。这包括:

1、广泛使用的所有通用语言:

过程式语言,如FORTRAN、Pascal等。

面向对象语言,如Java、Python等。

多范式语言,如Ada、C++等。

2、使用不太常见范式的大多数语言:

函数式语言,如Haskell、Mercury等。

逻辑式语言,如Logtalk、Prolog等。

深奥的语言(Esoteric programming language),一种奇特的数学娱乐形式,程序员用极其困难但数学上图灵等价的语言来实现基本的编程结构。

四、非图灵完备语言

并非所有的计算机语言都是图灵完备的,例如标记语言,或者更恰当地称为“容器语言”或“数据描述语言”,就不是图灵完备的。非图灵完备语言(Non-Turing-complete language),包括HTML、JSON、XML、YAML等。声明式语言,如SQL、XSLT等。 

延伸阅读

1、图灵机

是一个抽象的机器,是英国数学家艾伦·麦席森·图灵于1936年提出的一种抽象的计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的符号,符号可以是0或1。图灵机有一个读写头,可以读取当前所在方格上的符号,并根据读取到的符号和当前状态转移到下一个状态。

2、可计算函数 

1938年,在美国普林斯顿大学攻读博士学位的图灵,发表了一篇博士论文,题为《基于序数的逻辑系统》 (Systems of Logic Based on Ordinals)。在这篇论文里,图灵定义了可计算函数(Computable function):

A function is effectively calculable if its values can be found by some purely mechanical process.

如果一个函数的值可以通过某种纯机械的过程找到,那么这个函数就可以有效地计算出来。在作为特定计算模型的图灵机上产生的可计算函数,就被称为图灵可计算函数。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部