当前位置:文档之家› 语法分析方法

语法分析方法

语法分析方法
语法分析方法

语法分析方法

句子成分分析法

句子成分分析法也叫做中心词分析法。

句子成分分析法的总的特

点是:认定语法分析就是分析一个句子(单句)的句子成分。分析的过程是:(1)先看全句的主要成分,哪个是主语,哪个是谓语;(2)再看充当谓语的动词是不是及物动词,以决定后面是否有连带成分宾语;(3)最后指出附加在主语、宾语之前、谓语之后的所有附加成分句子成分分析法的作用

句子成分分析法在汉语语法研究和语法教学中起过积极的作用。在其他分析方法借鉴、运用到汉语语法研究中来之前,就是靠它建立了汉语语法学,普及了语法知识。句子成分分析法

这样,对汉语来说,光是分析层次,远远不足以说明某一语言片段的特征,因此,汉语中运用层次分析法既要讲切分,又要讲定性。

层次分析法的作用

由于层次分析法符合语言的语法构造特点,因此它在语法研究中能起较好的作用。具体表现如下:

(1)层次分析法的适用面比较广。它既可以用来分析单句的结构,也可以用来分析复句的结构,还可以用来分析合成词的结构。

(2)可以更好地分化歧义句式。例如上文的“这张照片放大了一点儿”是个歧义句,句子成分分析法不能加以分化,但层次分析法可以很好地加以分化。

(3)可以把语法研究引向深入,更好地揭示语法规律。例如,汉语中动词单独作谓语不自由,到很大的限制,这正是通过层次分析法所获得的一条语法规律。运用层次分析法,不仅要考虑从什么地方切分,而且还要考虑为什么从这个地方切分,这就把语法研究引向了深入。

层次分析法的局限性

层次分析法也有它的局限性。它只能揭示句子内部的构造层次和显形的语法关系,不能揭示句法结构内部的隐性语法关系。例如:

山上架着炮。

门外修着马路。

“山上架着炮”是一个有歧义的句子,它即可以表示(A)“山上有炮”的意思,也可以表示

黑板上写着字。→字写在黑板上。

墙上挂着画。→墙上挂着画。

门上贴着对联。→对联贴在门上。

上述情况表明,[A]式和[C]式之间有变换关系,[A]式可以变换[C]式。

(B)式和(D)式之间的变换

表示(B)义的[B]式“NPL + V + 着+ NP ”可以跟“NPL + 正在+ V + NP”句式(我们把它记为[D]式)相联系。例如:

[B] →[D]

院子里演着梆子戏。院子里正在演梆子戏。

[D]式“院子里正在演梆子戏”也表示活动,表动态,而且NPL“院子里”也是指明“演梆子戏”这一活动的场所。类似的例子如下:

[B] →[D]

门外敲着锣鼓。→门外正在敲锣鼓。

外边下着大雨。→外边正在下大雨。

大厅里跳着舞。→大厅里正在跳舞。

隔壁打着电话。→隔壁正在打电话。

操场上放映着电影。→操场上正在放映电影。

教室里上着课。→教室里正在上课。

上述情况表明,[B]式和[D]式之间有变换关系,[B]式可以变换[D]式。

“山上架着炮”的变换方式

“山上架着炮”即可以表示(A)义,又可以表示(B)义。这是[A]和[B]在这个句子里重合的结果。我们通过分析可以证明这一点。当例(3)表示(A)义时,它为[A]式,可以变换为[C]式:

[A]山上架着炮。→[C]炮架在山上。

当例(3)表示(B)义时,它为[B]式,可以变换为[D]式:

[B] 山上架着炮。→[D]山上正在架炮。

这样,通过变换分析达到了分化有歧义的句子例(3)的目的。

变化分析法的作用

(1)变化分析法的作用首先在于可以有效地分化歧义句式。

(2)其次,变化分析法可以用来给某种句子分类定性。举例说来,现代汉语里动词后带数量词语有三种情况:①数量词语由名量词构成。例如:买一本吃一个写一遍(述宾) ②数量词语由动量词

构成。例如:洗一次敲两下唱三遍(述宾、述补)③数量词语由时量词构成。例如:看一天停一年等三分钟(述补)。到底分析为述补结构合适,还是分析为述宾结构合适呢?可以利用变化分析法帮助确定。

(3)我们看重变化分析法,更在于它可以帮助我们把汉语语法研

究进一步引向深入,揭示更多的语法规律。

语义特征分析法

变化分析法也有它的局限性。它能用来更好地分化歧义句式,但不能解释造成歧义句式的原因。这就促使我们去探求新的分析手段。语义特征分析法是八十年代汉语语法研究领域里开始采用的一种语法分析方法,最早见于朱德熙先生的《“在黑板上写字”及相关句式》一文。变换分析的局限性促使语义特征分析法在汉语语法研究中的运用。上面曾举到:

(1)院子里放着四方桌。(2)院子里演着梆子戏。

例(1)(2)实际上代表了两种不同的句式,例(1)代表[A]式,例(2)代表[B]式,这是通过变化分析法所证实的。但是,例(1)(2)格式相同为什么会代表不同的句式呢?换句话说,造成“NPL + V + 着+ NP”这一句式歧义的原因何在?变化分析法回答不了这个问题,这需要运用语义特征分析法来回答这个问题。现在重温一下[A][B]两式的例句:

[A] [B]

院子里放着四方桌。院子里演着梆子戏。

台上坐着主席团。门外正在敲锣鼓。[A][B]两种句式的语义特征分析

“NPL + V + 着+ NP”之所以分化为[A][B]两种句式,关键在动词。不妨比较一下[A]式和[B]式里的动词。经分析,[A]式里的动词“放、坐、站、躺、蹲、写、挂、贴、刻、钉、绣、戴”虽然各自表示的具体意义不同,但含有共同的语义成分,那就是都含有“附着于某物”的意思。这一点可以从词典里对这些动词的释义中看出来。我们把“附着于某物”看作这些动词所共同具有的语义特征,以区别于其他动词,并标记为[+附着]。再看[B]式里的动词“演、敲、下、跳、打、放映、上”等,都不具有[+ 附着]的语义特征。如果我们把[A]式里的动词记为Va ,把[B]式里的动词记为Vb,这两类动词的差别就在于:

Va [+ 附着] Vb [- 附着]

正因为Va具有[+ 附着] 的语义特征,所以[A]式可以变换成[C]式;Vb不具有这种语义特征,所以[B]式不能变换成[C]式。

由于引进了语义特征分析,把动词按句式分为更小的类,我们就有可能将[A][B]两式从格式上加以分化:[A]NPL + V a + 着+ NP [B]NPL + Vb + 着+ NP 四种句式的语义特征分析

下列四组句子中的动词有什么区别?试分析这些动

词在语义特征上的差别,并归纳出相应的动词句型。

[A]他死了三天了。/新中国成立五十多年了。/我的存折丢了两天了。

[B]他等了三天了。/她哭了大半天了。/她病了半年多了。

[C]书看了三天了。/这个工作我干了十多年了。/这个项目他们研究了五年了。

[D]那个灯笼挂了三天了。/这朵花她戴了一天多了。/这条领带他系了大半天了。

格式:名词性词语+动词+了+时量宾语+了。

[A]类句子中,“他死了三天了”中的时量成分“三天”只指明“死”这一行为动作完成、实现后所经历的时间。类似的例子还有“新中国成立五十多年了”“我的存折丢了两天了”。

[B]类句子中,“他等了三天了”中的时量成分“三天”只指明“死”这一行为动作持续的时间。类似的例子还有“她哭了大半天了”、“她病了半年多了”。

[C]类句子中,“书看了三天了”中的时量成分“三天”既可以指明“看”这一行为动作完成、实现后所经历的时间,如“书我早看完了,看了三天了”;也可以指明“看”这一行为动作持续的时间,如“书看了三天了,还没有看完”。类似的例子还有“这个工作我干了十多年了”、“这个项目他们研究了五年了”。

[D]类句子中,“那个灯笼挂了三天了”中的时量成分“三天”,既可以指明“挂”这一行为动作完成、实现后所经历的时间,如“灯笼早挂上了,都挂了三天了”;也可以指明“挂”这一行为动作持续的时间,如“那个灯笼挂了三天了,还没有挂上”;还可以指明由动作行为造成的“事物存在状态”持续的时间,如“那个灯笼一直在大门上挂着,都挂了三天了”。类似的例子还有“这朵花她戴了一天多了”“这条领带他系了大半天了”。

从以上的分析可以看出,这四组句子的谓语动词有以下差异:

动作完成后动作持续的时间动作所造成的状态

所经历的时间持续的时间

[A] +--

[B] -+-

[C] ++-

[D] +++

为什么会有这种不同呢?原因在于动词。我们不妨将A、B、C、D中的动词分别记为Va、Vb、Vc、Vd。那么,它们的语义特征可以概括如下:

Va:[+完成,-持续,-状态] Vb:[-完成,+持续,-状态]

Vc:[+完成,+持续,-状态] Vd:[+完成,+持续,+状态]

通过上面的分析,我们知道[A][B][C][D]四组句子是有差别的。我们可以根据动词语义特征上的差别概括出它们的句型:

[A]名词性词语+Va+了+时量+了

[B]名词性词语+Vb+了+时量+了

[C]名词性词语+Vc+了+时量+了

[D]名词性词语+Vd+了+时量+了

●“三个平面”的语法理论

●“两个三角”的语法理论

现代汉语语法分析的五种方法

北语之声论坛专业精华转贴 现代汉语语法的五种分析方法是语法学基础里很重要的一个内容,老师上课也会讲到,我在这里把最简略的内容写在下面,希望能对本科生的专业课学习有所帮助 详细阐释中心词分析法、层次分析、变换分析法、语义特征分析法和语义指向分析的具体内涵: 一. 中心词分析法: 分析要点: 1.分析的对象是单句; 2.认为句子又六大成分组成——主语、谓语(或述语)、宾语、补足语、形容词附加语(即定语)和副词性附加语(即状语和补语)。 这六种成分分为三个级别:主语、谓语(或述语)是主要成分,宾语、补足语是连 带成分,形容词附加语和副词性附加语是附加成分; 3.作为句子成分的只能是词; 4.分析时,先找出全句的中心词作为主语和谓语,让其他成分分别依附于它们; 5.分析步骤是,先分清句子的主要成分,再决定有无连带成分,最后指出附加成分。 标记: 一般用║来分隔主语部分和谓语部分,用══标注主语,用——标注谓语,用~~~~~~标注宾语,用()标注定语,用[ ]标注状语,用< >标注补语。 作用: 因其清晰明了得显示了句子的主干,可以一下子把握住一个句子的脉络,适合于中小学语文教学,对于推动汉语教学语法的发展作出了很大贡献。

还可以分化一些歧义句式。比如:我们五个人一组。 (1)我们║五个人一组。 (2)我们五个人║一组。 总结:中心词分析法可以分化一些由于某些词或词组在句子中可以做不同的句子成分而造成的歧义关系。 局限性: 1.在一个层面上分析句子,层次性不强; 2.对于一些否定句和带有修饰成分的句子,往往难以划分; 如:我们不走。≠我们走。 封建思想必须清除。≠思想清除。 3.一些由于句子的层次关系不同而造成的歧义句子无法分析; 如:照片放大了一点儿。咬死了猎人的狗。 二. 层次分析: 含义: 在分析一个句子或句法结构时,将句法构造的层次性考虑进来,并按其构造层次逐层进行分析,在分析时,指出每一层面的直接组成成分,这种分析就叫层次分析。 朱德熙先生认为,层次分析不能简单地将其看作是一种分析方法,而是应当看做一种分析原则,是必须遵守的。(可以说说为什么) 层次分析实际包含两部分内容:一是切分,一是定性。切分,是解决一个结构的直接组成成分到底是哪些;而定性,是解决切分所得的直接组成成分之间在句法上是什么关系。

层次分析法即直接成分分析法

有不少人认为,美国结构主义语法学家创造的层次分析法是本世纪语言学伟大贡献,首先我们要了解层次分析法的概念,层次分析法美国描写语言学称为直接成分分析法, 称“直接成分分析法”(简称IC分析法),是对句法单位(包括短语和句子)的直接成分进行结构层次分析的方法。由于切分过程中尽可能采用二分,所以层次分析法又称作“二分法”。层次分析法作业的目的,是按照语言组合的次序分析语言结构的内部层次,找出一个语言片断的直接成分,层次分析法便由此而得名 1、基本分析原则 语法从表面上看是线性排列的符号序列。线性排列是指按照时间先后顺序说出或写出的形式。但是语法结构却是有层次性的,层次是指句法单位在组合时所反映出来的不同的先后顺序。 表层的线性关系背后暗含着隐性的层次关系。小的语法单位是大语法单位的组成部分,大的语法单位是由小的语法单位组合而成的,本身又可以成为更大语法单位的组成部分。 语法结构的每个层次一般直接包含比它小的两个语法单位,这两个小的语法单位就是直接成分。每一个直接成分又可以包含更小的直接成分。 例如: 我们进行社会调查 |主||____谓_______| |_述 | 宾____ | |_定)中 | 层次分析法就是逐层将一个句法单位(联合短语等由多个直接成分组成的短语除外)切分成两个直接成分,直到不能再切分为止的句子分析方法。 层次分析法的分析过程主要包括两个步骤:第一步是切分结构层次,第二步是确定结构关系。 1.优势 第一:可以层次鲜明地揭示出语言结构的内部层次。句子的层次性是一种客观存在,分析句子的层次,则是为了清楚地显示语义内容,层次分析法使得结构层次条理,语义脉落清晰、分明,弥补了中心词分析法的不足,例子:书本P80 P81(1)这种方法很解决问题 第二:层次分析法的适用面比较广。用这种分析法作业,就语音单位讲,小的可以用来分析合成词,大的也可以用来分析句群,且能符合各级语法单位的自

自顶向下的语法分析(实验报告一)

武汉轻工大学 编译原理实验报告 姓名朱春桃 院(系)数学与计算机学院 班级软件工程1203 学号 1205110605 指导教师李禹生 2014 年11 月10 日

一、实验目的 完成自顶向下语法分析算法的程序设计。 二、实验内容 设计、调试并测试自顶向下语法分析算法程序。 三、设计思路 根据课堂讲授的自顶向下语法分析方法,可以根据递归下降子程序方法设计语法分析程序,也可以根据LL(1)算法设计语法分析程序,针对文法:G[E] E→E+T | T T→T*F | F F→( E ) | i (1)由于文法G[E]不满足LL(1)文法条件,需要进行必要的等价文法变换。变换后的等价文法为: H[E] E→TA A→+TA | ε T→FB B→*FB | ε F→( E ) | i (2)等价文法H[E]不含左递归,可以证明文法H[E]满足LL(1)文法条件(3)根据递归下降子程序方法设计语法分析程序 ①递归程序清单 ②调试过程说明 ③测试语句设计 ④测试结果列表 ⑤测试结论分析 (4)根据LL(1)算法设计语法分析程序 ①预测分析表 ②预测分析程序清单 ③调试过程说明 ④测试语句设计 ⑤测试结果列表

⑥测试结论分析 四、程序清单 /* E->TA, A->+TA|ε, T->FB, B->*FB|ε, F->i|(E). */ #include void E(char str[80],int &i,int &err or); void A(char str[80],int &i,int &error); void T(char str[80],int &i,int &error); void B(char str[80],int &i,int &error); void F(char str[80],int &i,int &error); void main() { int i=0,j=0,error=0; char str[80]; printf("请输入字符串('#'为结束字符):"); while ((str[j]=getchar())!='#') j++; str[j]='#'; E(str,i,error); if(error) printf("error\n"); else printf("right\n"); } void E(char str[80],int &i,int &error) { printf("E->TA\n"); T(str,i,error); A(str,i,error); } void A(char str[80],int &i,int &error) { if(str[i]=='+') { printf("A->+TA|ε\n"); i++; T(str,i,error); A(str,i,error);

编译原理词法分析和语法分析报告 代码(C语言版)

词法分析 三、词法分析程序的算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 3.1 主程序示意图: 扫描子程序主要部分流程图 其他

词法分析程序的C语言程序源代码: // 词法分析函数: void scan() // 数据传递: 形参fp接收指向文本文件头的文件指针; // 全局变量buffer与line对应保存源文件字符及其行号,char_num保存字符总数。 void scan() { char ch; int flag,j=0,i=-1; while(!feof(fp1)) { ch=fgetc(fp1); flag=judge(ch); printf("%c",ch);//显示打开的文件 if(flag==1||flag==2||flag==3) {i++;buffer[i]=ch;line[i]=row;} else if(flag==4) {i++;buffer[i]='?';line[i]=row;} else if(flag==5) {i++;buffer[i]='~';row++;} else if(flag==7) continue; else cout<<"\n请注意,第"<

现代汉语语法分析:第一节 层次分析

第一节层次分析 1.1句法结构的层次性和层次分析 1、句法结构的层次性: 一个句子或是句法格式表面上看是线性排列,内部有一种层次的透景。(松紧程度不一样) 如:他刚来。(这三个词内部的松紧程度不一样。“刚”和“来”关系紧密,“他”和“刚”关系疏远,“刚”和“来”先组合,再和“他”组合) 2、结构的三个特点: *整体性(作为一个结构,一定具有整体性。) *可分割性(作为一个结构,一定可以被分割成多个部分。) *有规则性(一个结构作为一个整体,一定是由好几部分组成的,这好几个部分组合的时候,它是按照一定规则组成的。) 如:形声字:形+声,再+字(“形声字”这个词,不是一些语素随便凑成,而是按一定规则组成的。)【有两个以上语素组合时,其内部一定有层次结构。】 *音节也是有层次的,如:天[tian55] 这个音节也是有层次的: 声调——超音段成分 声母+韵母——音段成分 韵母——韵头+韵部(韵基) 韵基——韵腹(主要元音)+韵尾 【由此,我们可以说的宽泛一点,这叫语言的层次构造,这种构造,是语言的基本特性。不论是语音、词汇、句子都有这样的层析构造问题。】 3、层次分析:在分析一个句子,或是句法结构的时候,将句法构造的层次性考虑进来,并按其构造层次,逐层进行分析,在分析时,指出每一层面的直接组成成分,并说明直接组成成分之间的关系。这种分析手段就是层次分析。 如:他刚来 “他刚来”的直接组成成分:他+刚来主谓 谓语“刚来”的直接组成成分:刚+来状中 4、层次分析包含两个内容: 二他所写的文章怎么切分? 切分:怎样断句 定性: 层次分析的三种主要表示方法:从小到大、框式、树型图: 5、怎么切分? 同一结构如何切分 例句:他所参观的工厂。 名词性偏正结构定中 他所参观? 他所参观的工厂 他所参观的工厂会导致他和工厂有领属关系 所以他所参观的工厂 他所参观怎么分析? 他参观

语法分析方法

语法分析方法 句子成分分析法 句子成分分析法也叫做中心词分析法。 句子成分分析法的总的特 点是:认定语法分析就是分析一个句子(单句)的句子成分。分析的过程是:(1)先看全句的主要成分,哪个是主语,哪个是谓语;(2)再看充当谓语的动词是不是及物动词,以决定后面是否有连带成分宾语;(3)最后指出附加在主语、宾语之前、谓语之后的所有附加成分句子成分分析法的作用 句子成分分析法在汉语语法研究和语法教学中起过积极的作用。在其他分析方法借鉴、运用到汉语语法研究中来之前,就是靠它建立了汉语语法学,普及了语法知识。句子成分分析法 “ ” 这样,对汉语来说,光是分析层次,远远不足以说明某一语言片段的特征,因此,汉语中运用层次分析法既要讲切分,又要讲定性。 层次分析法的作用 由于层次分析法符合语言的语法构造特点,因此它在语法研究中能起较好的作用。具体表现如下: (1)层次分析法的适用面比较广。它既可以用来分析单句的结构,也可以用来分析复句的结构,还可以用来分析合成词的结构。 (2)可以更好地分化歧义句式。例如上文的“这张照片放大了一点儿”是个歧义句,句子成分分析法不能加以分化,但层次分析法可以很好地加以分化。

(3)可以把语法研究引向深入,更好地揭示语法规律。例如,汉语中动词单独作谓语不自由,到很大的限制,这正是通过层次分析法所获得的一条语法规律。运用层次分析法,不仅要考虑从什么地方切分,而且还要考虑为什么从这个地方切分,这就把语法研究引向了深入。 层次分析法的局限性 层次分析法也有它的局限性。它只能揭示句子内部的构造层次和显形的语法关系,不能揭示句法结构内部的隐性语法关系。例如: 山上架着炮。 门外修着马路。 “山上架着炮”是一个有歧义的句子,它即可以表示(A)“山上有炮”的意思,也可以表示 黑板上写着字。→字写在黑板上。 墙上挂着画。→墙上挂着画。 门上贴着对联。→对联贴在门上。 上述情况表明,[A]式和[C]式之间有变换关系,[A]式可以变换[C]式。 (B)式和(D)式之间的变换 表示(B)义的[B]式“NPL + V + 着+ NP ”可以跟“NPL + 正在+ V + NP”句式(我们把它记为[D]式)相联系。例如: [B] →[D] 院子里演着梆子戏。院子里正在演梆子戏。

编译原理语法分析程序设计分析法

1.实验目的:掌握LL(1)分析法的基本原理,掌握LL(1)分析表的构造方法,掌握LL(1) 驱动程序的构造方法。 2.实验要求:实现LR分析法(P147,例)或预测分析法(P121,例)。 3.实验环境:一台配置为1G的XP操作系统的PC机;Visual C++. 4.实验原理:编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语 法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该 语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单 位。编译程序的语法规则可用上下文无关文法来刻画。 语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法 的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想 是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生 式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。 自顶向下带递归语法分析:1、首先对所以的生成式消除左递归、提取公共左因子 2、在源程序里建立一个字符串数组,将所有的生成式都存在这个数组中。 3、给每个非终结符写一个带递归的匹配函数,其中起始符的函数写在main函数里。 这些函数对生成式右边从左向右扫描,若是终结符直接进行匹配,匹配失败,则调用出错函 数。如果是非终结符则调用相应的非终结符函数。 4、对输入的符号串进行扫描,从起始符的生成式开始。如果匹配成功某个非终结符 生成式右边的首个终结符,则将这个生成式输出。匹配过程中,应该出现的非终结符没有出 现,则出错处理。 5.软件设计与编程:对应源程序代码: #include <> #include <> #include using namespace std; struct Node1 { char vn; char vt; char s[10]; }MAP[20]; n==vn && MAP[i].vt==vt) {return MAP[i].s;} } return "error";} char * Analyse(char * word) { char p,action[10],output[10]; int i=1,j,l=strlen(word),k=0,l_act,m; while(!()) {();} ('#'); (start); printf("___________________________________________________________\n"); printf("\n 对符号串%s的分析过程\n",word); printf(" -----------------------------------------------------------------------\n

第五章 自上而下语法分析

第五章自上而下语法分析 1、教学目的及要求: 本章介绍编译程序的第二个阶段语法分析的设计方法和实现原理,包括自上而下分析的无回朔的递归下降分析、 LL(1)分析法。要求理解递归下降分析、LL(1)文法的基本概念;掌握无回朔的递归下降分析的设计和实现、LL(1)分析表的构造与分析方法。 ◇能够对一个给定的文法判断是否是LL(1)文法; ◇能构造预测分析表; ◇能用预测分析方法判断给定的输入符号串是否是该文法的句子; ◇能对某些非LL(1)文法做等价变换: ①消除左递归 ②提取左公共因子 可能会变成LL(1)文法。这样可扩大自顶向下分析方法的应用。 2、教学内容: 语法分析器的功能,自上而下语法分析(递归下降分析法,预测分析程序),LL(1)分析法,递归下降分析程序构造,预测分析程序。 3、教学重点: 递归下降子程序,预测分析表构造,LL(1)文法。 4、教学难点: 对一个文法如何判断是否是LL(1)文法,由于在判断 LL(1)文法时用到文法符号串的开始符号集合(FIRST集)和非终结符后跟符号集合(FOLLOW集)的计算,而一般学生往往因概念不清或不够细心对这两个集合的计算常常出错,导致判断和分析结果的错误。 5、课前思考 为了了解自顶向下(自上而下)分析的一般过程和问题,请学生首先回顾本章之前介绍的有关基本概念: ◇句子、句型和语言的定义是什么? ◇什么叫最左推导? ◇什么叫最右推导和规范推导? ◇什么叫确定的自顶向下语法分析?

◇自顶向下语法分析是从文法的开始符号出发,反复使用各种产生式,寻找与输入符号匹配的推导。 ◇确定的自顶向下语法分析中用的是哪种推导? ◇在确定的自顶向下语法分析过程中,当以同一个非终结符为左部的产生式有多个不同右部时,如何选择用哪个产生式的右部替换当前的非终结符? ◇确定的自顶向下语法分析对文法有何限制? 6、章节内容 第一节概述 第二节 LL(1)分析方法 第三节递归下降分析法 5.1 概述 LL分析法 确定的自上而下分析 自上而下分析递归下降分析法 语法分析不确定的自上而下分析——即带回溯的分析方法 算符优先分析 自下而上分析 LR分析 一、带回溯的自顶向下分析方法 是自顶向下分析的一般方法,即对任一输入符号串,试图用一切可能的办法,从树根结点(识别符号)出发,根据文法自上而下地为输入串建立一棵语法树,或者说,从识别符号开始,根据文法为输入串建立一个推导序列,这种分析过程本质上是一种试探过程,是反复使用不同规则谋求匹配输入串的过程。 例有文法G[S]:S→cAd,A→ab|a,输入串w=cad。其分析过程为带回溯的。 二、存在问题及解决办法 1、左递归问题: 自顶向下分析方法只有把规则排列得合适时才能正确工作,该方法不能处理具有左递归性文法,可采取某些算法消除左递归。 2、回溯问题:

现代汉语语法的五种分析方法

现代汉语语法的五种分析方法

现代汉语语法的五种分析方法 很有用,请好好学习之。 北语之声论坛专业精华转贴 现代汉语语法的五种分析方法是语法学基础里 很重要的一个内容,老师上课也会讲到,我在这 里把最简略的内容写在下面,希望能对本科生的专业课学习有所帮助 详细阐释中心词分析法、层次分析、变换分析法、语义特征分析法和语义指向分析的具体内涵:一. 中心词分析法: 分析要点: 1.分析的对象是单句; 2.认为句子又六大成分组成——主语、谓语(或述语)、宾语、补足语、形容词附加语(即定语)和副词性附加语(即状语和补语)。 这六种成分分为三个级别:主语、谓语(或述语)是主要成分,宾语、补足语是连 带成分,形容词附加语和副词性附加语是附加成分; 3.作为句子成分的只能是词; 4.分析时,先找出全句的中心词作为主语和谓

语,让其他成分分别依附于它们; 5.分析步骤是,先分清句子的主要成分,再决定有无连带成分,最后指出附加成分。 标记: 一般用║来分隔主语部分和谓语部分,用══标注主语,用——标注谓语,用~~~~~~标注宾语,用()标注定语,用[ ]标注状语,用< >标注补语。 作用: 因其清晰明了得显示了句子的主干,可以一下子把握住一个句子的脉络,适合于中小学语文教学,对于推动汉语教学语法的发展作出了很大贡献。 还可以分化一些歧义句式。比如:我们五个人一组。 (1)我们║五个人一组。(2)我们五个人║一组。 总结:中心词分析法可以分化一些由于某些词或词组在句子中可以做不同的句子成分而造成的歧义关系。 局限性: 1.在一个层面上分析句子,

层次性不强; 2.对于一些否定句和带有修饰成分的句子,往往难以划分; 如:我们不走。≠我们走。 封建思想必须清除。≠思想清除。 3. 一些由于句子的层次关系 不同而造成的歧义句子无法分析; 如:照片放大了一点儿。咬死了猎人的狗。 二. 层次分析: 含义: 在分析一个句子或句法结构时,将句法构造的层次性考虑进来,并按其构造层次逐层进行分析,在分析时,指出每一层面的直接组成成分,这种分析就叫层次分析。 朱德熙先生认为,层次分析不能简单地将其看作是一种分析方法,而是应当看做一种分析原则,是必须遵守的。(可以说说为什么) 层次分析实际包含两部分内容:一是切分,一是定性。切分,是解决一个结构的直接组成成分到底是哪些;而定性,是解决切分所得的直接组成成分之间在句法上是什么关系。

编译原理 第四章自顶向下语法分析法

第四章 自顶向下语法分析方法 语法分析是编译过程的核心部分。语法分析的任务是:按照文法,从源程序符号串中识别出各类语法成份,同时进行语法检查,为语义分析和代码生成作准备。执行语法分析任务的程序称为分析程序。也称为语法分析器,它是编译程序的主要子程序之一。 在第二章中我们已经介绍过。通过语法分析可建立起相应的语法树。按语法树的建立方法,我们将语法分析方法分成两大类,即自顶向下分析和自底向上分析。下面,我们先介绍自顶向下分析。 本章重点:自顶向下分析、LL (1)分析 第一节 自顶向下分析方法 一、带回溯的自顶向下分析算法 这是自顶向下分析的一般方法,即对任一输入符号串,试图用一切可能的方法,从识别符号出发,根据文法自上而下地为输入串建立一棵语法树。 下面用一个简单例子来说明这种过程: 假定有文法G[S]: S→c Ad A →ab|a 以及输入串w=cad 为了自上而下地构造w 的语法树,我们首先按文法的识别符号产生根结点S ,并让指示器IP 指 c S 的规则仅有一条)把这棵树发展为 ( a ) (b ) (c ) 图3-1-1 图3-1-1a 。我们希望用S 的子结从左至右匹配整个输入串w 。首先,此树的最左子结是终结符c 为标志的子结,它和输入串的第一个符号相匹配。于是,我们就把IP 调整为指向下一输入符号a ,并让第二个子结A 去进行匹配,非终结符A 有二个选择,我们试着用它的第一个选择去匹配输入串,于是把语法树发展为图3-1-1b 。子树A 的最左子结和IP 所指的符号相符,然后我们再把IP 调为指向下一符号d 并让A 的第二个子结进入工作。但A 的第二个子结为终结符号b ,与IP 当前指的符号d 不一致。因此,A 宣告失败。这意味着A 的第一个选择此刻不适用于构造w 的语法树。这时,我们应该回头(回溯)看A 是否还有别的选择。 为了实现回溯,我们一方面应把A 的第一个选择所生长的子树注销掉;另一方面,应把IP 恢复为进入A 时的原值,也就是让它重新指向第二输入符号a 。现在我们试探用A 的第二个选择,即考虑生成图3-1-1c 的语法树。 由于子树A 只有一个子结a ,而且,它和IP 所指的符号相一致,于是,A 完成了匹配任务。在A 获得匹配后,指示器指向下一个未被触及的符号d 。 在S 的第二子结A 完成匹配后,接着就轮到第三个子结d 进行工作。由于这个子结和最后一个输入符号相符,于是,我们完成了构造语法树的任务,证明了w 是文法G[ s]的一个句子。 上述自顶向下地为输入符号w 建立语法树的过程,实际上也是设法建立一个最左推导序列,以便通过一步步推导将输入串推导出来。很明显,对于输入串w 可以通过如下的推导过程将其推导出来:S ?CAd ?cad 所以用最左推导,是因为我们对输入串是自左向右扫描的,只有使用最左推导,才能保证按扫描顺序去匹配输入串。在上述推出符号串w 的过程中,由于出现在符号串中的非终结符号只有一个,因此,未明显地表现出最左推导的性质。 根据以上分析,不难编出程序来实现这种分析的算法。但是,上述这种自顶向下的分析算法存

现代汉语语法研究—试题精华版(含答案解析)

现代汉语语法研究—精华版 1、语法这—术语有哪几种含义? 答:语法这一术语有三种含义:(1)语法规律,例如:“汉语语法并不难掌握。”这里的“语法”是指客观存在的语法规律。(2)语法科学,例如:“语法研究语言结构的规律。”这里的语法指人对客观语法的认识。(3)语法教材或语法著作,例如:“这本语法教材写得不错。” 2、语法分析的基本方法是什么? 答:语法分析有两种基本的方法:一是把大类分成小类,例如把词分成名词、动词、形容词等等;一是把整体切分成部分,例如把句子分成主语、谓语等等。进一步要寻求分析出来的单位所涉及的种种关系,包括:语法单位与语法单位的关系,如主谓关系、述宾关系等等;语法单位与客观对象的关系,如施事、受事等等;语法单位与谈话人之间的关系,如陈述、疑问等等 3、什么是词类?为什么要给词分类? 答:词类指的是词在语言结构中表现出来的类别。语法上给词分类,为的是说明语句结构的规则,指明词的用法。 4、汉语划分词类的依据是什么? 答:对汉语的词进行分类,须以词的语法功能为依据。词的语法功能,是指词的组合能力,表现为:(1)能充当什

么句法结构成分,不能充当什么句法结构成分。例如名词经常作主宾语,介宾短语不能作主语。(2)能跟什么词组合,不能跟什么词组合,组合以后发生什么样的关系。例如名词前面可以加数量词,组合后发生偏正关系。名词的前面不能加“不”。 5、举例说明如何区分实词和虚词。 答:根据词能否作句法结构成分,可以把词分为实词和虚词两大类。能单独充当句法结构成分的是实词,例如“人、跑、红、马上”。不能单独充当句法结构成分的是虚词,例如“从、了、吗、和”。 6、举例说明如何区分名词、动词、形容词。 答:可以先用“不”测试,不能加“不”的是形容词。再用“很”测试,能加“很”的是形容词和心理动词;能带宾语的是动词。单音节动词的重叠式是AA,单音节形容词的重叠式是上A 或AA的;双音节动词是ABAB,形容词是AABB。名词主要作主宾语,也可以作定语,动词主要作谓语,形容词主要作定语和谓语。 7、实词包括哪些类别? 答:根据组合能力的不同可以把实词分为体词、谓词、加词三类。体词包括名词、数词和量词;谓词包括动词和形容词;加词包括区别词和副词。另外还有代替以上各类实词的代词。

__现代汉语语法研究层次分析法

第二讲层次分析法 2.1 句子成分分析及其局限 句子成分分析法又叫中心词分析发。要点大致如下: (一)以单句为分析对象。 (二)句子有六大成分——主语、述语(谓语)(主要成分);宾语、补足语(黎锦熙,如“他成了班长 ..”“他 们请我做报告 ...”)(连带成分);形容词性附加语(今天的定语)、副词性附加语(状语和补语)(附加成分)。 (三)句子成分原则上只能是词。 (四)分析手续:先找出全句主要成分主语和述语,再决定述语后有无连带成分宾语或补语,最后指出句中所有的附加成分。 句子成分分析发的优点:可以让人一下子把握住句子的脉络。在分析长句时,更能显示其优越性:(1)我国首升空的“神州-3号”模拟载人飞船经过264个小时在太空运行之后按照原先预定的时间安全、准确地返回原先计算好的我国西北某地区的地面。 句子成分分析法的局限性: 第一:离了枝叶,主干不成立或站不住,或不是原句子的意思。

(2)他贪图安逸。 (3)于福的老婆是小晴的娘.。 第二:离了枝叶,主干虽能成立,但意思发生了变化。 (4)我们都不懂。(我们懂) (5)祥林嫂死了当家人。(祥林嫂死了) (6)不合格的党员清除了。(党员清除了) 第三:不能有效分化歧义。 (7)照片放大了一点。(“放得不是很大”,“放得过于大了”) (8)我也去上海。 第四:不利于发现某些词语的用法特点。 (9)a.我们白白浪费了几个小时。*b.我们白浪费了几个小时。 2.2 句法构成的层次性 一个句子或句法结构总是按一定的句法规则一层一层地进行组合的。例如: (10)他刚到。 “刚”跟“他”不发生直接的关系,“刚”先跟“到”构成修饰关系,然后“刚到”一起再跟“他”构成主谓关系。这种构造特性一般称为“句法构造的层次性”。 2.3 关于层次分析法

编译原理-四章自顶向下语法分析法

第四章自顶向下语法分析方法 语法分析是编译过程的核心部分。语法分析的任务是:按照文法,从源 程序符号串中识别出各类语法成份,同时进行语法检查,为语义分析和代码生成作准备。执行语法分析任务的程序称为分析程序。也称为语法分析器,它是编译程序的主要子程序之一。 在第二章中我们已经介绍过。通过语法分析可建立起相应的语法树。按语法树的建立方法,我们将语法分析方法分成两大类,即自顶向下分析和自底向上分析。下面,我们先介绍自顶向下分析。 本章重点:自顶向下分析、LL(1)分析 第一节自顶向下分析方法 一、带回溯的自顶向下分析算法 这是自顶向下分析的一般方法,即对任一输入符号串,试图用一切可能的方法,从识别符号出发,根据文法自上而下地为输入串建立一棵语法树。 下面用一个简单例子来说明这种过程: 假定有文法G[S] : S—c A d A — ab|a 以及输入串w=cad 为了自上而下地构造w的语法树,我们首先按文法的识别符号产生根结点S, 并让指示器IP 指

向输入串的第一符号c。然后,用S的规则(此处左部为S的规则仅有一条)把这棵树发展为| (a) (b)(c) 图3-1-1 图3-1-1a。我们希望用S的子结从左至右匹配整个输入串w。首先,此树的最左子结是终结符c为标志的子结,它和输入串的第一个符号相匹配。于是,我们就把IP调整为指向下一输入符号a,并让第二个子结A去进行匹配,非终结符A有二个选择,我们试着用它的第一个选择去匹配输入串,于是把语法树发展为图3-1-1b。子树A的最左子结和IP所指的符号相符,然后我们再把IP调为指向下一符号d并让A的第二个子结进入工作。但A 的第二个子结为终结符号b,与IP当前指的符号d不一致。因此,A宣告失败。这意味着A的第一个选择此刻不适用于构造w的语法树。这时,我们应该回头(回溯)看A是否还有别的选择。 为了实现回溯,我们一方面应把A的第一个选择所生长的子树注销掉;另一方面,应把IP恢复为进入A时的原值,也就是让它重新指向第二输入符号a。现在我们试探用A的第二个选择,即考虑生成图3-1-1C的语法树。 由于子树A只有一个子结a,而且,它和IP所指的符号相一致,于是,A

现汉五种语法分析法

现汉五种语法分析法 现代汉语语法的五种分析方法是语法学基础里很重要的一个内容,老师上课也会讲到,我在这里把最简略的 内容写在下面,希望能对本科生的专业课学习有所帮助 详细阐释中心词分析法、层次分析、变换分析法、语义特征分析法和语义指向分析的具体内涵: 一. 中心词分析法: 分析要点: 1.分析的对象是单句; 2.认为句子又六大成分组成——主语、谓语(或述语)、宾语、补足语、形容词附加语(即定语)和副词性附加语(即状语和补语)。 这六种成分分为三个级别:主语、谓语(或述语)是主要成分,宾语、补足语是连 带成分,形容词附加语和副词性附加语是附加成分; 3.作为句子成分的只能是词; 4.分析时,先找出全句的中心词作为主语和谓语,让其他成分分别依附于它们; 5.分析步骤是,先分清句子的主要成分,再决定有无连带成分,最后指出附加成分。 标记: 一般用║来分隔主语部分和谓语部分,用══标注主语,用——标注谓语,用~~~~~~标注宾语,用()标注定语,用[ ]标注状语,用< >标注补语。 作用: 因其清晰明了得显示了句子的主干,可以一下子把握住一个句子的脉络,适合于中小学语文教学,对于推动汉语教学语法的发展作出了很大贡献。 还可以分化一些歧义句式。比如:我们五个人一组。 (1)我们║五个人一组。 (2)我们五个人║一组。 总结:中心词分析法可以分化一些由于某些词或词组在句子中可以做不同的句子成分而造成的歧义关系。局限性: 1.在一个层面上分析句子,层次性不强; 2.对于一些否定句和带有修饰成分的句子,往往难以划分; 如:我们不走。≠我们走。 封建思想必须清除。≠思想清除。 3. 一些由于句子的层次关系不同而造成的歧义句子无法分析; 如:照片放大了一点儿。咬死了猎人的狗。 二. 层次分析: 含义: 在分析一个句子或句法结构时,将句法构造的层次性考虑进来,并按其构造层次逐层进行分析,在分析时,指出每一层面的直接组成成分,这种分析就叫层次分析。 朱德熙先生认为,层次分析不能简单地将其看作是一种分析方法,而是应当看做一种分析原则,是必须遵守的。(可以说说为什么) 层次分析实际包含两部分内容:一是切分,一是定性。切分,是解决一个结构的直接组成成分到底是哪些;而定性,是解决切分所得的直接组成成分之间在句法上是什么关系。

编译原理词法分析和语法分析

词法分析 一、实验目的 设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。 二、实验要求 2.1 待分析的简单的词法 (1)关键字: begin if then while do end 所有的关键字都是小写。 (2)运算符和界符 := + - * / < <= <> > >= = ; ( ) # (3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义: ID = letter (letter | digit)* NUM = digit digit* (4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 2.2 各种单词符号对应的种别码: 表2.1 各种单词符号对应的种别码 2.3 词法分析程序的功能: 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。 其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。 例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列: (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)…… 三、词法分析程序的算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 3.1 主程序示意图:

主程序示意图如图3-1所示。其中初始包括以下两个方面: ⑴关键字表的初值。 关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下: Char *rwtab[6] = {“begin”, “if”, “then”, “while”, “do”, “end”,}; 图3-1 (2)程序中需要用到的主要变量为syn,token和sum 3.2 扫描子程序的算法思想: 首先设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn用来存放单词符号的种别码。扫描子程序主要部分流程如图3-2所示。

现代汉语语法分析

变化分析是通过移位、添加、删除、 法结构之间的关系和变换规则的分析方法。变换分析着眼于句法 返回结构的外部分析,考察具有内在联系的不同句法结构之间的联系。 例如: A、台上坐着主席团 B、台上演着梆子戏 C、山上架着炮 三个例句包含的词类相同(处所名词+动词+助词+名词),排 列顺序相同,内部层次关系相同,但是A句表示静态意义(台上有 主席团)、B句表示动态意义(梆子戏正在上演)、C句既可表示 静态意义(山上有炮),也可表示动态意义(山上正在架炮)。 下面我们通过变换分析法分析三个句子。 A句可以变换为“主席团坐在台上”。类似的例子如: 门口站着人—→人站在门口床上躺着人—→人 躺在床上 黑板上写着字—→字写在黑板上墙上挂着画—→画 挂在墙上 B句可以变换为“台上正在演梆子戏”。类似的例子如: 外面下着大雨—→外面正在下大雨操场上放着电影 —→操场上正在放电影 教室里上着课—→教室里正在上课隔壁打着电话— →隔壁正在打电话 C句既可以按照A句模式变换,也可以按照B句模式变换。 山上架着炮—→炮架在山上/山上正在架炮 类似的例子如:院墙外修着马路—→马路修在院墙外/院墙外 正在修马路 通过变换分析,不但将内部层次关系相同的“台上坐着主席 团”、“台上演着梆子戏”、“山上架着炮”区别开来,而且分化 了类似“山上架着炮”的歧义。

2、语义特征分析 语义特征分析是分析和概括同一句式中处于相同位置上的词所共有的语义特征的分析方法。例如: A 类: 他赠了幅国画给我—→他赠给了我一幅国画 学校奖了三千元给他—→学校奖给了他三千元 B 类: 我买了斤香蕉给他—→*我买给了他一斤香蕉 我要了个名额给他—→*我要给了他一个名额 A 类句子与 B 类句子都是连谓句,内部层次结构相同,但表达的语义不同: A 类句子包含两个动作,但说的是同一件事情(“赠国画”和“给我”是国画由他转移到我的过程)。 B 类句子也包含两个动作,但说的彼此分离的两件事情(“我买了斤香蕉”和“给他”互相分离的两个过程)。 A 类句子与 B 类句子的不同关键在于动词语义特征上的差别。 A 类句子中的“赠、奖”具有“给予”的语义特征,而没有“取得”的语义特征。B 类句子中的动词“买、要”具有“取得”的语义特征,而没有“给予”的语义特征。 返回 3、语义指向分析 语义指向是指句法结构中的某一成分在语义上指向相关的另一个成分。 语义指向分析就是通过分析句中某一成分的语义指向来解释和说明某一语法现象的分析方法。 通过语义指向分析,可以把一个狭义同构的句式分化成语义不同的句式。 例如,同为“动词+形容词+了”的述补结构,其补语的语义指向各不相同。 砍光了(补语指向“砍”的受事,“树砍光了”) 砍累了(补语指向“砍”的施事,“我砍累了”) 砍快了(补语指向“砍”这一动作的本身, “你砍快了,得慢返回

第二讲__现代汉语语法研究层次分析法

第二讲__现代汉语语法研究层次分析法

第二讲层次分析法 2.1 句子成分分析及其局限 句子成分分析法又叫中心词分析发。要点大致如下: (一)以单句为分析对象。 (二)句子有六大成分——主语、述语(谓语)(主要成分);宾语、补足语(黎锦熙,如“他成了班长 ..”“他 们请我做报告 ...”)(连带成分);形容词性附加语(今天的定语)、副词性附加语(状语和补语)(附加成分)。 (三)句子成分原则上只能是词。 (四)分析手续:先找出全句主要成分主语和述语,再决定述语后有无连带成分宾语或补语,最后指出句中所有的附加成分。 句子成分分析发的优点:可以让人一下子把握住句子的脉络。在分析长句时,更能显示其优越性:(1)我国首升空的“神州-3号”模拟载人飞船经过264个小时在太空运行之后按照原先预定的时间安

全、准确地返回原先计算好的我国西北某地区的地面。 句子成分分析法的局限性: 第一:离了枝叶,主干不成立或站不住,或不是原句子的意思。 (2)他贪图安逸。 (3)于福的老婆是小晴的娘.。 第二:离了枝叶,主干虽能成立,但意思发生了变化。 (4)我们都不懂。(我们懂) (5)祥林嫂死了当家人。(祥林嫂死了) (6)不合格的党员清除了。(党员清除了) 第三:不能有效分化歧义。 (7)照片放大了一点。(“放得不是很大”,“放得过于大了”) (8)我也去上海。 第四:不利于发现某些词语的用法特点。 (9)a.我们白白浪费了几个小时。*b.我们白浪费了几个小时。 2.2 句法构成的层次性 一个句子或句法结构总是按一定的句法规则一层一层地进行组合的。例如: (10)他刚到。

实验二自顶向下语法分析--递归下降法

实验二递归下降法判断算术表达式的正确性 学时数:2-4 一、实验目的和要求 1、用递归下降技术实现语法分析器; 2、理解自顶向下语法分析方法; 3、熟练掌握预测分析程序的构造方法。 二、实验内容 算术表达式的文法是G[E]: E→E+T| T T→T*F| F F→(E)| i 用递归下降分析法按文法G[E]对算术表达式(包括+、*、()的算术表达式)进行语法分析,判断该表达式是否正确。 三、实验步骤 1、准备:阅读课本有关章节,将上述算术表达式的文法改造成LL(1)文法(即消除左递 归和提取左公因子);按P87例4.12编写程序。 2、上机调试,发现错误,分析错误,再修改完善。 四、测试要求 1、为降低难度,表达式中不含变量(只含单个无符号整数或i); 2、如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好); 3、测试用的表达式建议事先放在文本文件中,一行存放一个表达式,以分号结束。而 语法分析程序的输出结果写在另一个文本文件中; 4、选作:对学有余力的同学,可增加功能:当判断一个表达式正确时,输出计算结果。 5、程序输入/输出示例: 如参考C语言的运算符。输入如下表达式(以分号为结束)和输出结果: (a)1; 或 i; 输出:正确 (b)1+2; 或 i+i; 输出:正确 (c)(1+2)*3+4-(5+6*7); 或 (i+i)*i+i-(i+i*i); 输出:正确 (d)((1+2)*3+4 或 ((i+i)*i+i; 输出:错误,缺少右括号 (e)1+2+3+(*4/5) 或 i+i+i+(*4/5); 输出:错误

五、实验报告要求 1、写出修改后LL(1)文法 2、通过对核心代码做注释或通过程序流程图的方式说明递归下降分析程序的实现思想。 3、写出调试程序出现的问题及解决的方法。 4、给出测试的结果。 六、思考(选作) 文法G[E]所构造算术表达式只包含+和*。请修改文法和程序,使得该语法程序可判断包含减号和除号的算术表达式的正确性。 [实验指导] 将文法G[E]改造为LL(1)文法如下: G’[E]: E → TE’ E’→ +TE’| ε T → FT’ T’→ *FT’|ε F → (E)| i [补充说明] 预测分析法分析程序可以从网上下载,但要求: (1)理解该程序,在实验报告中说明该程序所使用的文法及修改后的文法; (2)实验报告要求同上

分布分析法和层次分析法

第三讲汉语语法的研究方法(一) ——分布分析法及层次分析法 第一节分布分析法 “的”在现代汉语中的使用频率非常高。我们在平时的语言运用中区分定语、状语和补语后面的“d?”的不同,前者写为“的”,状语后写为“地”,后者写为“得”。这是书面上的不同,是人为区分的,并不反映语言事实。其原因有三:1.读音完全一样; 2.把本来相同的语言成分写成不同的形式,如两个“很出色地/的”; 3.把本来不同的语言成分(不同功能的)写成了相同的形式,如“悄悄地消失了”和“慢慢地消失了”。前者只能做状语,而后者还能做谓语。 一、“的”分合的理据 有人认为“的”就是只有一个,可是朱德熙先生将其分为三个,分别是副词性的、状态性的和名词性的,分别用“的1”“的2”“的3”表示。 朱德熙先生之所以主张分为不同的“的”,是因为注意到不同的“X”加上“的”之后形成的格式的功能不同。比如:偏偏的、渐渐的;静静的,嫩嫩的;木头的,写的。如果“的”是同一个,那么为什么会有这种功能上的差别?那么是不是也可以采用把“X的”的不同,归结为其中“X”的不同的呢?也就是说,从理论上讲可以有这两种不同的研究思路。 现在大多数都主张分为不同的“的”的理据有三个:

○“的”是个虚语言成分,只表示抽象的语法意义,又是后置定位的语言成分,其性质取决于“X+的”以后的性质; ○同一个“X”加上“的”可以形成不同的“X的”,有许多兼类的现象,如“突然”,可以做状语也可以做定语; ○不同性质的“X”加上“的”可以形成相同的“X的”,如“木头的”、“红的”、“写的”、“我提出的”、“大型的”。 二、研究方法 作者自己指出,“本文分析‘的’字的基本方法是比较不带‘的’的语法单位——假定为X——跟加上‘的’之后的格式‘X的’在语法功能上的差别,由此分离出‘的’性质来。” 其实作者在这里贯彻的是结构主义的语法分析方法,具体的表现是:首先,根据对立原则,即将加“的”后形成的“X的”之间的对立归结为“的”的对立,从而区分为不同的“的”;其次,成分之间的对立和同一,如“突然”、“共同”等,通过它们的分布和功能来考察。 三、“的”的性质和作用 根据结构主义的研究方法,文章“的”字分析为不同的单个“语素”,至于“X 的”是词,还是比词大的单位,文章没有说明,同时也没有说明“的”是词尾还是虚词。“的”的性质: ○虚语言成分(不表示实在意义,指标是抽象的语法意义); ○是黏着的,不能单说; ○是一个定位的语言成分,跟别的语言成分组合位置是固定的,而且总是后置的。

相关主题
文本预览
相关文档 最新文档