• 作业四


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

         第二章主要讲了文法和语言。

        我们都知道,一种语言必定他的文法去描述,它的完整定义包括语法和语义两个方面。语言和语法是指一组规则,用它可以形成和产生一个合适的程序。目前广泛使用的是上下文无关文法,也就是用上下文无关文法作为程序设计的描述工具,比如用A:=B+C表示是一个合法的赋值语句,则A:=B+就不是合法的赋值语句。

    符号和符号串。

    文法和语言的形式定义,

    文法的类型,

    上下文无关文法及其语法树,

    句型得到分析。

     文法有四种类型:0型语言,上下文有关语言,上下文无关语言和正规语言。

        (2)符号串运算:  

          符号串的连接:εx=xε=x; 

      集合的乘积:AB={xy|x∈A,y∈B};{ε}A=A{ε}=A; 

          符号串的幂运算:x=abc,x^2=abcabc; 

      集合的幂运算

         

           正闭包A+与闭包A*:A*={ε}∪A+

    推导方式有最左和最右推导,最右推导则是规范推导。根据文法推导出来的句子,可以用语法树更直观的表达出来。

    2. 尝试写出PL/0 语言的文法。

    整数n

    n->0|1|2|3|……|8|9

    标识符i

    i->a|b|c|……|y|z|A|B|C|……|Y|Z

    表达式e

    e->[+|-]<项>{<加减运算符><项>}

    条件语句

    <条件语句>->if<条件>then<语句>

    赋值语句

    <赋值语句>→ <标识符>:=<表达式>

    复合语句

    <复合语句>->begin <语句>{;<语句>} end

    函数

    <函数>→<主函数><其他函数>|<主函数>

    程序

    <程序>-><分程序>.

    <分程序>->[<常量说明部分>] [<变量说明部分>][<过程说明部分>]<语句> 

  • 相关阅读:
    Source InSight context 窗口丢失的解决办法
    [EffectiveC++]item41:了解隐式接口和编译器多态
    [EffectiveC++]item04:Make sure the objects are initialized before they're used
    [EffectiveC++]item3:尽可能使用const
    linux man指令问题
    解读ARM成功秘诀:薄利多销推广产品
    source insight设置问题 [问题点数:20分,结帖人leecapacity]
    totalcommander
    firefox
    处理SecureCRT中使用vim出现中文乱码问题
  • 原文地址:https://www.cnblogs.com/a188182/p/11600271.html
Copyright © 2020-2023  润新知