程序语言主要由语法和语义两个方面定义,语法由三个基本概念组成:字母表,单词符号和语法单位;语义则是定义语言的单词符号和语法单位的意义。高级语言主要分为4类:强制性语言,应用式语言,基于规则的语言和面向对象语言,其数据类型主要分为三类:基本数据类型,构造数据类型和自定义数据类型。
文法是描述语言的语法结构的形式规则。一个上下文无关文法包括4个组成部分:终结符号,非终结符号,开始符号和产生式。形式上定义一个上下文无关文法G是一个四元式(VT,VN,S,P)。产生式(也称为产生规则或简称规则)是定义语法范畴的一种书写规则。一个产生式的形式是 A→ α
其中箭头左边的A是一个非终结符,称为产生式的左部符号;
箭头右边的α是终结符号或与非终结符号组成的一符号串,称为产生式的右部,或称候选式。
直接推导:仅当A->γ是一个产生式,有
αAβ ->αγ β
该推导称为直接推导。
最左(最右)推导:在推导的任何一步α=>β,其中α、β是句型,都是对α中的最左(右)非终结符进行替换。
语法分析树:简称语法树,用来表示推导过程。
如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的,也就是说,若一个文法存在某个句子,它有两个不同的最左(最右)推导,则这个文法是法是二义的。
文法主要有4种类型: