{eval=Array;=+count(Array);}
谢邀。
程序员编程时,C语言的确可以看做一门“外语”——一门我们人类与计算机交流的语言,编程就是将人类的意图通过这门“外语”翻译给计算机,计算机理解我们的意图后,就知道该做什么了。
不过,编程语言这门“外语”与我们人类之间交流的语言(汉语,英语等)还是有一些不同的,这里将尝试说说我认为的二者的区别。
在开始看 C 语言代码之前,我们先来说说“自然语言”和“形式语言”。“自然语言”就是我们人类说的语言,比如汉语,英语,日语,法语等等,自然语言并不算是人为设计的,更多的是在人类进化过程中逐步形成的。
“形式语言”则是人们为了一些特定的应用人为设计的,一般包括符号和结构的设计,比如数学算式的数字和运算符号,化学家的化学式等等。
当我们阅读一条语句时,不论它是“自然语言”还是“形式语言”,不仅要理解符号的意义,也要读懂结构的含义。例如“我想打你”这句话,不仅要知道每个字的意思,还要知道这句话的结构,“我”和“你”的位置不同,表达的意思是截然相反的。
如今,自然语言也有语言学家研究,并且加了一些加强规则,比如主谓宾的语法等。但是自然语言的规则严格性,远远没有形式语言那么苛刻。
相对于“自然语言”,“形式语言”对规则要严格的多,我们说病句,例如“我跑得快比你”和“我比你跑得快”这两句话,一般人也能懂。但是形式语言就不可以了,无论是符号错误,还是结构错误,都不能正确表示原本期望表达的含义。
构成算术式:1 + 8 = 9
构成水分子化学符号:H2O
存在非法符号:1 + 8@ = 9
脚标不对:HO2
编程语言自然是属于形式语言,我们来看看 C 语言版本的 hello world:
虽然这只是非常简单的程序,但是却能说明 C 语言的很多规则。
使用printf函数之前,要首先包含它的头文件stdio.h。包含头文件要使用#+include符号,而且这条语句要独自占一行。
main是C语言默认的入口,程序从入口开始执行,它是int类型的,int 要与 main 用空格,tab或换行符隔开,函数要有括号和大括号,函数内的语句要用分号结尾。另外,上面的代码中有很多缩进,不过这是可选的,恰当的缩进只是为了我们人类看着方便而已。
以上都是 C 这门形式语言定义的符号和结构,要严格遵守规则,才能写出正确的 C 语言代码。如今,其他编程语言也是类似的,都必须严格设计好的规则进行。
计算机编程语言和我们人类使用的自然语言有很多共同之处,但是也有很多不一样的地方。
自然语言充满歧义,人们通过上下文的线索和其它一些信息来解决这个问题。但是编程语言就不能有这样的歧义,计算机不会自己主动理解人类的意图。
为了消除歧义减少误解,自然语言引入了相当多的冗余,比如很多语气词感叹词。结果是自然语言经常变得啰里啰嗦,而形式语言则更加紧凑,极少有冗余。
自然语言充斥着成语和隐喻,我在不同场合说的相同一句话,意义却可能不同。而编程语言就永远都是一个意思,语义不会随着场合,时间变化。
说自然语言长大的人,往往有一个适应编程员(形式语言)的困难过程,这也往往是入门编程的一个小难点。
欢迎在评论区一起讨论,质疑。文章都是手打原创,每天最浅显的介绍C语言、linux等嵌入式开发,喜欢我的文章就关注一波吧,可以看到最新更新和之前的文章哦。
单纯的从语言层面来算的话,其实也没啥区别,只是汉语和英语是需要翻译给人的,C语言是翻译给计算机的。
比如C语言的翻译流程,写代码,交给编译器,编译器翻译成汇编语言,汇编语言在翻译成二进制,这样计算机就懂了可以执行了。
汉语和英语,说话交给耳朵或者眼睛,然后在由大脑接收后翻译成人类可以理解的电信号。
简单来说C语音做的使把人类的想法传递给机器。机器只能识别“0”或者“1”,C语音能够把人的想法附着在机器上,让机器什么时候该“0”,什么时候该“1”。
C语言等编程语言
1 单词很少,也就几十个。
2 词义明确,没有一词多义现象,很容易理解。
3 没有时态语态变化,容易掌握。
4 没有词法语法修辞,谈不上是语言吧,就是个符号系统。
请不要把编程语言看做什么语言了,就是简单的符号!
6
回答2
回答1
回答7
回答10
回答0
回答10
回答10
回答10
回答0
回答