今天开站啦

计算机编程语言和人类说的语言有何区别,以经典编程入门的C程序hello world为例

科普知识 pop君 2052℃ 0评论

程序员编程时,使用的编程语言可以看做是一门“外语”,是我们人类与计算机交流的语言,编程就是将人类的意图通过这门“外语”翻译给计算机,计算机理解我们的意图后,就知道该做什么了。不过,编程语言这门“外语”与我们人类之间交流的语言还是有一些不同的,本篇文章将尝试说说我认为的二者的区别。

自然语言和形式语言

在开始看 C 语言代码之前,我们先来说说“自然语言”和“形式语言”。“自然语言”就是我们人类说的语言,比如汉语,英语,日语,法语等等,自然语言并不算是人为设计的,更多的是在人类进化过程中逐步形成的。“形式语言”则是人们为了一些特定的应用人为设计的,一般包括符号和结构的设计,比如数学算式的数字和运算符号,化学家的化学式等等。当我们阅读一条语句时,不论它是“自然语言”还是“形式语言”,不仅要理解符号的意义,也要读懂结构的含义。例如“我想打你”这句话,不仅要知道每个字的意思,还要知道这句话的结构,“我”和“你”的位置不同,表达的意思是截然相反的。

如今,自然语言也有语言学家研究,并且加了一些加强规则,比如主谓宾的语法等。但是自然语言的规则严格性,远远没有形式语言那么苛刻。

相对于“形式语言”,“自然语言”对规则要严格的多,我们说病句,例如“我跑得快比你”和“我比你跑得快”这两句话,一般人也能懂。但是形式语言就不可以了,无论是符号错误,还是结构错误,都不能正确表示原本期望表达的含义。

构成算术式:
1 + 8 = 9
构成水分子化学符号:
H2O
存在非法符号:
1 + 8@ = 9
脚标不对:
HO2

C 语言程序

编程语言自然是属于形式语言,我们来看看 C 语言版本的 hello world:

#include <stdio.h>

int main()
{
    printf("hello world\n");
    return 0;
}

虽然这只是非常简单的程序,但是却能说明 C 语言的很多规则。使用printf函数之前,要首先包含它的头文件stdio.h。包含头文件要使用#+include符号,而且这条语句要独自占一行。main是C语言默认的入口,程序从入口开始执行,它是int类型的,int 要与 main 用空格,tab或换行符隔开,函数要有括号和大括号,函数内的语句要用分号结尾。另外,上面的代码中有很多缩进,不过这是可选的,恰当的缩进只是为了我们人类看着方便而已。

以上都是 C 这门形式语言定义的符号和结构,要严格遵守规则,才能写出正确的 C 语言代码。如今,其他编程语言也是类似的,都必须严格设计好的规则进行。

总结

计算机编程语言和我们人类使用的自然语言有很多共同之处,但是也有很多不一样的地方。

歧义性

自然语言充满歧义,人们通过上下文的线索和其它一些信息来解决这个问题。但是编程语言就不能有这样的歧义,计算机不会自己主动理解人类的意图。

冗余性

为了消除歧义减少误解,自然语言引入了相当多的冗余,比如很多语气词感叹词。结果是自然语言经常变得啰里啰嗦,而形式语言则更加紧凑,极少有冗余。

与字面意思的一致性

自然语言充斥着成语和隐喻,我在不同场合说的相同一句话,意义却可能不同。而编程语言就永远都是一个意思,语义不会随着场合,时间变化。

说自然语言长大的人,往往有一个适应编程员(形式语言)的困难过程,这也往往是入门编程的一个小难点。

转载请注明:pop快讯 » 计算机编程语言和人类说的语言有何区别,以经典编程入门的C程序hello world为例

喜欢 (3)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址