• 4.文法和语言总结与梳理


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

           在第2章文法和语言这一章的学习中,我收获了很多。

           知道了语言和编程语言的组成结构分别是:语言是句子的集合,句子由多个单词按一定的规则组成,而单词又是由多个字符按一定规则组成的。编程语言是程序的语句集合,语句是多个单词按语法规则组成,单词又是由多个字符按词法规则组成。

           我也知道了文法是对语言结构的定义与描述。文法都可以定义为一个四元组G=(VN,VT,P,S),VN为非终结符集;VT为终结符集;P的每个元素称为产生式,它们都是非空有穷集。S称作识别符或开始符,它是一个非终结符,至少要在一条规则中作为左部出现。VN和VT不含公共的元素,通常用V表示VN和VT的合集,V称为文法G的字母表或字汇表。

           文法的类型:0型文法或短语文法、1型或上下文有关的、2型或上下文无关的、3型或正规文法。语法树是描述上下文无关文法的句型推导的直观工具。如果一个文法中存在某个句子对应了两棵不同的语法树,则说这个文法是二义的。

           在第一次作业后对编译原理有的一定的认识。知道了它与翻译程序、汇编程序的联系与区别,包括哪几个主要阶段及每个阶段的主要功能,程序与编译程序的区别。关于文法和语言的作业,收获了有关文法四元组、表达式的最左推导、最右推导和语法树的知识。相对于前两次作业,感觉第三次作业做的比较困难,对于构造上下文无关文法描述语言还有if语句的方法,一开始是做错的,在老师的讲解下,更正了。

            第二章的学习结束了,对于第二章的知识还不是很熟悉,要多多复习。

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

    整数n

      <整数n>::=<数字>{<数字>}

      <数字>::=0|1|2|3|…|8|9

    标识符i

      <标识符i>::=<字母>{<字母>|<数字>}

      <字母>::=a|b|c|…|Y|Z

    表达式e

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

    条件语句

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

    赋值语句

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

    复合语句

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

    函数

      <函数>

    程序

      <程序>::=<分程序>.

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

      <项>::=<因子>{<乘除运算符><因子>}

    读语句

      <读语句>::=read’(‘<id>{,<id>}’)’

    写语句

      <写语句>::=write’(‘<表达式>{,<表达式>}’)’

  • 相关阅读:
    adb monkey测试 命令
    大数据 入门
    代码设计模式 编写思想 架构
    汉化 android studio
    电脑时间显示秒 win10电脑显示农历
    Restful api介绍
    Map工具系列-03-代码生成BySQl工具使用说明
    win10 office2013激活工具
    win10 1607 密匙
    .net社区
  • 原文地址:https://www.cnblogs.com/linyanli/p/11585368.html
Copyright © 2020-2023  润新知