编程语言有哪些违反英语语法的地方
要是说“遵循英语语法”的编程语言,倒是在个别地方有些,就我了解的语言里极少。其实编程语言在设计的时候也是尽量遵循语言习惯,但是这并不是很必要,所以受到的其他方面制约很多,比如整体语法结构,编译器解析。以及从其他语言过度是也不能过于特立独行。
编程语言和自然语言可以类比,但类比不具有科学规律效应,每一种语言都有自己严格的定义。
类比通常是造成谬论的原因,不过类比可以适当提高学习编程语言的效率,举个 C 语言例子:
英语符号集
C 语言的基本符号集包含26个小写字母,26个大写字母,阿拉伯数字和29个图形符号(标点等)
英语将符号组合成各种词性的单词或短语
C 语言将符号组合成 6 类:
关键字
标识符
常量(字面量)
标点和运算符
注释
预处理符号
各种类别对比各种词性,如关键字类别对比动词词性,标识符类别对比名词词性,切莫把关键字等同于动词,标识符等同于名词。
英语具有语义的最小单位是单词和短语
C 语言最小语义单位是表达式,正如单词需要背诵,表达式也需要记忆。在 C 语言中表达式分为:
基本表达式 (常量标识符、变量标识符)
后缀表达式
前缀表达式
加性...
乘性...
关系...
......
很多不写了,学语言大部分就是学这些,就像学英语大部分都在背单词。
英语中一般通过空格分隔和同步单词
C 语言通过分隔和同步表达式,分隔含义容易理解,同步就容易想当然了。如 “C 程序是从上往下,从左往右读”,这种从人类语言推演来的想当然思想非常不可取,语言都是严谨的,每一种语言的执行或阅读顺序都是有相应规则的,C 语言遵循序列点规则。
英语中的短语是固定格式表示固定意思
C 语言中的关键字也是固定格式表示固定意思,短语和关键字无论是格式还是含义都需要记忆。
英语通过组合单词构成语句
C 语言通过组合表达式构成语句
人类在抽象时或多或少的思维一致这是正常的,但不同事物的抽象原理不尽相同。
无论是 Grammar 还是 Syntax,编程语言只继承了一些自然语言的词汇而不会遵循语义和结构,我不认为在编程语言中有通用的自然语言语法这一说。