12.22 文言文编程背后-语言的本质

一、文言文编程

最近github上有个文言文编程火了,效果看起来还比较牛B,看起像是是文言文,读起来也能明白一定的意思。(可以留言给我索取官网体验)

文言文编程背后-语言的本质

上图代码比较简单就是输出三遍hello world; 是不是读起来有文言文的样子也能大概明白其意思。 我们就来讨论下计算机语言的本质。

二、计算机语言的进化之路

文言文编程背后-语言的本质

计算机语言由低级到高级大概分三个类别:机器语言、汇编语言、高级语言。也对应计算机语言由远及近的三个发展阶段。

在还没有所谓计算机的时候,人们用于控制机器的就是开关了,而计算机最最底层的设计也是开关控制电路让电路形成各种各样的样子,从而计算机执行各种指令,这样的设计一直没变过,变得只是电路不再那么明显。这也解释了为啥由低到高的三个类别会对应由远及近的三个发展阶段。

机器语言:也就是最底层的控制电路的信号,比如一个二进制串'11010010',可能对应了计算机的某个指令。
汇编语言:如果我们操作机器使用机器语言的话,首先得记忆那么多二进制串,还有完全得了解机器内部的运行原理。我们把一些操作用一些简单的英文单词来表示,这样写起程序来就方便很多了。
高级语言:汇编还是需要了解计算机很多内部的细节,基本还是在用机器的语言和机器进行对话,而高级语言的出现则进一步接近了人类的语言。让编译器去帮我们翻译给机器,我们人类则更专注于表达逻辑,不需要太了解计算机内部的执行原理。

三、高级语言-表达逻辑

文言文编程背后-语言的本质

高级语言让我们更注重逻辑的表达,如何去表达逻辑呢我们又有很多种方法。

一般的语言
如C语言,结构上来说总是逃不开顺序、循环、选择这样的范式,其实这样基本就能表达几乎所有的计算机逻辑,只是放不方便的问题。


面向对象的语言
面向对象的语言,又让我们的表达上升了一个层次,把各种逻辑都拆成一个个对象做出的行为,让我们人类协作开发更便利。
SQL
操作数据的语言,在数据库的基础上把操作数据的逻辑抽象成select、group、where、order、join等, 让我们不用关心内部数据怎么进行计算,甚至还能帮我们优化逻辑。
其他
语言还有很多种,都有着各自特点、各自的作用,比如函数式语言、逻辑语言等。

四、计算机语言与人类语言

计算机语言只是我们人类操作机器用的,有它的局限性,而人类的语言是人与人直接交流用的,经过了几十万年的打磨,我们可以比较随意的表达,鲁棒性特别高,字文序顺乱了我们也能看得懂,机器为了准确不能有这样的鲁棒性,必须得有一定得规范。

所谓的文言文编程,不过是用中文做了下映射,其实质还是javaScript,表达的形式一点没变,我们都不能称他为一门新语言,只能说是把javaScript翻译成了文言文的样子。这里并没有贬低它的意思,还是真心佩服这样的创意,人嘛,重要的就是有趣。


分享到:


相關文章: