先从一个问题开始。从语言的区别看,有什么功能python能实现,php不能实现的呢?

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

那么,什么是图灵完备呢?

图灵完备

来自维基的解释:

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

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

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

图灵等价 Turing equivalence 和图灵完备 Turing completeness

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

In computability theory, a system of data-manipulation rules (such as an instruction set, a programming language, or a cellular automaton) is said to beTuring complete or computationally universal if and only if it can be used to simulate any single-taped Turing machine and 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.

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

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

Turing completeness:A computational system that can compute every Turing-computable function is called Turing complete (or Turing powerful). Alternatively, such a system is one that can simulate a universal 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 do Turing 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 the Church–Turing thesis.)

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

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

php和python对比-从PHP与Python的语言比较去了解什么是图灵完备相关推荐

  1. php和python对比-通过PHP与Python代码对比浅析语法差异

    一.背景 人工智能这几年一直都比较火,笔者一直想去学习一番:因为一直是从事PHP开发工作,对于Python接触并不算多,总是在关键时候面临着基础不牢,地动山摇的尴尬,比如在遇到稍微深入些的问题时候就容 ...

  2. java和python的比较-java学习笔记(与python对比来学)

    写在前头 自己之前一直是从事python的,因为部分业务要求需要进行Java的学习,顺道记录一点笔记. 不同在于Java是偏向编译性的语言,python是解释性语言(下面conner只针对java与p ...

  3. 用 Python 对比两个目录下的内容,并生成 Json 文件

    一.背景 两个文件夹下,可能有相同名字的文件,也可能有不同名字的文件,相同名字的文件也有可能内容不同,因此需要对比,将结果输出到 Json 文件. 二.思路 先获取两个目录,然后分别遍历目录下的所有文 ...

  4. python io密集型应用案例-Python中单线程、多线程和多进程的效率对比实验实例

    python的多进程性能要明显优于多线程,因为cpython的GIL对性能做了约束. Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread ...

  5. java和python的优势_Java和Python哪个更好?解读Python对比其他语言的优势

    人生苦短,我用 Python,为啥这么说,因为我们码农圈有金句:学完Python,便可上天 ~ 首先 我要向各位坦诚,我对 Python 的喜爱也是从几年以前才开始的.不经历长期的痛苦教训,我们是不会 ...

  6. python爬虫对比_Python六大框架对比,Web2py略胜一筹|python爬虫|python入门|python教程...

    https://www.xin3721.com/eschool/pythonxin3721/ Python是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的 ...

  7. python 对比matlab_全面对比 MATLAB、Julia、Python,谁在科学计算中更胜一筹?

    原标题:全面对比 MATLAB.Julia.Python,谁在科学计算中更胜一筹? 数百种编程语言,各有优劣,各自也都有自己最为适用的场景.那么就科学计算领域而言,主流的 MATLAB.Julia.P ...

  8. python 对比两张图片是否相同

    python 对比两张图片是否相同 说明 说明 适用于对比两张图片是否完全相同 需要两张图片的大小完全一致 代码来源于网络,进行微调 from PIL import Image from PIL im ...

  9. 随机森林实现及调参的R与Python对比——以泰坦尼克幸存者数据为例

    随机森林实现及调参 一.R语言 方法一.手动调参 方法二.网格调参 二.python 注:本博客数据仍采用决策树调参的泰坦尼克号数据,前奏(数据预处理)请参考☞ 决策树R&Python调参对比 ...

最新文章

  1. java 类型转换的原理
  2. wine on ubuntu linux, and source insight 绿色版的安装
  3. git reset --hard、git reset --sort及git revert区别
  4. 用scikit-learn和pandas学习线性回归
  5. 一文说清Elasticsearch的核心概念
  6. docker使用官方仓库上传与下拉images
  7. 6大黑科技app合集,绝对让你大开眼界
  8. 亦真亦幻,A股区块链板块含金量几何?
  9. html鼠标滚轴后下一页,鼠标滚动有一页ppt不能马上下翻,而是上下移动,移动到一定位置后才翻到下一页,这是怎么回事?怎么解决?...
  10. win11+vs2022配置ceres库
  11. 力扣K神图解算法数据结构解析10
  12. Office 2016 系列 VOL版本下载
  13. 中兴机试 通信算法方向 秋招春招
  14. window10系统onedrive无法登陆 ox8004def7
  15. 微信小程序---文本域输入带最大字数限制
  16. 弹性盒子(弹性布局)
  17. Python数据分析示例(2)Day3
  18. 教你使用python做一段魔性的音乐
  19. D.Starry的神奇魔法(矩阵快速幂)
  20. 调节阀卡塞的处理方法

热门文章

  1. [转] android 中 pinyin4j的使用
  2. 视图组件,路由组件,版本控制
  3. Linux基础命令---shutdown
  4. Spark Streaming metadata checkpoint
  5. Ubuntu 安装软件的三种方式
  6. 高仿百思不得姐项目开发(粗略笔记,后期规范排版和更新)
  7. [转]Silverlight在调用wcf时传输数据过大返回Not Found的解决办法
  8. 如何为WCF应用添加X509证书和安全验证
  9. 关于计算机图形学的学习(转)
  10. 打造完全绿色的TOTAL COMMANDER