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’(‘<表达式>{,<表达式>}’)’

转载于:https://www.cnblogs.com/linyanli/p/11585368.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值