• 作业4


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

    理解:这一章我学习了文法和语言,了解到了文法与语言的形式定义,文法和语言的规则、分析、类型和推导,还学习了上下文无法文法以其语法树。

    文法是语言的一种表现形式,文法是由非终结符(大写字母)和终结符(小写字母)以及“—>”组成的,通过这一章的学习我学会了构造文法来表达语言,即利用文法的规则和推导手段,将语言中的每个句子用严格定义的规则来构造,它的行为相当于一个过程:输入一个符号串判断是否属于某语言,如果是,则该过程经过有限次的计算然后停止回答“是”;如果不属于,则该过程要么停止回答“不是”,要么该过程永远的运行下去。而文法也有四个类型,0型文法、上下文有关文法、上下文无关文法和正规语言。

    总结:这章的学习主要是学习如何推导文法跟语法树,通过构造文法来表达语言。这对我们的逻辑思维还是有一定要求,同时通过这些锻炼了我们的逻辑思维。

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

    整数n

    标识符i

    表达式e

    条件语句

    赋值语句

    复合语句

    函数

    程序

    ...

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

    标识符i     i->a|b|c|……|y|z|A|B|C|……|Y|Z (<字母>{<字母>|<数字>} )

    表达式e     ::= [+|-] <项> {<加减运算符><项>}

    条件语句    ::= if <条件> then <语句>

    赋值语句    ::= <id> :=<表达式>

    复合语句    :: = begin<语句>{;<语句>} end

    函数        ::= =<主函数>

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

  • 相关阅读:
    41. 缺失的第一个正数
    101. 对称二叉树 38. 外观数列
    leecode 394. 字符串解码 java版本
    敏感词过滤(java)
    vue项目中async、await+promise来将异步转为同步
    vue项目目录详解及自定义事件
    如何搭建vue项目
    Sublime Text 3 离线安装插件
    拿到别人的vue项目如何跑起来?
    js设置定时器和清除定时器
  • 原文地址:https://www.cnblogs.com/dengweijiang/p/11599895.html
Copyright © 2020-2023  润新知