• 作业四:


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

    本章学习了文法和语言的相关知识,比如:文法的直观概念、符号和符号串,文法和语言的形式定义、文法的类型、语法树和句型的分析等。

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

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

    文法G=(Vn,Vt,P,S),其中Vn为非终结符集;Vt为终结符集;P为产生式的集合,至少包含一个非终结符;S为识别符或开始符。

    当Aⁿ的n=0时,Aⁿ是空串ε。

    推导方法分为最左推导,最右推导(规范推导)。->表示产生式,=>表示推导式。

    文法分为0型、1型、2型和3型。

    0型文法:α->β,两个都是集合,且至少含有一个非终结符。

    1型文法(上下文有关文法):每个α->β都满足∣β∣≥∣α∣。

    2型文法(上下文无法文法):每个α->β都满足α是一个非终结符。

    3型文法(正规文法):A->aB或A->a。

    条件语句的文法片段: <条件语句>->if <条件> then <语句>| if <条件> then <语句> else <语句>

    语法树叶称为推导树。如果一个文法存在两颗不同的语法树,则说这个文法是二义的。

    句型分为短语、直接短语和句柄。

    短语就是每个语法树的最终结果相结合,直接短语就是该语法树只有一个支流的最终结果,句柄就是最左边的直接短语。

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

    整数n    n->...|0|1|2|3|...

    标识符i   i-><标识符>

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

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

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

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

    函数    

    type_specifier à

    VOID

    | CHAR

    | INT

    | FLOAT

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

    ...

  • 相关阅读:
    【持续更新】养成一些好的C++编程习惯,争做一个不让同事骂街的程序员
    Inno Setup界面美化
    QWebengineView页面不实时刷新的问题
    Qt封装窗口进dll须知
    Inno Setup打包工具
    【转载】排序方式整理(带演示GIF)
    MySQL遇见SELECT list is not in GROUP BY clause and contains nonaggre的问题
    JMeter测试TCP协议
    Win10微软拼音关闭Ctrl+Shift+B快捷键
    Hive 窗口函数使用(1)
  • 原文地址:https://www.cnblogs.com/tao614/p/11577411.html
Copyright © 2020-2023  润新知