Java教程

SQL是编程语言么? SQL是图灵完备的么?

本文主要是介绍SQL是编程语言么? SQL是图灵完备的么?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

依稀记得高三参加魔都某985自主招生面试时,一个面试老师问我SQL是什么,我当时首先说SQL是一个高级的编程语言。 当时那个老师说这个说法是有问题的。

其实我之前也比较疑惑,SQL和一般的编程语言比如C,之间的本质区别究竟是什么?

 

学过了复杂性理论之后,我现在可以比较透彻的理解这个问题了。

 

一般的编程语言是图灵完备的,意思是说,可以用它来模拟一个图灵机。 

比方说,用C语言模拟图灵机的纸带和状态转移函数显然是可行的。 反过来,用图灵机来实现C语言就更直接了。

 

问题来了,用SQL可以模拟一个图灵机么? 答案是,原始的标准SQL是做不到的。

一个图灵机,或者C语言,可以永远不终止,不宕机,做无休止的重复循环。

标准的SQL是做不到的, 如果使用recursive sql, 占用的空间会不断增大,直到宕机。

但是当下的不同SQL,有了更丰富的扩展功能,比方说PSMs,有了这些新的特性就可以模拟一个图灵机了。

 

这篇关于SQL是编程语言么? SQL是图灵完备的么?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!