文档库 最新最全的文档下载
当前位置:文档库 › Module3My first ride on a train

Module3My first ride on a train

Module3My first ride on a train
Module3My first ride on a train

M o d u l e3My first ride on a train

Period five Cultural corner

:白建梅

学习目标;

1.学习一些新单词和短语

2.了解磁悬浮列车。

学习对象:

单词:downtown, vacuum, rail, ceremony, track, sounenior

短语:at a speed of

句式:Travelling at a speed of over 400 kilometres, per hour, the train can complete the 30-kilometre journey in eight minutes.

学习步骤

1:study the new words:

downtown, vacuum, rail, ceremony ,track, souvenior

3:Read the passage again and answer the questions.

a: what are main differences between the Magnetically levitated train and an ordinary train?

b: What are the advantages of travelling on a Maglev train ?

c.fill in the blanks according to the text.

The fastest train in the world ,the Transrapid Maglev,1 between Shanghai’s Pudong Airport and Longyang Station in downtown Shanghai. 2 at a speed of over 400 kilometres per hour, the train can 3 the 30—kilometre journey in eight minutes.

Maglev 4 “magnectically levitated”. The transrapid Maglev is the world’s first high-speed train 5 Meglectic levitation technology. Magnectically levitated trains travel in a in a vacuum between two magnets.. The are no rails 6 no noise. They

travel very fast and they use 7 energy.

On December 31,2002, Premier Zhu Rongji and German chancellor attended the 8 ceremony of the train service. Both leaders took the train to Pudong Airport.

On November 12,2003, the Maglev 9 a speed of 501 kilometres per hour on the track between Longyang Station and Pudong, a new world 10 speed for a train.

at a speed of 以…速度 at top/full speed 以最快速度/以全速

4.Exercise:

Translate fallowing sentences

1.这辆车正在以每小时100米的速度行驶。

2.好几千人参加了开幕式。

3.就在一个月之前,我访问过那所大学。

4.我住在离济南不远的淄博市。

5.你介意帮助我吗?

6.那辆被遗弃的小汽车是中国制造的。

7.前天我们举办了一场篮球赛。

8.公共汽车是一种交通工具。

first集和follow集生成算法模拟

课程设计(论文)任务书 软件学院学院软件测试专业 1 班 一、课程设计(论文)题目 first集和follow集生成算法模拟 二、课程设计(论文)工作自2015 年 6 月16 日起至2013 年6 月 19 日止。 三、课程设计(论文) 地点: 软件学院实训中心 四、课程设计(论文)内容要求: 1.本课程设计的目的 进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时,强调好的程序设计风格,并综合使用程序设计语言、数据结构和编译原理的知识, 熟悉使用开发工具VC /JA V A/C#/.NET 。 2.课程设计的任务及要求 1)课程设计任务: 设计一个由正规文法生成First集和Follow集并进行简化的算法动态模拟。 2)创新要求: 动态模拟算法的基本功能是: (1)输入一个文法G (2)输出由文法G构造的FIRST集算法 (3)输出FIRST算法 (4)输出由文法G构造的FOLLOW集算法 (5)输出FOLLOW集 3)课程设计论文编写要求 (1)课程设计任务及要求 (2)设计思路--工作原理、功能规划 (3)详细设计---数据分析、算法思路、功能实现(含程序流程图、主要代码及注释)、界面等。 (4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。

(5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。 (6)报告按规定排版打印,要求装订平整,否则要求返工; (7)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录(代码及相关图片) (8)严禁抄袭,如有发现,按不及格处理。 4)课程设计评分标准: (1)学习态度:20分; (2)系统设计:20分; (3)编程调试:20分; (4)回答问题:20分; (5)论文撰写:20分。 5)参考文献: (1)张素琴,吕映芝. 编译原理[M]., 清华大学出版社 (2)蒋立源、康慕宁等,编译原理(第2版)[M],西安:西北工业大学出版社 6)课程设计进度安排 1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料 2.程序模块设计分析阶段(4学时):程序总体设计、详细设计 3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试 4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文 学生签名: 2015 年 6 月19 日 课程设计(论文)评审意见 (1)学习态度(20分):优()、良()、中()、一般()、差();(2)系统设计(20分):优()、良()、中()、一般()、差();(3)编程调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(20分):优()、良()、中()、一般()、差(); 评阅人:职称:讲师 2015 年 6 月19 日

【8A版】编译原理实验报告FIRST集和FOLLOW集

编译原理实验报告 实验名称计算first集合和follow集合实验时间 院系计算机科学与技术 班级软件工程1班 学号 姓名

输入:任意的上下文无关文法。 输出:所输入的上下文无关文法一切非终结符的first 集合和follow 集合。 2. 实验原理 设文法G[S]=(V N ,V T ,P ,S ),则首字符集为: FIRST (α)={a|α?* a β,a ∈V T ,α,β∈V G }。 若α?* ε,ε∈FIRST (α)。 由定义可以看出,FIRST (α)是指符号串α能够推导出的所有符号串中处于串首的终结符号组成的集合。所以FIRST 集也称为首符号集。 设α=G 1G 2…G n ,FIRST (α)可按下列方法求得: 令FIRST (α)=Φ,i =1; (1) 若G i ∈V T ,则G i ∈FIRST (α); (2) 若G i ∈V N ; ①若ε?FIRST (G i ),则FIRST (G i )∈FIRST (α); ②若ε∈FIRST (G i ),则FIRST (G i )-{ε}∈FIRST (α); (3) i =i+1,重复(1)、(2),直到G i ∈V T ,(i =2,3,…,n )或G i ∈V N 且若ε?FIRST (G i )或i>n 为止。 当一个文法中存在ε产生式时,例如,存在A →ε,只有知道哪些符号可以合法地出现在非终结符A 之后,才能知道是否选择A →ε产生式。这些合法地出现在非终结符A 之后的符号组成的集合被称为FOLLOW 集合。下面我们给出文法的FOLLOW 集的定义。 设文法G[S]=(V N ,V T ,P ,S ),则 FOLLOW (A )={a|S ?…Aa …,a ∈V T }。 若S ?* …A ,#∈FOLLOW (A )。 由定义可以看出,FOLLOW (A )是指在文法G[S]的所有句型中,紧跟在非终结符A 后的终结符号的集合。 FOLLOW 集可按下列方法求得: (1) 对于文法G[S]的开始符号S ,有#∈FOLLOW (S ); (2) 若文法G[S]中有形如B →GAy 的规则,其中G ,y ∈V G ,则FIRST (y )-{ε}∈FOLLOW (A ); (3) 若文法G[S]中有形如B →GA 的规则,或形如B →GAy 的规则且ε ∈FIRST (y ),其中G ,y ∈V G ,则FOLLOW (B )∈FOLLOW (A );

不定式与现在分词作宾语补足语的区别

不少英语语法书上认为英语中的感官动词如feel, hear, see, look at, listen to, notice, watch等后要跟复合宾语,即"宾语+宾语补足语"并举例说:I heard him speak.我听了他的发言句中的不带to的不定式speak表示已发过言了,表示一个完成的动作I heard him speaking.我听见他在说话句中的现在分词speaking表示"正在说话"笔者认为上述的解释是不正确的下面谈谈自己的一点肤浅见解,与同行们探讨 如果按上述I heard him speak.句中的解释,speak表示"一个完成的动作","讲过话了",在我听的时候,speak怎么会是一个完成的动作呢?按理可推,I heard her singing.能理解为说话的此刻她还在唱歌吗? 由此可见,"一个完成的动作"是对哪个时间参照点而言,如果是对说话的此刻而言,那么,当hear,feel,notice,watch等为过去时,不管是不带to的动词不定式,还是现在分词都表示"完成的动作" 如果hear,feel,notice,see,watch等为一般现在时或一般将来时,则不带to的不定式不可能是"一个完成的动作"如:We want to come and hear you play.能解释为说话的此刻,play是"一个已完成的动作(已演出过了)"吗? 在语言的运用中,实际上不带to的动词不定式表示整个活动(a complete activity, a complete action或a whole action),而现在分词表示正在进行的动作(an activity in progress)或者不管是不是全过程试比较: I saw him change the wheel of his car.我看见他在换汽车轮子(意味着我看到了整个动作过程) I saw him changing the wheel of his car.我看见他换汽车轮子(可能意味着我只看到动作过程的一部分) 又如:I saw him cross the road.是指"我看到他穿过马路的整个过程"(从离开人行道到另一侧的人行道),而I saw him crossing the road.则是指"我看到他正在穿越马路"再比较下列动

编译原理一点就通first follow LL()

1 编译原理 2013年11月28日 LL 的含义 -自左向右扫描分析输入符号串 -从识别符号开始生成句子的最左推导 LL(1):向前看一个输入符号,便能唯一确定当前应选择的规则LL(k):向前看k 个输入符号,才能唯一确定当前应选择的规则 4.2.3 LL(1)文法的判别 要构造确定的自顶向下分析程序要求描述文法必须是LL(1)文法 2 编译原理 2013年11月28日 同一非终结符有多个候选式时 引起回溯的原因 【例4.1】α=acb G[S]:S →aAb A →cd|c (1)候选式的终结首符号相同 (2)候选式的终结首符号相同 【例4.8】S →Aa A →a|

3 编译原理 2013年11月28日 1. FIRST 集 FIRST(α):从α可能推导出的所有开头终结符号或ε对于文法G 的所有非终结符的每个候选式α,其终结首符号集称为FIRST 集,定义如下: ε,则规定ε∈FIRST(α) 若α 【例】S →aAb A →cd|c a …,a ∈V T FIRST(α)={a|α FIRST(aAb )={a}FIRST(cd )={c}FIRST(c )={c} 【例】S →Aa A →a|ε FIRST(a )={a}FIRST(ε)= {ε}FIRST(Aa)={a} FIRST(S )={a}FIRST(A )={c} FIRST(S )={a}FIRST(A )={a, ε} 4 编译原理 2013年11月28日 (1)若α=a α′,且a ∈V T ,则a ∈FIRST(α); 例:FIRST(i)={i} FIRST(+TE')={+} E →TE'E'→+TE'|ε T →FT'T'→*FT'|ε F →(E)|i 构造FIRST 集的算法 (2)若α=X α′,X ∈V N ,且有产生式X →b …,则把b 加入到FIRST(α)中;例:FIRST(FT')={(,i} ??

编译原理实验报告记录FIRST集和FOLLOW集

编译原理实验报告记录FIRST集和FOLLOW集

————————————————————————————————作者:————————————————————————————————日期:

编译原理实验报告实验名称计算first集合和follow集合实验时间 院系计算机科学与技术 班级软件工程1班 学号 姓名

输入:任意的上下文无关文法。 输出:所输入的上下文无关文法一切非终结符的first 集合和follow 集合。 2. 实验原理 设文法G[S]=(V N ,V T ,P ,S ),则首字符集为: FIRST (α)={a | α?* a β,a ∈V T ,α,β∈V *}。 若α?* ε,ε∈FIRST (α)。 由定义可以看出,FIRST (α)是指符号串α能够推导出的所有符号串中处于串首的终结符号组成的集合。所以FIRST 集也称为首符号集。 设α=x 1x 2…x n ,FIRST (α)可按下列方法求得: 令FIRST (α)=Φ,i =1; (1) 若x i ∈V T ,则x i ∈FIRST (α); (2) 若x i ∈V N ; ① 若ε?FIRST (x i ),则FIRST (x i )∈FIRST (α); ② 若ε∈FIRST (x i ),则FIRST (x i )-{ε}∈FIRST (α); (3) i =i+1,重复(1)、(2),直到x i ∈V T ,(i =2,3,…,n )或x i ∈V N 且若ε?FIRST (x i )或i>n 为止。 当一个文法中存在ε产生式时,例如,存在A →ε,只有知道哪些符号可以合法地出现在非终结符A 之后,才能知道是否选择A →ε产生式。这些合法地出现在非终结符A 之后的符号组成的集合被称为FOLLOW 集合。下面我们给出文法的FOLLOW 集的定义。 设文法G[S]=(V N ,V T ,P ,S ),则 FOLLOW (A )={a | S ?… Aa …,a ∈V T }。 若S ?* …A ,#∈FOLLOW (A )。 由定义可以看出,FOLLOW (A )是指在文法G[S]的所有句型中,紧跟在非终结符A 后的终结符号的集合。 FOLLOW 集可按下列方法求得: (1) 对于文法G[S]的开始符号S ,有#∈FOLLOW (S ); (2) 若文法G[S]中有形如B →xAy 的规则,其中x ,y ∈V *,则FIRST (y )-{ε}∈FOLLOW (A ); (3) 若文法G[S]中有形如B →xA 的规则,或形如B →xAy 的规则且ε ∈FIRST (y ),其中x ,y ∈V *,则FOLLOW (B )∈FOLLOW (A );

分词作宾语补足语

分词 分词作宾语补足语。 1.现在分词和过去分词都可以作宾语补足语。 在5看(look at, see, watch, notice, observe);3使(make, let, have);2听(listen to, hear);1感觉(fell)。,此外find, catch, keep, have .I heard a girl crying next door. I heard someone knocking at the door. He kept me waiting for a long time. I saw Tom entering the room. I found my key lost. I found the boy beaten black and blue. He made himself understood. John will get his room painted. Exercises1: 1) I heard my name ________________ ( call). 2) His voice was too low to make himself ________________(hear) . 3) We found the eggs_________________( eat) by the snake. 4) You’d better have/get your hair ______________ ( cut). 5) I had my left arm________________(break) yesterday. ExercisesII: 141. She was glad to see her child well __________. A. take care of B. taken care of C. taken care D. taking care of 142. Why do you stand and watch the milk __________. A. boiling B. boiled C. from boiling D. having been boiled 143. I’ve heard him __________ about you often. A. spoke B. speaking C. speak D. to speak 144. Before he came to London, he had never heard a single English word __________. A. speaking B. spoken C. speak D. being spoken 145. Walking along the river, we heard someone __________ for help. A. shouting B. shout C. shouted D. having shouted 146. I held the little bird in my hand and felt its heart __________. A. jumping B. beating C. bumping D. knocking 147. ---“Do you smell anything unusual?” ---“Yes. I can smell something __________.” A. burning B. is burning C. having burnt D. burn 148. Why do you have the water __________ all the time? A. ran B. to be running C. running D. being running 149. Ellen was absent this morning because she had her tooth __________. A. filling B. having been filled C. filled D. full 150. I can’t ______ you running up and down all day long. A. permit B. let C. have D. allow 151. Is there anything you want from town? I’m going to get __________. A. those letters mailed B. mailed letters C. to mailed those letters D. those letters mail 152. The teacher got the students __________ all the words they didn’t know. A. looked up B. looking in C. to look up D. look at 153. What did the school master want __________ to the noisy children? A. doing B. to do C. done D. did

求first集和follow集

编译原理实验 实验名称:求first集和follow集姓名: 学号: 教师签字: 成绩:

一.实验目的: .掌握和了解first集和follow集的求解过程。 二.实验原理: 1.first集的求解:(1)若X∈Vt,则FIRST(X)={X}; (2)若X∈Vn,且有产生式X->a……,a∈Vt,则a∈FIRST(X); (3)若X∈Vn,X->@,则@∈FIRST(X) (4)若X,Y1,Y2,Y3,Y4…………Yn都∈Vn,而产生式X->Y1,Y2……Yn.当 Y1,Y2,Y3,Y4…………Yn都能=>@那么FIRST(X)=并集的 FIRST(Yi)-{@}(0<=i<=n) (5)若Yi=>@(i=1,2,3……),则FIRST(X)=并集的FIRST(Yi)-{@}并上{@} 2.follow集的求解:(1)若为文法开始符号S,则FOLLOW(S)={#} (2)若为文法A->aBb是一个产生式,则把FIRST(b)的非空元素加入 FOLLOW(B)中。如果b->@则把FOLLOW(A)也加入FOLLOW(B)中。三.实验代码 #include #include #include #include #include using namespace std; //********************* struct define //产生式 { char left; string right; }; //*************** int N,K1=0,K2=0; char B; struct define *p=new define[10]; //************************ bool find(char b) //查找是否有产生空的产生式 { int i; for(i=0;i

现在分词做宾语补足语

现在分词做宾语补足语 现在分词在句子中可用作宾语补足语,其结构为: 主语+谓语+宾语+现在分词(即宾语补足语)。使用此结构要特别注意: 句子中的宾语和宾语补足语在逻辑上是主动关系,并不是所有的动词都可以跟宾语加现在分词作宾语补足语。掌握现在分词作宾语补足语的结构要注意下面的五点。 一、感官动词+宾语+现在分词,现在分词做宾语补足语,表示动作正在进行。例如: He saw her working in the garden.他看见她正在花园里干活。 分析: “He”在句子中做主语,“saw”作谓语,“her”作宾语,划线部分在句子中作宾语补足语。请看下面的句子,working in the garden宾语补足语。 I heard a bell ring.我听见铃在响。 I could feel the wind blowing on my face.我能感觉到风吹着我的脸。 高中范围内,适用于“感官动词+宾语+现在分词”的结构,现在分词作宾语补足语常用的动词有: feel,find,hear,notice,observe,see,watch等。 在listen to和look at后面也可跟宾语+现在分词(即宾语补足语)。例如: Sometimes she would listen to him playing the saxophone.有时她会听他吹奏萨克斯管。 She looked at him waiting there.她瞧着他等在那里。 二、使役动词+宾语+现在分词,现在分词在句子中作宾语补足语。例如: His question has set me thinking.他的问题让我深思。

构造FIRST集和FOLLOW集的方法

构造FIRST集和FOLLOW集的方法 1、构造FIRST集的算法 (1) 对于G中的每个文法符号X,为求FIRST(X),反复应用如下规则,直到集合不再增大: ①若X∈V T,则FIRST(X)是{X} ②若X∈V N ,且X→aα(a∈V T ),则{ a } ? FIRST(X) X→ε,则{ε} ? FIRST(X) ③若X->Y1Y2…Y i-1 Y i…Y K∈P,Y1∈V N ,则 FIRST(Y1)-{ε} ? FIRST(X) 而对所有的j(1≤j ≤i-1), Y j∈V N,且Y j??ε,则令 FIRST(Y j)-{ε} ? FIRST(X) (1≤j ≤i) 特别,当ε∈FIRST(Y j) (1≤j ≤k)时,令ε∈FIRST(X) (2) 对文法G的任何符号串α=X1X2…X n构造集合FIRST(α) ①置FIRST(X1)-{ε} ? FIRST(α) ②若对任何1≤j≤i-1,ε∈FIRST(X j), 则FIRST(X i) -{ε} ? FIRST(α) 特别是,若所有的FIRST(X j)均含有ε,1≤j≤n,则{ε} ? FIRST(α)。 显然,若α=ε则FIRST(α)={ε}。 2、构造FOLLOW集的算法 对于G中的每一A∈V N,为构造FOLLOW(A),可反复使用如下的规则,直到每个FOLLOW集不再增大为止: ①对于文法的开始符号S,令# ∈FOLLOW(S)。 ②对于每一A→αBβ∈P, 令FIRST(β) - {ε} ? FOLLOW(B) 。 ③对于每一A→αB∈P, 或A→αBβ∈P,且ε∈FIRST(β), 则令FOLLOW(A) ? FOLLOW(B) 。

正规文法的First集合Follow集求解过程动态模拟-实验报告

华东交通大学 课程设计(论文)任务书 软件学院专业项目管理班级2005-4一、课程设计(论文)题目正规文法的First集合Follow集求解过程动态模拟 二、课程设计(论文)工作:自2008年6月23 日起至2008年 6 月27 日止。 三、课程设计(论文)的内容要求: 1、基本要求: 进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格,并综合使用程序设计语言、数据结构和编译原理的知识,熟悉使用开发工具VC 6.0 或其它软件编程工具。 为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目可根据自己的兴趣选题(须经老师审核),或从老师给定题目中选择完成(具体见编译原理课程设计题目要求)。 通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。

2、具体要求 设计一个由正规文法生成Fisrt集Follow集的动态过程模拟 动态模拟算法的基本功能是: ●输入一个正规文法; ●输出由文法构造的First集的算法; ●输出First集; ●输出由文法构造的Follow集的算法; ●输出Follow集; 学生签名: 2008 年 6 月 27 日 课程设计(论文)评阅意见 评阅人职称副教授 2008 年 6 月 27 日

目录 一、需求分析 (3) 二、总体设计 (4) 三、详细设计 (9) 四、课设小结 (12) 五、谢辞 (13) 六、参考文献 (14)

计算first集合和follow集合--编译原理

计算first 集合和follow 集合 姓名:彦清 学号:E10914127 一、实验目的 输入:任意的上下文无关文法。 输出:所输入的上下文无关文法一切非终结符的first 集合和follow 集合。 二、实验原理 设文法G[S]=(V N ,V T ,P ,S ),则首字符集为: FIRST (α)={a | α?* a β,a ∈V T ,α,β∈V *}。 若α?* ε,ε∈FIRST (α)。 由定义可以看出,FIRST (α)是指符号串α能够推导出的所有符号串中处 于串首的终结符号组成的集合。所以FIRST 集也称为首符号集。 设α=x 1x 2…x n ,FIRST (α)可按下列方法求得: 令FIRST (α)=Φ,i =1; (1) 若x i ∈V T ,则x i ∈FIRST (α); (2) 若x i ∈V N ; ① 若ε?FIRST (x i ),则FIRST (x i )∈FIRST (α); ② 若ε∈FIRST (x i ),则FIRST (x i )-{ε}∈FIRST (α); (3) i =i+1,重复(1)、(2),直到x i ∈V T ,(i =2,3,…,n )或x i ∈V N 且若ε?FIRST (x i )或i>n 为止。 当一个文法中存在ε产生式时,例如,存在A →ε,只有知道哪些符号可以 合法地出现在非终结符A 之后,才能知道是否选择A →ε产生式。这些合法地出现在非终结符A 之后的符号组成的集合被称为FOLLOW 集合。下面我们给出文法的FOLLOW 集的定义。 设文法G[S]=(V N ,V T ,P ,S ),则 FOLLOW (A )={a | S ?… Aa …,a ∈V T }。 若S ?* …A ,#∈FOLLOW (A )。 由定义可以看出,FOLLOW (A )是指在文法G[S]的所有句型中,紧跟在非 终结符A 后的终结符号的集合。 FOLLOW 集可按下列方法求得: (1) 对于文法G[S]的开始符号S ,有#∈FOLLOW (S ); (2) 若文法G[S]中有形如B →xAy 的规则,其中x ,y ∈V *,则FIRST (y )-{ε}∈FOLLOW (A ); (3) 若文法G[S]中有形如B →xA 的规则,或形如B →xAy 的规则且ε ∈FIRST (y ),其中x ,y ∈V *,则FOLLOW (B )∈FOLLOW (A ); 三、源程序 #include #include

(完整版)英语宾语补足语用法详解

Contents 英语宾语补足语用法详解 (2) 一、概念 (2) 二、何时用现在分词、何时用过去分词作主语(宾语)补足语 (2) 三、可以用分词作主语或宾语补足语的动词 (3) 典例精析: (4)

英语宾语补足语用法详解 一、概念 分词作主语补足语和宾语补足语其实是同一成分用于两种不同的句式中。具体地说,主动态句子中的宾语补足语就是被动态句子中的主语补足语。先了解宾语补足语,则很容易了解主语补足语。 宾语补足语:在英语中,某些及物动词不仅需要宾语,而且还要求某个词或词组来补充说明宾语,即表示宾语代表的人或物所发出的动作或所处的状态,这个词或短语称为宾语补足语。有些语法书把宾语和补足语称为复合宾语。 句型:及物动词+宾语(n./pron.)+宾语补足语(n./adj./adv./to do/-ing/-ed/介词短语共7种表示法) 该句型若变成被动语态,即将宾语提到句首作主语,原主动语态中的宾语补足语此时在被动语态中起到补充说明主语的作用,所以改称主语补足语。例如: A cook will be immediately fired if he is found smoking in the kitchen. 此句中smoking是主语he的补足语,所以称为主语补足语。 二、何时用现在分词、何时用过去分词作主语(宾语)补足语 分词作主语(宾语)补足语时,若主语(宾语)与分词之间是主动关系,则用现在分词表示主动; 如果主语(宾语)与分词之间是被动关系,则用过去分词表示被动。例如: He was heard singing in the next room. He was singing.主语he与补足语“唱歌”之间是主动关系,故用现在分词singing。 One of the glasses was found broken. One of the glasses was broken.主语one of the glasses与补足语“打破”之间是被动关系,故用过去分词broken。 Don‘t leave the water running while you brush your teeth.

LL1 first follow集

课程名称: LL1文法的判别 年级/专业/班: 11级计算机类(二)班 姓名: 徐勇兵 学号: E01114278

import java.util.Vector; import javax.swing.JOptionPane; class Tools{ public Vector protection(Vector vs){ Vector newvector=new Vector(); for(int i=0;i> doubleprotection(Vector> vs){ Vector> newvector=new Vector>();

for(int i=0;i produce=(Vector)vs.get(i); Vector temp=new V ector(); for(int j=0;j end=new V ector();//表示终结符 Vector noend=new Vector();//表示非终结符 Vector> produce=new Vector>();//产生式 public void setend(){//终结符元素添加 while(true) { String s=JOptionPane.showInputDialog(null,"请输入终结符"); if(s==null) { return; }//if end.add(s); }//while }//public void addend(){//元素添加 public void setnoend(){//非终结符元素添加 while(true) { String s=JOptionPane.showInputDialog(null,"非请输入终结符"); if(s==null) { return; }//if noend.add(s); }//while }//public void addnoend(){// public void setproduce(){ while(true) { String s=JOptionPane.showInputDialog(null,"请输入产生式,->隔开"); if(s==null) return; Vector temp=new Vector(); temp.add(s.split("->")[0]); temp.add(s.split("->")[1]);

计算first集合和follow集合--编译原理教案资料

计算f i r s t集合和f o l l o w集合--编译 原理

计算first 集合和follow 集合 姓名:彦清 学号:E10914127 一、实验目的 输入:任意的上下文无关文法。 输出:所输入的上下文无关文法一切非终结符的first 集合和follow 集合。 二、实验原理 设文法G[S]=(V N ,V T ,P ,S ),则首字符集为: FIRST (α)={a | α?* a β,a ∈V T ,α,β∈V *}。 若α?* ε,ε∈FIRST (α)。 由定义可以看出,FIRST (α)是指符号串α能够推导出的所有符号串中处于串首的终结符号组成的集合。所以FIRST 集也称为首符号集。 设α=x 1x 2…x n ,FIRST (α)可按下列方法求得: 令FIRST (α)=Φ,i =1; (1) 若x i ∈V T ,则x i ∈FIRST (α); (2) 若x i ∈V N ; ① 若ε?FIRST (x i ),则FIRST (x i )∈FIRST (α); ② 若ε∈FIRST (x i ),则FIRST (x i )-{ε}∈FIRST (α); (3) i =i+1,重复(1)、(2),直到x i ∈V T ,(i =2,3,…,n ) 或x i ∈V N 且若ε?FIRST (x i )或i>n 为止。 当一个文法中存在ε产生式时,例如,存在A →ε,只有知道哪些符号可以合法地出现在非终结符A 之后,才能知道是否选择A →ε产生式。这些合法地

出现在非终结符A 之后的符号组成的集合被称为FOLLOW 集合。下面我们给出文法的FOLLOW 集的定义。 设文法G[S]=(V N ,V T ,P ,S ),则 FOLLOW (A )={a | S ?… Aa …,a ∈V T }。 若S ?* …A ,#∈FOLLOW (A )。 由定义可以看出,FOLLOW (A )是指在文法G[S]的所有句型中,紧跟在非终结符A 后的终结符号的集合。 FOLLOW 集可按下列方法求得: (1) 对于文法G[S]的开始符号S ,有#∈FOLLOW (S ); (2) 若文法G[S]中有形如B →xAy 的规则,其中x ,y ∈V *,则 FIRST (y )-{ε}∈FOLLOW (A ); (3) 若文法G[S]中有形如B →xA 的规则,或形如B →xAy 的规则且ε ∈FIRST (y ),其中x ,y ∈V *,则FOLLOW (B )∈FOLLOW (A ); 三、源程序 #include #include //产生式 struct css{ char left; char zhuan;//用“-”表示箭头 char right[20]; }; //空标志 struct kong {

编译原理 FIRST集和FOLLOW集的求法

First集合的求法: First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合。 1. 直接收取:对形如U-a…的产生式(其中a是终结符),把a收入到First(U)中 2. 反复传送:对形入U-P…的产生式(其中P是非终结符),应把First(P)中的全部内容传送到First(U)中。 Follow集合的求法: Follow集合是针对非终结符而言的,Follow(U)所表达的是句型中非终结符U所有可能的后随终结符号的集合,特别地,“#”是识别符号的后随符。 1. 直接收取:注意产生式右部的每一个形如“…Ua…”的组合,把a直接收入到Follow(U)中。 2.直接收取:对形如“…UP…”(P是非终结符)的组合,把First(P)除ε直接收入到Follow(U)中。 3.反复传送:对形如P-…U的产生式(其中U是非终结符),应把Follow(P)中的全部内容传送到Follow(U)中。(或 P-…UB且First(B)包含ε,则把First(B)除ε直接收入到Follow(U)中,并把Follow(P)中的全部内容传送到Follow(U)中) 例1:判断该文法是不是LL(1)文法,说明理由 S→ABc A→a|ε B→b|ε? First集合求法就是:能由非终结符号推出的所有的开头符号或可能的ε,但要求这个开头符号是终结符号。如此题A可以推导出a和ε,所以FIRST(A)={a,ε};同理FIRST (B)={b,ε};S可以推导出aBc,还可以推导出bc,还可以推导出c,所以FIRST(S)={a,b,c}。 Follow集合的求法是:紧跟随其后面的终结符号或#。但文法的识别符号包含#,在求的时候还要考虑到ε。具体做法是把所有包含你要求的符号的产生式都找出来,再看哪个有用。 Follow(S)={#}如求A的,产生式:S→ABc A→a|ε,但只有S→ABc 有用。跟随在A后年的终结符号是FIRST(B)={b,ε},当FIRST(B)的元素为ε时,跟随在A 后的符号就是c,所以 Follow(A)={b,c}同理Follow(B)={c}。

计算first集follow集

编译原理实验报告 实验名称 计算first 集合和follow 集合 实验时间 2016年6月8日 院 系 计算机科学与技术 班 级 计算机科学与技术(1)班 学 号 姓 名 1.试验目的: 输入:任意的上下文无关文法。 输出:所输入的上下文无关文法一切非终结符的first 集合和follow 集合。 2.实验原理: 设文法G[S]=(V N ,V T ,P ,S ),则首字符集为: FIRST (α)={a | α?* a β,a ∈V T ,α,β∈V *}。 若α?* ε,ε∈FIRST (α)。 由定义可以看出,FIRST (α)是指符号串α能够推导出的所有符号串中处于串首的终结符号组成的集合。所以FIRST 集也称为首符号集。 设α=x 1x 2…x n ,FIRST (α)可按下列方法求得: 令FIRST (α)=Φ,i =1; (1) 若x i ∈V T ,则x i ∈FIRST (α); (2) 若x i ∈V N ; ① 若ε?FIRST (x i ),则FIRST (x i )∈FIRST (α); ② 若ε∈FIRST (x i ),则FIRST (x i )-{ε}∈FIRST (α); (3) i =i+1,重复(1)、(2),直到x i ∈V T ,(i =2,3,…,n )或x i ∈V N 且若ε?FIRST (x i )或i>n 为止。 当一个文法中存在ε产生式时,例如,存在A →ε,只有知道哪些符号可以合法地出现在非终结符A 之后,才能知道是否选择A →ε产生式。这些合法地

出现在非终结符A 之后的符号组成的集合被称为FOLLOW 集合。下面我们给出文法的FOLLOW 集的定义。 设文法G[S]=(V N ,V T ,P ,S ),则 FOLLOW (A )={a | S ?… Aa …,a ∈V T }。 若S ?* …A ,#∈FOLLOW (A )。 由定义可以看出,FOLLOW (A )是指在文法G[S]的所有句型中,紧跟在非终结符A 后的终结符号的集合。 FOLLOW 集可按下列方法求得: (1) 对于文法G[S]的开始符号S ,有#∈FOLLOW (S ); (2) 若文法G[S]中有形如B →xAy 的规则,其中x ,y ∈V *,则 FIRST (y )-{ε}∈FOLLOW (A ); (3) 若文法G[S]中有形如B →xA 的规则,或形如B →xAy 的规则且ε ∈FIRST (y ),其中x ,y ∈V *,则FOLLOW (B )∈FOLLOW (A ); 3.实验代码与结果: 输入格式: 每行输入一个产生式,左部右部中间的→用空格代替。 非终结符等价于大写字母 ^ 表示 空 输入到文件结束,或用 0 0 结尾。 以编译原理(清华大学第二版)5.6典型例题及答案中的例题一为例(96页): #include

过去分词作宾语补足语

过去分词作宾语补足语 概念引入 上个单元我们学习了过去分词作表语和定语的用法。现在我们继续学习过去分词作宾语补足语。看这些句子: 1. Now when people refer to England you find Wales included as well. 2. Finally the English government tried in the early twentieth century to form the United Kingdom by getting Ireland connected in the same peaceful government. 3. You find most of the population settled in the south. 4. They found the window broken. 5. ..., so Pingyu had a photo taken standing on either side of the line. 这些句子中的黑体部分都是过去分词作宾语补足语。 用法讲解 宾语补足语是同学们学习英语的一个小难点,许多同学都弄不清到底什么是宾语补足语,它的作用是什么,所以我们今天就从宾语补足语讲起,重点讲解过去分词作宾语补足语的内容。 什么是宾语补足语 英语中一些动词除需要一个宾语外,还需有宾语补足语句子意义才完整,这样就构成了英语的六种基本句型(见【补充】)中的“主语+谓语+宾语+宾语补足语”句型。宾语与宾语补足语之间在逻辑上是主谓关系。可作补足语的结构有名词、形容词、副词、介词短语、动词-ing形式、过去分词、不定式等。宾语和其宾语补足语也被称为复合结构。 1. 作补足语的词语: 1)We consider him (to be) a good teacher. 我们认为他是一个好老师。 (名词短语作宾语补足语,相当于省略了to be) 2)I find learning English difficult. 我发现学英语很难。 (形容词作宾语补足语) 3)I saw the kite up and down. 我看见风筝飞上飞下。 (副词作宾语补足语) 4)When he woke up, he found himself in a strange place. 他醒来时发现自己在一个陌生的地方。 (介词短语作宾语补足语) 5)Tom made the girl cry. 汤姆把女孩弄哭了。 (省略不定式符号to的动词不定式) 6)The father found his son playing in his room. 父亲发现儿子在房间里玩。 (动词-ing形式做宾语补足语) 7)The soft music makes us relaxed. 这首柔美的音乐使我们放松了。 (过去分词作宾语补足语)

相关文档
相关文档 最新文档