搜档网
当前位置:搜档网 › CultureShock-语法-剖析-活用

CultureShock-语法-剖析-活用

CultureShock-语法-剖析-活用
CultureShock-语法-剖析-活用

Unit 12Culture Shock

语法·剖析·活用

不定式或动名词作动词宾语的用法

在第十单元我们学习了不定式的句法功用,可以看出,不定式和动名词都可以作主语、

宾语、表语、定语和补语。

作主语和表语时,动名词形式表示一般的、概念性的、时常的动作,而动词不定式常表示一时的、偶然的行为和动作。如:

当医生是不错的选择。

(对任何人、任何时候而言都是这样的)

当个好医生是我的梦想。

(对个人而言,是个别情况)

用动名词还是不定式作宾语,主要分为以下四种情况:

(1)只可使用动名词作宾语的动词:

enjoy,miss,practice,prefer,suggest,consider,appreciate,avoid,mind,imagine,finish,admit,deny,del

ay,risk等。

只跟动名词的短语:feel like,stick to,devote to,pay attention to,be worth,be busy,can’t help,it is

no use,be used to (习惯于),look forward to,can’t stand等。

(2)只可使用不定式作宾语的动词:

wish,hope,promise,expect,pretend,want,agree,refuse,prepare,manage,persuade,afford,offer,atte

mpt,decide等。

只跟不定式的习语:would like/love to等。

(3)既可接动名词,又可接不定式作宾语的动词有:

start,begin,continue,like,love,hate等,意思基本没有区别。

love,like和hate接动名词和不定式时,表示长久的、规律性的好恶用动名词,表示一时的、个别性的好恶常用不定式。如:

他从小就不喜欢吃鱼。

我想在这样一个美好的下午出去兜风。

补充:①need,want,require,demand,be worth等接动名词,主动形式表被动:

②不带to的不定式。

常用的有“十一个半动词”:五看二听一感觉,三个使役来帮助。即look,see,watch,notice, observe, listen, hear,feel,make,have,let,help。由于help也可使用带to的不定式,所以它算半个。

此外还有一些不带to的习语:had better do,would rather do than do,why not等。

③作定语时,动词不定式结构放在被修饰语的后面,作后置定语;动名词通常放在被修饰语之前,多表示被修饰语的用途。

现在分词

现在分词是动词词尾加-ing构成的。它们还保留着动词的特征,并带有形容词和副词的功能。因此,现在分词在句子中可以作定语、表语和状语。除此之外,现在分词还可以充当动词的宾补。及物动词的现在分词有主动意义,不及物动词的现在分词则表示动作正在进行。作表语

许多现在分词已经成为形容词,如amusing,annoying,astonishing,attracting,boring, disappointing,discouraging,encouraging,exciting,frightening,interesting,inspiring,inviting,pleasing,p uzzling,shocking,surprising,tiring等,这些词都是由它们的同源动词加-ing变来的,都具有主动

意义,译成“令人……的”,同普通形容词一样可以由副词修饰,也可以有比较等级。

这个故事很好笑,比其他的故事都好笑。

作定语(现在分词可以前置和后置)

