从人类(更准确地说是动物)存在时开始,自然语言就已经被人们以口头或者书面的形式所使用了。人是社会化的动物,使用语言相互交流。与之相对,编程语言是随着计算机的发展而发展的,人们需要向计算机输入一些机器能够理解的指令从而得到结果输出。自然语言与编程语言都是为沟通的目的而服务的:前者是人类之间互相交流的方式,而后者是人类与机器相互交流的媒介,它们还是可以从下面几个方面相互区别。
自然语言与编程语言的一个主要区别在于两种语言的语法。自然语言是灵活可变的并且随着时间的推移而演化,而编程语言是静态的,并且从它诞生之初开始就保持不变。另外,当一个人使用自然语言不小心拼错一个单词时,大多数人并不会介意。但是编程语言一个分号的丢失都会最终导致程序的致命错误,使程序无法使用。换句话说,自然语言具有错误容许的能力,而编程语言无法容许任何错误。
由于自然语言是用来与其他人沟通的,因此它们和人类一样复杂,词语可以用来传递情感,思想和各种信息对象,形容词和副词还可以强调重点内容,这与编程语言不同。计算机不关心人们在想什么,它们关心的只是接收到的明确指令。因此,自然语言有着庞大的词汇表,而编程语言的词汇表仅仅包含一些用来给计算机执行的直接命令,再无其他。
尽管有着许多不同之处,编程语言与自然语言之间也有许多令人吃惊的相似的地方。其中一个直观的相似点就是它们都具有多样性:当前存在着数以千计的自然语言和数以百计的编程语言。不止如此,编程语言还是自然语言与计算机阅读的二进制码之间的桥梁。虽然编程语言最开始使用的是计算机能够读懂的语言,但是它过于笨拙。因此雄心勃勃的程序员们开发出了可以将编程语言转化为二进制码的工具。现在,编程语言中的很多代码都包含类似于自然语言中的名词或者动词的命令,方便了编程语言的编码。人们对于这两种语言都有着自己的个人偏好,经常做出关于“哪种语言更好”的评论。
因此可以得出结论,自然语言与编程语言彼此之间既相似也不同。它们都很好地满足了人们的需求,但也许有一天编程语言和自然语言可以融为一体,特别是在编写出复杂的程序使得人们可以使用自然语言与计算机进行交流之后。尽管这个目标现在看起来很遥远,但我们已经将许多似乎不可能完成的任务变成了现实。
本文链接:http://bookshadow.com/weblog/2014/02/13/programming-natural-language/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。