2019独角兽企业重金招聘Python工程师标准>>>
代码通常是敲出来的,凝聚着程序员的心血。经过解释器或编译器的验证,正确的代码通常都符合一定的语法规则。通常有以下几种规则:
关键字:keyword
这些单词通常代表了特殊的意思,是语言中的保留字,不能用作变量名称或函数名称(有些语言能用变量保存函数)。例如 Javascript, PHP 中的 function, 大多数语言中的 if else then.
标识符 identifier
这些符号和 keyword 一样,也有特别的意思,不同的组合有着不同的意思,例如 == != >= ...
注释,字符串或正则表达式(ruby 将正则表达式列为一种新的数据类型)
这些结构通常都有特定的开始字符和结束字符,在结构中,可以出现和语法截然不同的字符组合。 但一种结构中不可能存在另外一种结构,是独立的结构。例如注释中,不可能有字符串,而字符串中也不能存在注释(Perl6 似乎打破了这个规则,可以在任意结构中插入注释).
可以嵌套的结构
数据结构通常是可以嵌套的,数组中的元素也可以是数组。条件判断或循环结构也可以嵌套。一个循环中可以用判断,而判断中同样可以用循环的结构。
可以用正则表达式描述的结构
正则表达式可以描述一个结构的组合,其中某个部分可有可无,也可以多次出现,但必须按照一定的顺序,这种可以用正则表达式描述(学术专家称为 BNF 或 EBNF)的结构,几乎可以描述所有的语法规则。 例如 := ( id1 { , id2 }), 其中 { , id2 } 就是可以多次出现的结构。
在许多描述语法的表示方法中,存在一种递归表示法,也就是一种结构,同时也包含自身。这是定义上的一个表示法,描述的是一种可以嵌套的结构。如果能将这种结构提前进行解析的话,就不需要这种让人难以理解的表示方法了。