(1)前置(通常由一个现在分词充当

hard-working people 勤劳的人民

the never-ending quarrel 无休止的争吵

fine-looking buildings 美观的建筑

an English-speaking man 说英语的人

(2)后置(通常由现在分词短语充当

我有一个朋友住在伦敦。

请坐在后面的人保持安静。

注意:当现在分词作定语时,它和被修饰的名词之间通常是主谓关系,即被修饰语是这个现在分词的动作发出者。如上例,hard-working people中,people就是动作work的发出者。作状语

(1)时间状语(常在句首

Hea

听到这个坏消息后,她大哭起来。

曾经在进行一项发明时,爱迪生做了8000次试验,都失败了。

决定了之后,他们立即动工。

(2)条件状语(常在句首)

加油干,你就会成功。

要是成天玩,你就把宝贵的时间浪费了。

(3)原因状语(常在句首)

爱因斯坦是个内向的人,连为他举办的50岁生日聚会都没有参加。

Having lived in

在柏林住了这么多,他对这个城市了如指掌。

(4)结果状语(常在句末)

他把杯子掉到地上,摔碎了。

大火烧了三个星期,毁了整片森林。

(5)伴随状语(常在句末,表示伴随情况、行为方式、补充说明等)

他们站在路边看游行。

孩子们跑了出去,高兴地边说边笑。

他坐在窗子旁边读书。

注意:

①现在分词作状语时,分词的逻辑主语与主句的主语是同一个。如Hearing the bad news,she burst into tears.中,主句的主语是she,那么现在分词hearing的逻辑主语也是she,hear这个动作实际就是she发出的。它们之间是主谓关系,hearing表示一种主动意义。

②若现在分词的状语从句是否定含义时,在从句句首加Not。如:

他不理解这个问题,就去问老师。

作宾语补足语

(1)see,hear,smell,feel,watch,find,notice,observe,look at,listen to等表示感觉的动词,用现在分词作宾补,表示这个动作与谓语动作同时发生。

你闻到有东西糊了吗?

刚才我看见他们在泳池里游泳呢。

(2)have,keep,get,set,send,leave等表示“致使”等的动词用现在分词作宾补时,表示“使……处于某种持续的状态中”。

He had us laughing all the time ov

整个晚饭期间他让我们不住地笑。

他的话让我猜测起他真正的意图。

那次爆炸把屋顶掀飞了。

注意:感官动词后面的现在分词作宾补表示正在进行的动作,不是全过程;表示动作的

全过程,要用不带to的不定式。如:

我看见他在过马路。

I saw him cr

我看见他过马路了。

【活学活用】24.单项填空

1)(广东广州综合测试,35)I really appreciate__________a great effort to come to help us with the

A.your making

C.you to make

2)(上海,35)It was unbelievable that the fans waited outside the gym for three hours

A.had

B.having

C.to have

3)(全国Ⅱ,17)We often provide our children with toys,footballs or basketballs,__________that all

A.thinking

B.think

C.to think

4)(江苏,25 —

A.to have left

C.to have been left

5)(福建,29)—

—S

A.having got

B.to get

C.getting

A.cleaning

B.to clean

C.clean

7)I can hardly imagine

B.to sail

8)—

D.lett

9)(湖北,34 )

A.do

B.to do

C.doing

B.practis

答案与解析:

1)A appreciate后只能接动名词作宾语,此处表主动意义,故选A。后面只能接动名词作宾语的动词有mind,miss,enjoy,give up,admit,finish,escape,practise,avoid,keep,suggest,imagine,can’t help等。

2)C句意为“真不敢相信,这些’粉丝’们在体育馆外面等了三个小时就为了看体育明星们一眼”。在此句中,动词不定式充当目的状语。

3)A两句之间没有连词,逗号之后用非谓语动词表示。非谓语动词和主语之间是主动关系,所以用现在分词作伴随状语。句意为“我们通常给孩子一些玩具、足球或篮球,认为所有的孩

子都喜欢这些东西”。

4)A此题考查对动词不定式的时态和语态的掌握运用能力。leave作“离开”讲时是不及物动词,没有被动形式;其次,句中的already 表示完成概念。因此选择表示主动兼完成的to have left。

5)B“我们”加班的目的是完成计划,所以用不定式表目的、打算。

6)A句意为“图书馆需要清扫了,不过要等到周日才行”。need cleaning是用主动形式表被动含义,也可用need to be cleaned结构。

7)C句意为“我无法想象彼得在五天之内能航行穿过大西洋”。imagine sb.doing sth.“想象某人做某事”。

8)B句意为“我必须为没有提前告诉你而道歉。”“没关系。”否定动名词时,在其前加not,这一点和不定式的否定形式类似。

9)C doing nothing作伴随状语,相当于并列句and do nothing。句意为“不要坐在那里什么也不干,来帮我摆桌子”。

10)B句意为“学生问老师他每天练多长时间的小提琴”。spend time (in)doing sth.,practice doing sth.,“play+the+乐器”均为固定结构。

小学英语语法知识点汇总!

小学英语语法知识点汇总! 01 人称代词 主格:I we you she he it they 宾格:me us you her him it them 形容词性物主代词:my our your her his its their 名词性物主代词:mine ours yours hers his its theirs 02 形容词和副词的比较 (1) 一般在形容词或副词后+er older ,taller, longer, stronger (2) 多音节词前+more more interesting, etc. (3) 双写最后一个字母,再+er bigger fatter, etc. (4) 把y变i,再+er heavier, earlier (5) 不规则变化: well-better, much/many-more, etc. 03 可数词的复数形式 Most nouns + s abook –books

