1.文法及语言的形式表示
每一门编程语法都是有它自己的语法的,实际上,任何程序均可以看做是一定字符集上的一个字符串,而判定一个字符串是否为一个程序上合法的程序,其依据的则是语言的文法。
语言的文法是一组规则,包含词法规则和语法规则。
词法规则是描述语言单词符号构成规则的。单词符号包括:标识符、常数、运算符等。词法规则的描述工具通常为正规文法(正规式、有限自动机)。
语法规则是描述语言语法单位构成规则的。语法单位包括:表达式、语句、函数、过程等。语法规则的描述工具常为:上下文无关文法。
文法是描述语言结构的形式规则,一般分为四个类型:0型、1型、2型、3型。其中2型即为上下文无关文法,是描述程序语言语法的有效工具,3型即正规文法,是描述程序语言词法的有效工具。
2.文法和语言的形式定义
定义1:产生式(或规则)
产生式是一个有序对(A,α),通常记作A→α(或A::=α),其中A称为产生式的左部符号,α为产生式的右部有穷符号串,“→”表示“定义为”或“由…组成”。
定义2:文法
文法是一个四元组G[S]=(Vn,Vt,P,S),其中Vn为非空有穷集,其每个元素为非终结符,Vt为非空有穷集,其每个元素为终结符,由定义可知Vn∩Vt&