ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-09-27 21:55:09  阅读:300  来源: 互联网

标签:总结 文法 二义性 句型 Vn 字母表 梳理 符号串


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

文法的定义:文法是对语言结构的定义与描述,即从形式上描述和规定语言结构,也称为语法。

2.2符号和符号串

字母表:字母表是元素的非空有穷集合,字母表中的元素称为符号,字母表也称为符号集。字母表中典型的符号是字母、数字、各种标点和运算符等。

符号串:字母表的符号组成任何又穷序列的符号串。如字母表A={a,b,c}则由这个字母表组成的符号串包括: {ab,ac,bc,abc,a,b,c}。如果某符号串x中有m个符号,则称其长度为m,表示为|x|=m。允许空符号串,即不包括任何符号的符号串,用ε表示,其长度为0,即|ε|=0。

符号串的运算:①符号串的连接:εx=xε=x;

       ②集合的乘积:AB={xy|x∈A,y∈B};{ε}A=A{ε}=A;

       ③符号串的幂运算:x=abc,x^2=abcabc;

       ④集合的幂运算:x^0= e  ; x^1 = x;.....;(和小学数学的方幂一致)

       ⑤正闭包A+与闭包A*:A*={ε}∪A+

2.3文法和语言的形式定义

文法:所谓文法就是描述语言的语法结构的形式规则。任何一个文法都可以表示为一个四元组G=(,P,S)。是一个非空的有限集合,它的每个元素称为非终结符号;是一个非空的有限集合,它的每个元素称为终结符号;S是一个特殊的非终结符号,称为文法的开始符号;P为规则(α→β)的集合。

2.4文法的类型

0型文法/无限制文法:α->β,其中α∈(Vn∪Vt)*且至少含有一个非终结符,β∈(Vn∪Vt)*。 1型文法/上下文有关文法:αAβ->αuβ,其中A∈Vn,α,β∈(Vn∪Vt)*,u∈(Vn∪Vt)+。

2型文法/上下文无关文法:A->β,其中A∈Vn,β∈(Vn∪Vt)*。常用于句法分析。

3型文法/正规文法:常用于词法分析   

    i. 右线性文法:只能对推出式的右边展开,A->αB|α,A,B∈Vn,α∈Vt*。   

    ii. 左线性文法:只能对推出式的左边展开,A->Bα|α,A,B∈Vn,α∈Vt*。

2.5上下文无关文法及其语法树

对于上下文无关文法,语法树是句型推导过程的几何表示。当给定一个符号串时,试图按照某文法的规则为该符号串构造推导或语法树,以此识别出它是该文法的一个句型;当符号串全部由终结符号组成时,就是识别它是不是某文法的句子。因此也有人把语法树称为语法分析树或分析树。

2.6 句型的分析

句型的分析是指构造一种算法,用以判断所给符号串是否为某一文法的句型(或句子)。主要分为两类方法:①自上而下分析(最右推导):从开始符推导出句子或句型;②自下而上分析(最左归约):从句子或句型归约出开始符。

2.6.1 短语和句柄

短语:S=*>αAδ且A=+>β,则称β是相对于非终结符A的句型αAδ的短语;对应语法树中的子树概念。

直接短语:其中A=>β为直接推导;对应语法树中的简单子树。每个直接短语都是某规则的右部。

句柄:是直接短语(即某规则的右部),且具有最左性;对应简单子树中最左的一棵。

文法的二义性:如果一个文法存在某个句子对应两棵不同的语法树,包含两个或两个以上的最右(最左)推导(规约),则该文法是二义性;可以利用文法之间的等价性来消除二义性。  不改变文法中原有的语法规则,进增加一些语法的非形式定义,如优先级;构造一个等价的无二义性文法。

文法的二义性和语言的二义性:如果两个文法产生的语言相同,即L(G)=L(G?),则称这两个文法是等价的。有时,一个二义性的文法可以变换为一个等价的、无二义性的文法。有些语言,根本就不存在无二义性的文法,这样的语言称为二义性的语言。

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

整数n→ 0|1|2…7|8|9|...|n

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

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

条件语句:<条件语句>:=IF<条件>THEN<语句>

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

复合语句:<复合语句>::=BEGIN<语句>{;<语句>}END

函数:<函数> ::= <类型说明><函数名><复合语句>

程序→〈分程序〉

〈分程序〉→ [<常量说明部分>][<变量说明部分>][<过程说明部分>]〈语句〉

 

标签:总结,文法,二义性,句型,Vn,字母表,梳理,符号串
来源: https://www.cnblogs.com/201706120196y/p/11600616.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有