Nouns ending in aconsonant +y - y+ ies a story—stories Nouns ending in s,sh, ch or x + es a glass—glasses a watch-watches Nouns ending in o+s or +es a piano—pianos a mango—mangoes Nouns ending in for fe - f or fe +ves a knife –knives a shelf-shelves 04 不可数名词(单复数不变) bread, rice, water ,juice等。 05 缩略形式 I’m= I a,you’re = you are,she’s= she is,he’s = he is it’s= it is,who’s =who is,can’t =can not,isn’t=is not等。 06 a/an a book, a peach an egg,an hour 07 Preposition on, in ,in front of, between, next to, near, beside, at,behind. 表示时间:at six o’clock, at Christmas, at breakfast

实验三 自下而上语法分析及语义分析

实验三自下而上语法分析及语义分析 一、实验目的: 通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时: 4学时。 三、实验内容 根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。 对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法 采用LR分析法。 首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。 接下来给出LR分析表。 然后程序的具体实现: ●LR分析表可用二维数组(或其他)实现。 ●添加一个val栈作为语义分析实现的工具。 ●编写总控程序,实现语法分析和语义分析的过程。 注:对于整数的识别可以借助实验1。 五、文法定义 简单的表达式文法如下: E->E+T|E-T|T T->T*F|T/F|F F->(E)|i 上式中,i 为整数。 六、处理程序例 例1: 正确源程序例: 23+(45+4)* 40分析结果应为:正确的表达式。其值为:1983 例2: 错误源程序例: 5+(56+)-24 分析结果应为:错误的表达式:出错位置为)

附录:源程序 #include #include"string.h" #include using namespace std; #define R 30 #define C 20 typedef struct elem { char e[4]; }Elem; //ACTION表与GoTo表中的元素类型 Elem LR[R][C]; //存放ACTION表与GoTo表中的内容 typedef struct out { int order; //序号 int state[10]; //状态栈 char sign[30]; //符号栈 char grasen[20]; //产生式 char input[30]; //输入串 char explen[50]; //解释说明 }OutNode; //输出结果中每一行的类型 OutNode out[20]; //存放输出结果 char Sentence[20]; //存放文法的一个句子 char GramSent[10][20]; //存放文法的一组产生式

小学英语语法知识点汇总(必看)

小学英语语法知识点汇总 一、名词 表示某一事物,有具体的和抽象的之分。分为可数名词和不可数名词。 强调:不可数名词都默认为单数,所以总是用is或者was; 最好不要根据some、any、a lot of等词去作判断,以免受误导。 1、可数名词如何变“复数形式”: a.一般情况下,直接加-s,如:book-books, bag-bags, cat-cats, bed-beds ;读音:清辅音后读[s],浊辅音和元音后读[z]。 b.以s. x. sh. ch结尾,加-es,如:bus-buses, box-boxes, brush-brushes, watch-watches ;读音:[iz]。 c.以“辅音字母+y”结尾,变y为i, 再加-es,如:family-families, strawberry-strawberries ;读音:[z]。 d.以“f或fe”结尾,变f或fe为v, 再加-es,如:knife-knives ,thief-thieves;读音:[z]。e.以“o”结尾的词,分两种情况 1)有生命的+es 读音:[z] 如:mango-mangoes tomato-tomatoes hero-heroes 2) 无生命的+s 读音:[z] 如:photo-photos radio-radios f. 不规则名词复数:man-men, woman-women, policeman-policemen, policewoman-policewomen, snowman-snowmen, mouse-mice, child-children, foot-feet, tooth-teeth, fish-fish, people-people, Chinese-Chinese, Japanese-Japanese 2、不可数名词没有复数。 如果要计算不可数名词所表达的数量,就得在数词和不可数名词之间加上“量词+of”。

人教版小学英语语法知识点汇总

目录 一、音素及音标 (2) 二、音节及音节的划分 (3) 三、常用字母或字母组合发音规律 (4) 1、元音字母及组合的发音 (4) (1)与字母a 相关的单词 (4) (2)与字母 e 相关的单词 (5) (3)与字母 i 相关的单词 (6) (4)与字母 o 相关的单词 (7) (5)与字母 u 相关的单词 (8) 2、辅音字母及组合的发音 (9) (1)单个字母 (9) (2)字母组合 (9) 四、词的变式及用法 (11) 1、名词及名词的复数形式 (11) 2、冠词及其用法 (12) 3、代词及其用法 (12) 4、形容词的比较级和最高级 (13) 5、介词的固定用法 (15) 五、时态及语法 (15) 1、一般现在时及其用法 (15) 2、现在进行时 (19) 3、一般将来时 (19) 4、一般过去时 (20) 六、常见固定词组 (22) 附各专项测试习题 (24)

一、音素及音标 音素:英语把组成一个读音的最小单位叫音素。因素分为元音和辅音(相当于语文中的韵母和声母) 1、元音(韵母) 1.1发音方式:靠声带发音,有声调,气流通过喉头、口腔不受阻碍。 1.2举例: 元音单元音 长元音[a:] [?:][i:] [?:] [u:] 短元音[Λ][?][i] [?] [u] [?] [e] 双元音[ai] [ei] [?i] [i? ][e? ][u? ][au] [?u] 1.3元音的结构 元音的常见构成有: 组合方式举例 1 单个元音字母D o g 2 元音字母+元音字母S ee、s ea、m ea t、b oo k 3 元音字母+辅音字母T al l、pl ay 1.4元音字母 共有5个,分别是: a e i o u 2、辅音(声母) 2.1发音方式:主要是用气流与牙齿舌头等其它器官摩擦发音,气流通过喉头、口腔要受到某个部位的阻碍。 2.2举例: 辅音10对 清辅音[p] [t] [k] [f] [s] [∫][t∫][tr] [θ][ts] 浊辅音[b] [d] [g] [v] [z] [?] [d?][dr] [e] [dz] 3个鼻音[m] [n] [η] 3个似拼音[h] [r] [l] 2个半元音[w] [j] 2.3辅音的结构 组合方式举例 1 单个辅音字母D og、b ook 2 辅音字母+辅音字tr ee、dr aw、tea ch、sh ip 2.4辅音字母 26个字母中,除去5个元音字母(a、e、i、o、u),其他字母都是辅音字母。 3、开音节(结尾必然是元音字母) 分类组成举例 绝对开音节辅音+元音He、 go、 hi、 do、 be、 tree、 three、相对开音节辅音+元音+辅音+e name、 bike、 home、 due、 plane、 shine 4、闭音节(结尾必然是辅音字母) 分类组成举例 1 元音+辅音it、is、 of、 in、 on、 up、 out、 ant 2 辅音+元音+辅音bad、 bed、 sit、 hot、 cup、let sleep

语法分析(自上而下分析)实验报告

实习二语法分析-自上而下分析 一、实验目的 使用预测分析方法对输入的表达式进行分析,掌握其具体的使用并且学会去分析一个文法。 二、实验内容 1.设计表达式的语法分析器算法(使用预测分析) 2.编写一段代码并上机调试查看其运行结果 三、实验要求 使用LL(1)分析算法设计表达式的语法分析器 LL(1)文法是一个自上而下的语法分析方法,它是从文法的开始符号出发,生成句子的最左推导,从左到右扫描源程序,每次向前查看一个字符,确定当前应该选择的产生式。 实现LL(1)分析的另一种有效方法是使用一张分析表和一个栈进行联合控制。 预测分析程序的总控程序在任何时候都是按STACK栈顶符号X和当前a的输入符号行事的。对于任何(X,a),总控程序每次都执行三种可能的动作之一。 1.若X=a=“#”,则宣布分析成功,停止分析过程 2.若X=a≠“#”,则把X从STACK栈顶逐出,让a指向下一 个输入符号。 3.若X是一个非终结符,则查看分析表。 四、运行结果

(本程序只能对由'i','+','*','(',')'构成的以'#'结束的字符串进行分析) 五、源程序实现 /*LL(1)分析法源程序,只能在VC++中运行*/ #include #include #include #include char A[20]; char B[20]; char v1[20]={'i','+','*','(',')','#'};/*终结符*/ char v2[20]={'E','G','T','S','F'};/*非终结符*/ int j=0,b=0,top=0,l;/*L为输入串长度*/

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

武汉轻工大学 编译原理实验报告 姓名朱春桃 院(系)数学与计算机学院 班级软件工程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);

初中英语语法知识点总结

英语语法大全 初中英语语法学习提纲 一、词类、句子成分和构词法: 1、词类:英语词类分十种: 名词、形容词、代词、数词、冠词、动词、副词、介词、连词、感叹词。 1、名词(n.):表示人、事物、地点或抽象概念的名称。如:boy, morning, bag, ball, class, orange. 2、代词(pron.):主要用来代替名词。如:who, she, you, it . 3、形容词(adj..):表示人或事物的性质或特征。如:good, right, white, orange . 4、数词(num.):表示数目或事物的顺序。如:one, two, three, first, second, third, fourth. 5、动词(v.):表示动作或状态。如:am, is,are,have,see . 6、副词(adv.):修饰动词、形容词或其他副词,说明时间、地点、程度等如:now, very, here, often, quietly, slowly. 7、冠词(art..):用在名词前,帮助说明名词。如:a, an, the. 8、介词(prep.):表示它后面的名词或代词与其他句子成分的关系。如in, on, from, above, behind. 9、连词(conj.):用来连接词、短语或句子。如and, but, before .

10、感叹词(interj..)表示喜、怒、哀、乐等感情。如:oh, well, hi, hello. 2、句子成分:英语句子成分分为七种:主语、谓语、宾语、定语、状语、表语、宾语补足语。 1、主语是句子所要说的人或事物,回答是“谁”或者“什么”。通常用名词或代词担任。如:I’m Miss Green.(我是格林小姐) 2、谓语动词说明主语的动作或状态,回答“做(什么)”。主要由动词担任。如:Jack cleans the room every day. (杰克每天打扫房间) 3、表语在系动词之后,说明主语的身份或特征,回答是“什么”或者“怎么样”。通常由名词、代词或形容词担任。如:My name is Ping ping .(我的名字叫萍萍) 4、宾语表示及物动词的对象或结果,回答做的是“什么”。通常由名词或代词担任。 如:He can spell the word.(他能拼这个词) 有些及物动词带有两个宾语,一个指物,一个指人。指物的叫直接宾语,指人的叫间接宾语。间接宾语一般放在直接宾语的前面。如:He wrote me a letter . (他给我写了一封信) 有时可把介词to或for加在间接宾语前构成短语,放在直接宾语后面,来强调间接宾语。如:He wrote a letter to me . (他给我写了一封信) 5、定语修饰名词或代词,通常由形容词、代词、数词等担任。如: Shanghai is a big city .(上海是个大城市)

(完整版)六年级英语语法知识点汇总

六年级语法总复习 亠、词汇 (一)一般过去时态 一般过去时态表示在过去的某个时间发生的动作或存在的状态,常和表示过去的时间状语连用。例如 yesterday, last weeke nd ,last Saturday , 等连用。基本句型:主语+动词的过去式+其他。例句---------- What did you do last weekend? 你上周做什么了? ---- I played football last weeke nd. 我踢足球了。 ★规则动词过去式的构成 1. 一般在动词原形末尾加-ed。例如:play —played 2. 词尾是e的动词直接加-d。例如:dance —da need 3. 末尾只有一个辅音字母的重读闭音节词,先双写这个辅音字母,再加-ed。例如stop (停止)--stopped 4. 结尾是“辅音字母+y ”的动词,变“ y”为“ i”,再加-ed,例如:study-studied ★ 一些不规则变化的动词过去式 am/is —was are —were go -—went swim -— swam fly —flew do —did have —had say —-said see—sawtake —took come —came become —became get—got draw —drew hurt — -hurt read —read tell —told will —would eat — ate take —took make —made drink —drank sleep (睡 觉)—slept cut (切)--cut sit(坐)—sat begin(开始)—began th ink —thought find —found run(跑)---ra n buy —bought win -— won give(给)—gave sing —sang leave —left hear (听)--heart wear ——wore (二)一般现在时态 一般现在时态表示包括现在时间在内的一段时间内经常发生的动作或存在的状态,表示习惯性或客观存在 的事实和真理。常与ofte n ,always ,usually ‘sometimes ,every day等连用。基本句型分为两种情况: ?主语(非第三人称)+ 动词原形+ 其他。例句:----What do you usually do on the weeke nd? --------------- I usually do my homework on the weeke nd. ?主语(第三人称)+动词的第三人称单数形式+其他。例句: ---- What does Sarah usually do on the weeke nd? 萨拉通常在周末干什么? ---- She usually does her homework on the weeke nd. 她通常在周末做她的家庭作业。 ★动词第三人称单数形式的变化规则 1 一般直接在动词词尾加-s.例如:play —plays 2. 以s ,x ,ch,sh 结尾的动词加-es。例如:watch —watches 3. 以辅音字母加y结尾的动词,变y为i,再加es,例如:fly —flies 4. 个别不规则变化动词,需单独记忆,例如:do —does go —goes (三)现在进行时态

