图灵完备英文名,什么是图灵完备语言

图灵完备英文名,什么是图灵完备语言

一、从PHP与Python的语言比较去了解什么是图灵完备

从非常严格的理论角度来说,答案是:没有。因为PHP和Python都是图灵完备(Turing complete)的语言,所以理论上你找不到一个Python能做到而PHP做不到的事情。

可图灵指在可计算性理论中,编程语言或任意其他的逻辑系统如具有等用于通用图灵机的计算能力。换言之,此系统可与通用图灵机互相模拟。这个词源于引入图灵机概念的数学家艾倫·图灵(Alan Turing)。

虽然图灵机会受到存储能力的物理限制,图灵完全性通常指具有无限存储能力的通用物理机器或编程语言。

简单来说,一切可计算的问题都能计算,这样的虚拟机或者编程语言就叫图灵完备的。

图灵等价02Turing equivalence02和图灵完备02Turing completeness

经常在讲编程语言的书或文章里面看到图灵等价(Turing equivalence)和图灵完备(Turing completeness),但却不知道这两个词的精确含义和区别。尤其是很多书或文章经常对这两个词进行混用,我就很疑惑这两个词是不是就是一个意思。我用Google搜索了一下,很遗憾的是中文结果基本没用,只有一篇百度空间里面转载的一个外国人写的文章,还是全英文的,简单看了下感觉写得不怎么清楚,就查了下英文维基百科。言归正传,下面先看看维基百科的两段话:

In02computability theory, a system of data-manipulation rules(such as an02instruction set, a02programming language, or a02cellular automaton) is said to beTuring complete02or02computationally universal02if and only if02it can be used to simulate any single-taped02Turing machine02and thus in principle anycomputer.

在可计算理论里,一个数据操作规则的系统(比如:指令集、编程语言、细胞自动机)被称作图灵完备或者通用计算的,当且仅当它可以被用来模拟单带图灵机。

In computability theory, there is a closely related concept known as Turing equivalence. Two computers P and Q are called Turing equivalent if P can simulate Q and Q can simulate P. Thus, a Turing-complete system is one that can simulate a Turing machine, but the term is most often used to mean Turing equivalent to a Turing machine.02

在可计算理论里,有一个很相关的概念叫图灵等价。当计算机 P和计算机 Q是图灵等价的,当P可以模拟Q而且Q也可以模拟P。因此,一个图灵完备的系统可以模拟图灵机,但是这个术语(即图灵等价)常常被用来指与图灵机等价。

然后我们再来看看在可计算理论中,这两个词的正式定义:

Turing completeness:A computational system that can compute every Turing-computable function02is called Turing complete(or Turing powerful). Alternatively, such a system is one that can simulate a02universal Turing machine.

Turing equivalence:A Turing-complete system is called Turing equivalent if every function it can compute is also Turing computable; i.e., it computes precisely the same class of functions as do02Turing machines. Alternatively, a Turing-equivalent system is one that can simulate, and be simulated by, a universal Turing machine.(All known Turing-complete systems are Turing equivalent, which adds support to the02Church–Turing thesis.)

图灵等价:一个图灵完备的系统被称为图灵等价的,如果任何它可以计算的函数也是图灵可计算的。也就是它可计算的函数和图灵机可计算的函数是完全相同的。换句话说,就是图灵等价的系统就是能模拟通用图灵机同时也能也被通用图灵机模拟的系统。(所有已知的图灵完备的系统都是图灵等价的,这增加了对丘奇-图灵论题的支持)

通过上面的分析,我们就可以清楚的知道这两个词的意思和关系了。图灵等价有两个意思,一个是指两个计算系统在可计算性上计算能力相同;另一个,也是常用的一个就是指一个系统的计算能力与通用图灵机计算能力相同(在可计算性的意义上)。而图灵完备是指能够模拟通用图灵机的计算系统。而所有已知的图灵完备的系统都是图灵等价的,这也增加了对丘奇-图灵论题的支持。因此,在现有的计算机系统(编程语言、指令集等)上,使用图灵等价和图灵完备是一个意思。

二、什么是图灵完备语言

如果一个计算机语言具有图灵完备性(Turing Completeness),那么这个语言就是图灵完备语言(Turing-complete language)。

