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

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

  第二章首先介绍了文法的相关概念以及概念的推导过程,接着介绍了符号和符号串,其中字母表的定义为元素非空有穷集合,字符串为由字母表中的符号组成的任何有穷序列。接着介绍字符串的一些运算,例如:符号串的头尾,固有头和固有尾;符号串的连接;符号串的方幂;符号串集合。文法和语言的形式定义:文法G定义为四元组(VN,VT,P,S),其中VN为非终结符,VT为终结符,P为规则(a→ß)的集合。S为识别符或开始符,不是终结符,至少有一条出现在左边。

  文法的类型有四种:0型文法、I型文法或上下文有关文法、2型文法或上下文无关文法、3型文法或正规文法,四种文法限制越来越严格,所以正规文法都是上下文无关的,每一种上下文无关文法都是上下文有关的。描述上下文无关文法的句型推导的直观工具,即语法树,文法G =(VN,VT,P,S),对于G的任何句型都能构造与之关联的语法树。文法的推导过程分为:最左推导和最右推导,最右推导也称为规范推导。

  文法的二义:某个句子对应有两颗不同的语法树。

  有关文法的实用限制:在实际使用中,限制文法中不能有有害规则和多余规则,有害规则,对描述语言没有必要的,容易引起文法的二义性,多余规则是指文法中那些连一个句子推导都用不到的规则,这一类规则在文法的推导中根本不可能用到它。



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

整数:n→1|2|3|4|5|6|7|8|9|

标识符:i→<字母>  <字母>|<数字>

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

条件语句:<条件语句>→ if <条件>  then<执行语句>

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

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

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

程序:不会做(查无资料)

...


原文地址:https://www.cnblogs.com/lingcode/p/11592112.html

时间: 2024-11-05 20:36:09

4.文法和语言总结与梳理的相关文章

文法和语言总结与梳理

1. 梳理第二章的内容,写一篇理解与总结. 第二章主要讲述了文法的直观概念,符号和符号串,文法和语言的形式定义,文法的类型,上下文无关语法及其语法树 句型的分析,自订向下的分析方法,自底向上的分析方法,限制文法中不得含有有害规则和多余规则,在形式语言中, 最右推导常被称为规范推导,由规范推导所得的句型称为右句型或规范句型,而且一个文法存在某个句子对应两颗 不同的语法树,则这个文法是二义的. 2. 尝试写出PL/0 语言的文法.(或者你认为比较好的语言规则) 整数n 标识符i 表达式e 条件语句

编译原理之文法和语言总结与梳理

前言 一个程序设计语言是一个记号系统,如同自然语言一样,它的完整定义应包括语法和语义两个方面.所谓一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序.目前广泛使用的手段是上下文无关文法,即用上下文无关文法作为程序设计语言语法的描述工具.语法只是定义什么样的符号序列是合法的,与这此符导的含义落无关系,比如对于个Pascal程序来说,一个上下文无关文法可以定义符号串A:一B+C是一个合乎语法的默值语句,而A:=B+就不是.但是,如果B是实型的,而C是布尔理的,或者B.C中任何一个变量没有事

编译原理:文法和语言总结与梳理

1. 梳理第二章的内容,写一篇理解与总结. 一. 对程序设计语言的描述从语法.语义和语用三个因素考虑: 语法:对语言结构的定义: 语义:语言的含义: 语用:从使用的角度描述语言. 形式语言理论是编译的理论基础. 二. 字母表:元素的非空有穷集合: 符号/字符:字母表中的元素: 符号串:符号的有穷序列. 三. 符号串运算: 符号串的连接:εx=xε=x: 集合的乘积:AB={xy|x∈A,y∈B}:{ε}A=A{ε}=A: 符号串的幂运算:x=abc,x^2=abcabc; 集合的幂运算 正闭包A

编译原理学习(5)文法和语言总结与梳理

梳理第二章的内容,写一篇理解与总结. 文法: 以有穷的集合刻画无穷的集合的一个工具.用规则来说明句子的组成结构,用来表示无穷句子的语言描述. 句子与句型: 如果符号串x是由起始符号推导出的,则称x是文法G[S]的句型. 如果x中只包含终结符,则称x是文法G[S]的句子. 文法描述的语言是该文法一切句子的集合. 四种文法: 0型文法:α→β,其中α至少包含一个非终结符. 1型文法(上下文有关文法):α→β,其中|β|≥|α|,S→ε除外. 2型文法(上下文无关文法):a→β,其中a是一个非终结符.

文法和语文总结与梳理

1. 梳理第二章的内容,写一篇理解与总结. 理解: 第二章讲了文法和语言,文法是有规则的,按照给出的文法规则,编译出相应的语言. 文法描述的语言是该文法一切句子的集合. 文法有四种类型:0型语言,上下文有关语言,上下文无关语言和正规语言. 且文法也具有二义性,就是一种文法,可以用两种以上的语法树来表示,则称这个文法有二义性. 推导方式有最左和最右推导,最右推导则是规范推导.根据文法推导出来的句子,可以用语法树更直观的表达出来. 还有一个句型分析,分为短语,直接短语,句柄. 总结:学完了第二章,自

编译原理之理解文法和语言

简介 一个程序设计语言是一个记号系统,如同自然语言一样,它的完整定义应包括语法和语义两个方面.所谓一个语言的语法是指一组规则,用它可以形成和产生一个合适的程序.目前广泛使用的手段是上下文无关文法,即用上下文无关文法作为程序设计语言语法的描述工具.语法只是定义什么样的符号序列是合法的,与这些符号的含义毫无关系,比如对于一个Pascal程序来说,一个上下文无关文法可以定义符号串A:=B+C是一个合乎语法的赋值语句,而A:=B+就不是.但是,如果B是实型的,而C是布尔型的,或者B.C中任何一个变量没有

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

文法:文法是对语言结构定义与描述,即从形式上描述和规定语言结构,也称为语法. 字母表:元素的非空有穷集合,字母表的元素称为符号,所以字符表也称为符号集. 符号串:定义在某一字母表上 由该字母表中的符号组成的有限符号序列 同义词:句子,字 文法和语言的形式定义: 规则也称重写规则,产生式或生成式 文法类型:0型文法,上下文有关的,上下文无关的 语法树:语法分析树或分析树 语言:在某一确定字母表上的特定符号串的集合. 原文地址:https://www.cnblogs.com/fzybk/p/1157

文法、语言、正则表达式

文法的形式定义于分类 一个上下文无关文法有四个元素组成: 一个终结符号集合,也称为词法单元. 一个非终结符号集合,也称为语法变量. 一个产生式集合. 一个开始符号. 文法G可以抽象成四元组的形式:G=(VN,VT,P,S) 其中VN表示非终结符集,VT表示终结符集,P表示产生式集,S表示开始符号. 文法G描述的语言用L(G)表示L(G)={w|w∈VT*且S=+>w} 符号串w从开始符号推导出来 w仅由终结符号组成 w称为该语言的句子 L(G)由所有这样的句子构成 约定: 大写字母A~Z表示非终

2.文法和语言

1.文法G(Z):Z->aZb|ab定义的是什么样的语言? Z->ab Z->aZb->aaZbb->aaaZbbb->aaa......bbb 定义的是anbn 2.写出教材22页例2.2中标识符的文法四元组形式. 设<标识符>为E :<字母>为T:<数字>为N G(S): E-->T|ET|EN T-->a|b|c|...|z N-->0|1|2|3..|9 S=<标识符> 3.写出下列表达式的最左推