自然语言和编程语言的关系

上面的图片是通过编程语言制作的一张自然语言的CAPTCHA图像(俗称验证码),接下来我们就来探讨一下,自然语言和编程语言的关系。

说起自然语言,大家都不陌生,像英语、日语、俄语、德语、法语等,尤其像英语是学习频率最高的语种之一。

现在又要说一种语言,它是也有单词、语法、表达的元素特征,这就是编程语言。现在我们就来探讨一下两种语言之间的关系。为了探讨的方便,自然语言我们以英语为例,编程语言以现在比较火热的Python语言为例。

01

载体

单词是构成句子的基本单元,通过单词的有序排列和变形就可以组合成语义丰富的句子,例如单词there,is,an和apple就可以组成there is an apple句子。而构成程序语言的基础元素就是变量,通过向变量中存储信息,就可以向代码块中传递信息,进而操作和处理信息了,像变量a = 100,b = "apple tree"就存储我们后续要处理的信息。

02

语法

自然语言有组成单词的既定规则,也就是语法。你在表达语言时需要按照既定的语法规则阐述,只有这样受众才能按照共同理解的语法规则明白你表达的意思,而不至于产生误解或是歧义,甚至是不解,例如你不能讲I have big an apple,而应该讲I have a big apple。编程语言在组织关键词和变量时,也会按照既定的语法规则来组织元素,例如你想把列表exList = [1,2,3,4,5]中的信息都打印出来,你就需要按照下面的语法规则进行编程:

for item in exList:

print item

你只有按照这样的语法规则编辑信息,Python才能理解你的命令和动作,而要是写成print everything from exList,Python是不明白你的意思的,结果就是报错。

03

表达

自然语言在表达文意时,会根据不同的目的和语境选择不同的表达方式,比如你想表达这有一个苹果,你可能会讲there is an apple。而如果你手里拿着一个苹果,你可能又会说I have an apple。编程语言也会根据不同的需求选择不同的表达,比如还是想从列表里打印所有信息,你可能会写出下面的语句:

for item in exList:

print(item)

但是,如果你想表达的是每条信息在列表里的排列顺序,上面的表达就无法做到这点。这时,你就可以采用下面的表达方式:

for i,j in enumerate(exList):

print "No.%d is %s" % ((i+1),j)

这种表达方式就可以将你的需求准确地表达出来了。

04

练习

谈到练习,两种语言都需要你不断地实践,在实践中学习和提高,最后达到熟能生巧的程度。还有就是,自然语言在练习过程中,需要你学习和模仿大师的作品,从中汲取养料,内化成文学底蕴,从而不断提高语言的应用技能和水平。编程语言在实践中,你也需要不断地学习编程专家的代码,学习他们的编程思路和技巧,使自己也可以敲出优雅的代码。

05

小结

上面谈了一些我对两种语言的一些粗浅的理解,我相信两种语言的关系不止于上面几点,相信还有更多有待发现的地方,那就让我们一起去探索吧。

关注DE数据探索者公众号,带着

好奇心一起探索未知的世界

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180107G0LTEL00?refer=cp_1026

扫码关注云+社区