essay | tech | year-summary | about
日期:2018-02-23T00:00:00Z
最近几天没做leetcode的题,工作太忙了。明明就要离职了55555....
就顺便偷个懒,写点好玩的东西。主要内容和灵感来自这篇文章(https://cpplover.blogspot.jp/2013/10/blog-post_20.html)。
首先我们要明确一个概念。什么算是图灵完全。
简单来说,就是跟万能图灵机具有同等计算能力的计算模型,就可以称之为图灵完全。
图灵机可以看作是当代计算机的简化模型。基本上图灵机就是抽象化的基本计算机模型。
一般而言,大多数当代的编程语言都是图灵完全的语言。
跟NP的概念很类似,同样具有图灵机概念的话,理论上互相做的事情都可以相互转换。
也就是说,c++能做的到的大多数事情,js同样也可以做到。
再譬如令人惊讶的brainfuck这门语言,也同样是图灵完全语言。那么理论上,可以用c来bind brainfuck,
brain来bind c就算了....c写的东西可以转换成brainfuck,brainfuck写的东西也可以转换成c。
我目前知道的4种证明一种语言是图灵完全语言的方法:
INPUT -> PROCESS -> OUTPUT
↑___|
c++ template
HTML5 + CSS
万智牌(Magic: The Gathering)
Minecraft
神奇宝贝 黄 (ポケットモンスター イエロー)
[7]利用黄的一个bug,可以改写游戏的memory addresses,从而进行图灵完全的实现(这个有点牵强....)
Tex
SQL
(Cプリプロセッサー)
写完之后才发现其实要看的东西还蛮多的,很多基础概念要么就是忘记了,要么就是原本就搞得不太清楚....
参考资料: