2-文法和语言

字母表:

    字母表是元素的非空有穷集合,字母表中的元素称为符号,因此字母表也称为符号集。


符号串:

    由字母表中的符号组成的任何有穷序列称为符号串。


    在符号串中,符号的顺序是非常重要的。


    如果某符号串x中有m个符号,则称其长度为m,表示为|x|=m


    允许空符号串,即不包含任何符号的字符串,用ε表示,其长度为0,即|ε|=0


1)有关符号的头尾,固有头固有尾

    如果z=xy是一符号串,那么x是z的头,y是z的尾,如果x是非空的,那么y是固有尾;同样如果y非空,那么x是固有头。

2)符号串的连接

    设x和y是字符串,他们的连接xy是把y的符号写在x的符号之后得到的字符串。


    由于ε的含义,显然有εx=xε=x

3)符号串的方幂

    设x是符号串,把x自身连接n次得到字符串z,即z=xx···xx,称为符号串x的方幂,写作z=x²


    xº=ε

4)符号串集合

    指定字母表Σ之后,可用Σ*表示Σ上的所有有穷长的串的集合。


    例如:Σ={0,1},则Σ*={ε,0,1,00,01,10,11,000,001,010,···},也可表示为字母表的方幂形式:Σ*=Σº∪Σ¹∪Σ²···∪Σn···


    A*:A的*闭包。


    A+:A的正闭包。(不含空串ε)


文法:

    文法G定义为四元组(VN,VT,P,S)




  其中VN为非终结符(或语法实体,或变量)集;


  VT为终结符集;


  P为规则(α→β)的集合;


  VN,VT和P是非空有穷集;


  S称作识别符或开始符,他是一个非终结符,至少要在一条规则中作为左部出现。




    VN:非终结符集合,用尖括号括起来,大写字母表示。


    VT:终结符集合,不用尖括号括起来,小写字母表示。

上一篇:[ 转载 ] Java基础


下一篇:程序语言词汇外语收藏