四级语法知识点总结

四级语法知识点总结 一:时态:所谓的"时态",就是时间+状态。谓语动词的时态见下表: 1.主动形式 2.被动形式 CET-4 常考的三种时态:过去完成时;将来完成时;(现在/过去)完成进行时。 时间状语从句当中的时态: 一般过去时 所有的过去 用 一般现在时 表示 现在和将来 现在完成时 现在完成和将来完成 过去 现在 将来 过去将来 一般 did do will/shall do should/would do 进行 was/were doing am/is/are doing will/shall be doing / 完成 had done have/has done will/shall have done should/would have done 用于虚拟语气 完成进行 had been doing have/has been doing / / 过去 现在 将来 过去将来 一般 was/were given am/is/are given will/shall be given should/would be given 进行 was/were being given am/is/are being given / / 完成 had been given have/has been given will/shall have been given should/would have been given 完成进行 / / /

二:非谓语动词 1.不定式: 一)不定式的常考形式: 1)一般形式:He decided to work harder in order to catch up with the others. 被动形式: He preferred to be assigned some heavier work to do. 语法功能:表示与谓语动词同步发生 2)完成形式:He pretended not to have seen me. 被动形式:The book is said to have been translated into many languages. 语法功能:表示发生在谓语动词之前 二)不定式常考的考点: 1)不定式做定语----将要发生 2)不定式做状语----目的 3)不定式充当名词功能---To see is to believe. 三)不定式的省略 感官动词 see, watch, observe, notice, look at, hear, listen to, smell, taste, feel + do 表示动作的完整性,真实性; + doing表示动作的连续性,进行性 I saw him work in the garden yesterday. 昨天我看见他在花园里干活了。(强调"我看见了"这个事实) I saw him working in the garden yesterday. 昨天我见他正在花园里干活。(强调"我见他正干活"这个动作)感官动词后面接形容词而不是副词:The cake tastes good; It feels comfortable. 使役动词 have bid make let 等词后不定式要省略但同1)一样被动以后要还原to I ‘d like to have John do it. I have my package weighed. Paul doesn’t have to be made to learn. help help sb do help sb to do help do help to do 四)有些动词后只跟不定式如: want,wish,hope,manage,promise,refuse,pretend,plan,offer,decide,agree,expect allow sb to do, cause sb to do , permit sb to do, enable sb to do

第五章 自上而下语法分析

第五章自上而下语法分析 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、回溯问题:

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

第四章 自顶向下语法分析方法 语法分析是编译过程的核心部分。语法分析的任务是:按照文法,从源程序符号串中识别出各类语法成份,同时进行语法检查,为语义分析和代码生成作准备。执行语法分析任务的程序称为分析程序。也称为语法分析器,它是编译程序的主要子程序之一。 在第二章中我们已经介绍过。通过语法分析可建立起相应的语法树。按语法树的建立方法,我们将语法分析方法分成两大类,即自顶向下分析和自底向上分析。下面,我们先介绍自顶向下分析。 本章重点:自顶向下分析、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. 一般情况下,直接加-s,如:book-books, bag-bags, cat-cats, bed-beds 2. 以s. x. sh. ch结尾,加-es,如:bus-buses, box-boxes, brush-brushes, watch-watches 3. 以“辅音字母+y”结尾,变y为i, 再加-es,如:family-families, strawberry-strawberries 4. 以“f或fe”结尾,变f或fe为v, 再加-es,如:knife-knives 5. 不规则名词复数,如: man-men, woman-women, policeman-policemen, policewoman-policewomen, mouse-mice child-children foot-feet,.tooth-teeth fish-fish, people-people, Chinese-Chinese, Japanese-Japanese 二、一般现在时 1.一般现在时表示经常或习惯性的动作,也可表示现在的状态或主语具备的性格和能力。 2.一般现在时中,没有be动词和情态动词,主语为第三人称单数的肯定句,动词要按规则加上s,主语是非第三人称单数的肯定句,动词用原形。 3.在一般现在时中,句中有be动词或情态动词时,否定句在be动词和情态动词后加not,一般疑问句将be动词或情态动词放在句首。 4.在一般现在时中,句中没有be动词或情态动词时,主语为第三人称单数的否定句在动词前加does+not (doesn’t),一般疑问句在句首加does,句子中原有动词用原形;主语为非第三人称单数,否定句用do+not (don’t),一般疑问句在句首加do,句子中动词用原形。 动词+s的变化规则 1.一般情况下,直接加-s,如:cook-cooks, milk-milks 2.以s. x. sh. ch. o结尾,加-es,如:guess-guesses, wash-washes, watch-watches, go-goes 3.以“辅音字母+y”结尾,变y为i, 再加-es,如:study-studies 三、现在进行时 1. 现在进行时表示现在正在进行或发生的动作,也可表示当前一段时间内的活动或现阶段正在进行的动作。 2. 现在进行时的肯定句基本结构为be+动词ing. 3. 现在进行时的否定句在be后加not。 4. 现在进行时的一般疑问句把be动词调到句首。 动词加ing的变化规则 1. 一般情况下,直接加ing,如:cook-cooking 2. 以不发音的e结尾,去e加ing,如:make-making, taste-tasting 3. 如果末尾是一个元音字母和一个辅音字母,双写末尾的辅音字母,再加ing,如:

语法分析-自上而下分析

第四章语法分析—自上而下分析 知识结构: 带回溯分析法 回溯 自上而下分析面临的问题 左递归 问题的解决 语法分析-求FIRST、FOLLOW集合的算法自上而下分析LL(1)分析法证明LL(1)文法 构造LL(1)分析表 递归子程序的构造思想 递归子程序法递归子程序的特点 递归子程序的设计 第一节语法分析综述 一、语法分析的任务 按照语言即定的语法规则,对字符串形式的源程序进行语法检查,并识别出相应的语法成分。即语法结构是否符合语法规则。 二、语法分析器在编译程序中的地位(一遍扫描)

三、语法分析方法 通常把语法分析方法分为两大类,既自上而下分析与自下而上分析。 1、自上而下分析方法 实际上是一种产生的方法,分析过程是一个推导过程。 ⑴自上而下分析过程 从文法G的开始符号S出发,通过反复使用产生式,逐步推导出与输入的符号串完全相匹配的句子。采用最左推导,以文法开始符号为根结点,逐步为输入串自上而下地构造一棵语法树。 面临的输入符号为a,A所有的产生式: A12n ①若a FISRT(i),则指派去执行匹配任务。 ②若a不属于任何一个候选首字符集,则: a、若属于某个FISRT(i)且a FOLLOW(A),则让A 与自动匹配; b、否则,a的出现是一种错误。 例:设有文法G和输入符号串W:a*a+a G:S aA a A BaA

B +-*/ 推导过程: S aA aBaA a*aA a*aBaA a*a+aA a*a+a=W 构造语法树: S a A B a A * B a A + ⑵自上而下分析法 自上而下分析法又可分为确定和不确定的两种。 ①不确定的分析法(带回溯) 是一种穷举的试探方法,效率低、代价高,极少使用。 ②确定的分析法(不带回溯) 实现方法简单、直观,便于手工构造或自动生成语法分析器,是目前常用的方法之一。但是对文法有一定的限制。 2、自下而上分析法 ⑴自下而上分析过程 分析过程是归约过程。从给定的输入串W开始,不断寻找与文法G中某个产生式P的侯选式(右部)进行匹配,并用P代替也称为归约。 ⑵自下而上分析法

编译原理实验三-自下而上语法分析及语义分析.docx

上海电力学院 编译原理 课程实验报告 实验名称:实验三自下而上语法分析及语义分析 院系:计算机科学和技术学院 专业年级: 学生姓名:学号: 指导老师: 实验日期: 实验三自上而下的语法分析 一、实验目的: 通过本实验掌握LR分析器的构造过程,并根据语法制导翻译,掌握属性文法的自下而上计算的过程。 二、实验学时: 4学时。 三、实验内容

根据给出的简单表达式的语法构成规则(见五),编制LR分析程序,要求能对用给定的语法规则书写的源程序进行语法分析和语义分析。 对于正确的表达式,给出表达式的值。 对于错误的表达式,给出出错位置。 四、实验方法 采用LR分析法。 首先给出S-属性文法的定义(为简便起见,每个文法符号只设置一个综合属性,即该文法符号所代表的表达式的值。属性文法的定义可参照书137页表6.1),并将其改造成用LR分析实现时的语义分析动作(可参照书145页表6.5)。 接下来给出LR分析表。 然后程序的具体实现: ● LR分析表可用二维数组(或其他)实现。 ●添加一个val栈作为语义分析实现的工具。 ●编写总控程序,实现语法分析和语义分析的过程。 注:对于整数的识别可以借助实验1。 五、文法定义 简单的表达式文法如下: (1)E->E+T (2)E->E-T (3)E->T

(4)T->T*F (5)T->T/F (6)T->F (7)F->(E) (8)F->i 状态ACTION(动作)GOTO(转换) i + - * / ( ) # E T F 0 S5 S4 1 2 3 1 S6 S1 2 acc 2 R 3 R3 S7 S13 R3 R3 3 R6 R6 R6 R6 R6 R6 4 S 5 S4 8 2 3 5 R8 R8 R8 R8 R8 R8 6 S5 S4 9 3 7 S5 S4 10 8 S6 R12 S11 9 R1 R1 S7 S13 R1 R1 10 R4 R4 R4 R4 R4 R4 11 R7 R7 R7 R7 R7 R7 12 S5 S4 14 3 13 S5 S4 15 14 R2 R2 S7 S13 R2 R2 15 R5 R5 R5 R5 R5 R5 五、处理程序例和处理结果例 示例1:20133191*(20133191+3191)+ 3191#

新概念第一册重点语法知识点汇总

第一册重点语法知识点都包含: 时态:一般现在时,现在进行时,现在完成时,一般过去时,过去进行时,过去完成时,一般将来时,过去将来时。 词性:动词现在分词、动词的过去式和过去分词。形容词、副词的比较级与最高级。助动词、情态动词、半情态动词的使用。动词不定式。反身代词、不定代词。特殊疑问词。 句式:简单句、并列句、复合句(定语从句、状语从句、宾语从句)。语态:被动语态。 结构:There be结构。 语序:倒装。 (请您记住以下新概念英语一册1-144课的所固定搭配短语) 英文中文 I beg your pardon 请您在重复(说)一遍 Nice to meet you(too)(我也)很高兴见到你 Look at… 看… How do you do 你好 Be careful 小心 A loaf of 一个 A bar of 一条 A bottle of 一瓶 A pound of 一磅 Half a pound of 半磅

A quarter of 四分之一 A tin of 一听 Hurry up 快点 Next door 隔壁 Black coffee 不加牛奶的咖啡White coffee 加牛奶的咖啡 Come home from school 放学回家Come home from work 下班回家In the morning 早上 In the afternoon 下午 In the evening 晚上 At noon 中午 At night 夜里 At the moment 此刻 What’s the time? 几点钟? Come upstairs 上楼 Come downstairs 下楼Hundreds of… 数以百计的… On the way home 在回家的途中This morning 今天早晨 This afternoon 今天下午 This evening 今天晚上

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

第四章自顶向下语法分析方法 语法分析是编译过程的核心部分。语法分析的任务是:按照文法,从源 程序符号串中识别出各类语法成份,同时进行语法检查,为语义分析和代码生成作准备。执行语法分析任务的程序称为分析程序。也称为语法分析器,它是编译程序的主要子程序之一。 在第二章中我们已经介绍过。通过语法分析可建立起相应的语法树。按语法树的建立方法,我们将语法分析方法分成两大类,即自顶向下分析和自底向上分析。下面,我们先介绍自顶向下分析。 本章重点:自顶向下分析、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

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

实验二递归下降法判断算术表达式的正确性 学时数: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)实验报告要求同上

相关主题