背景

艾伦·图灵

艾伦·麦席森·图灵(Alan Mathison Turing,1912.6.23- 1954.6.7),英国数学家、逻辑学家、密码学家和英国首位计算机科学家,被誉为计算机科学和人工智能之父。

他对计算机科学的发展有着很高的影响力,他用图灵机提供了算法和计算概念的形式化,图灵机可以被视为通用计算机的模型。他的图灵测试对人工智能的发展,作出了重要的、典型的、具挑战性的和持久的贡献。

图灵机

图灵机模型

在 1928年第八届国际数学家大会上,德国数学家希尔伯特(David Hilbert,1862- 1943)提出了关于数学的三个精辟问题:

First, was mathematics complete…(数学是完备的吗?)

Second, was mathematics consistent…(数学是一致的吗?)

And thirdly, was mathematics decidable?(数学是可判定的吗?)

希尔伯特的第三个问题又被称为判定性问题(Entscheidungsproblem)。为了证否这个命题,1936年,图灵发表了一篇论文,题为《论可计算数,及其在判定性问题上的应用》(On Computable Numbers, with an Application to the Entscheidungsproblem)。在这篇论文里,图灵提出了一种假设的计算装置,他称之为 A-Machine(Automatic Machine,自动机器),这就是图灵机(Turing Machine)。

可计算函数

艾伦·麦席森·图灵

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.

如果一个函数的值可以通过某种纯机械的过程找到,那么这个函数就可以有效地计算出来。

在作为特定计算模型的图灵机上产生的可计算函数,就被称为图灵可计算函数。

图灵完备性

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

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

定义

图灵完备语言

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

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

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

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

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

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

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

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

声明式语言,如 SQL、XSLT等。

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

非图灵完备语言

并非所有的计算机语言都是图灵完备的,例如标记语言,或者更恰当地称为“容器语言”或“数据描述语言”,就不是图灵完备的。

非图灵完备语言(Non-Turing-complete language),包括 HTML、JSON、XML、YAML等。

三、大家经常说的“图灵完备”是什么意思有什么用

图灵完备,图灵完全性一般情况下指的是有无限存储能力的通用物理机器或编程语言。图灵完备就代表着你的语言能做到用图灵机能做到的所有事情,能够解决所有的可计算问题。图灵不完备也并不是就没有用了,有些场景我们要限制语言本身.如限制循环和递归,这样就能够确保语言能写的程序一定是终止的。简单来说的话,就是说图灵完备的语言,有循环执行语句,判断分支语句等。理论上可以解决任何算法。但有可能进入死循环而程序瘫痪。图灵不完备,应该是不允许或限制循环。能够确保的是,每段程序都不会死循环,都有运行完的时候。比特币的脚本系统是图灵不完备的,而一些竞争币的智能合约系统是图灵完备的。他们有各自的优势和劣势,图灵不完备会更安全一点,图灵完备会更智。一点

我们通过以上关于大家经常说的“图灵完备”是什么意思有什么用内容介绍后,相信大家会对大家经常说的“图灵完备”是什么意思有什么用有一定的了解,更希望可以对你有所帮助。

四、图灵完备是什么意思

图灵完备是指一个编程语言或计算机系统具有足够的计算能力,可以执行图灵机模型中的任何算法。也就是说,它能够计算出任何可计算的问题。图灵机模型是计算机科学中一种思想实验工具,它是一个虚构的计算设备,被认为是能够计算一般算法定义的最小计算机。

图灵完备性是编程语言的核心要求之一,因为它使得开发者可以使用高级的抽象概念来解决实际问题,并能够应对未来的需求变化。如果一个编程语言或计算机系统不是图灵完备的,那么它就会无法解决某些问题,或者只能解决一些非常简单的问题。

由于人工智能的复杂性和多样性,图灵完备性已成为人工智能发展的必要前提。人工智能实际上是计算机模仿人类智能思维过程,因此需要有一个通用的计算机模型来实现这一过程。图灵机模型就是这样一种模型,它给人工智能的研究提供了基础和标准。因此,图灵完备性在人工智能的发展中扮演着重要的角色。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享