zoukankan      html  css  js  c++  java
  • 作业4 文法和语言总结与梳理

    1. 梳理第二章的内容,写一篇理解与总结。

      第二章已经接近尾声了,下面来总结和梳理一下第二章的内容。第二章主要是介绍了文法和语言的概念,重点讨论上下文无关文法及其句型分析中的有关问题。本章主要涉及到文法的直观概念、符号和符号串、文法和语言的形式定义、文法的类型、上下文无关文法及其语法树、句型的分析等这几个内容。

    (1)字母表:元素的非空有穷集合;

    • 符号/字符:字母表中的元素;
    • 符号串:符号的有穷序列。

    (2)符号串运算:

    • 符号串的连接:εx=xε=x;
    • 集合的乘积:AB={xy|x∈A,y∈B};{ε}A=A{ε}=A;
    • 符号串的幂运算:x=abc,x^2=abcabc;
    • 集合的幂运算
    • 正闭包A+与闭包A*:A*={ε}∪A+

    (3)文法:文法是对语言结构的定义与描述。即从形式上用于描述和规定语言结构的称为"文法"(或称为"语法")

                        文法G定义为四元组(VN,VT,P,S),其中VN为非终结符,VT 终结符的非空有穷集,VN∩VT=Φ,P为产生式(规则)集合,S称作识别符或开始符。

           

    (4)语言:

    • 句型:由起始符推导出来的符号串。
    • 句子:仅含有终结符合的句型。
    • 语言:句子的集合。

    (5)语法树:

    • 短语是句型中的某个非终结符所能推出的符号串。
    • 直接短语:不能再推导出其他式子的符号串
    • 句柄:最左的直接短语。
    • 最左推导:每个推导过程都是从最左边的非终结符号的替换开始
    • 最右推导:每个推导过程都是从最右边的非终结符号的替换开始 (最右推到常被称为规范推导)

    (6)二义性:

    • 如果一个文法存在某个句子对应两棵不同的语法树,则说这个文法是二义的。
    • 若一个文法中存在某个句子,它有两个不同的最左(右)推导,则这个文法是二义的。
    • 若一个句子中所有文法都是二义的,则该句子的语言是二义的。

    2. 尝试写出PL/0 语言的文法。(或者你认为比较好的语言规则)

    (1)整数n:<数字> -> 0|1|2…7|8|9

        G(N):N->n | nN

        n->0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

    (2)标识符i:<标识符> -> <字母>{<字母>|<数字>}

        G=(VN,VT,P,S), 

        VN={I(标识符),L(字母),D(数字)}

        VT={a,b,c,...,x,y,z,0,1,2,...,9}

        P={ <I>-><L>,

          <I>-><I><L>,

          <I>-><I><D>,

          <L>->a,

          <L>->b,

           ....

          <L>->z,

          <D>->0,

          <D>->1,

             ......

          <D>->9}

        S=<I>

        I->L|IL|ID

        L->{a|b|c|...|z}

        D->{0|1|2|...|9}

    (3)表达式e:<表达式> -> [+ | -] <项> { <加法运算符><项>}

    (4)条件语句: <条件语句>  -> IF <条件> THEN <语句>

    (5)赋值语句:<赋值语句> -> <标识符> := <表达式>

    (6)复合语句: <复合语句> -> BEGIN <语句> {;<语句>} END

    (7)函数:<函数定义> -> <类型说明><函数名><复合语句>

    (8)程序:<程序> -> <分程序>

  • 相关阅读:
    树状数组基础
    Color the ball HDU1556
    敌兵布阵 HDU1166
    线段树基础
    T9 HDU1298
    7-6 Bandwidth UVA140
    测试方法:
    测试过程:
    爬天极网美女图片缩略图:
    爬天极网美女预览图版一:
  • 原文地址:https://www.cnblogs.com/carmen-/p/11583279.html
Copyright © 2011-2022 走看看