第九章 动词时态

英⽂动词的时态,可以分成现在、过去、未来等三种 时间(times),一般时、完成时、进⾏式、完成进⾏式等四种 状态(aspects)。如果再加上主动、被动两种 语态(voices),那么动词时态变化多达 24 种。扣掉⼀、两种很少使⽤的,实际上经常⽤到的时态也有 22 ⾄ 23 种之多。

时态的变化很多、很复杂。但是每⼀个英⽂句⼦都有动词、都会牵涉到时态的判断。如果时态的观念不清楚,英⽂写作⼀定会碰到层出不穷的问题。要想驾简驭繁、轻松建⽴起时态的观念、打好英⽂写作的基础,有⼀个变通的办法可以让时态问题变得很简单。做法是在句型诠释上转变⼀下:视 be 为动词、后⾯的分词⽚语视为形容词补语。从这个⻆度来看句型,时态问题就很简单了,只剩下「一般时」与「完成时」两种变化。能够区分简单式与完成式,就能够轻松掌握动词时态。

英⽂动词的时态,如果认定 be 为动词,那么就只剩下 一般时(simple aspect)完成时(perfect aspect) 这两种状态。只要能够区分清楚这两种状态,英⽂动词时态就没问题了。

静态动词

要想把传统⽂法中列出的 24 种时态简约到只需要了解「一般时」与「完成时」这两种变化,那么除了上述「视 be 为动词、视其后的分词为形容词补语」这种变通的诠释⽅法之外,还需要了解 静态动词(static verbs) 这个观念。

英⽂动词当中有⼀批相当「名不符实」,虽然叫做动词却并没有「动作」在⾥头。真正名符其实的动词如 hit, kill, eat, run, talk, jump, swim 等等,代表的都是某种「动作」。以传统⽂法的分类来说,这种「动态」的动词才能够有所谓的「进⾏式」,也就是说只有动态动词才适合加上 -ing 字尾变成现在分词、⽤来表示「正在做」或「⼀直在做」某个动作。例如:

He is eating breakfast now.(他现在正在吃早餐。)

The dog was swimming toward the shore then.(狗当时正在朝岸边游。)

如果依照传统⽂法的诠释,第 1 句的动词是 is eating、「现在进⾏式」;第 2 句的动词是 was swimming、「过去进⾏式」。关键在于 eat 和 swim 都是属于「动态动词」、代表的是「动作」,所以才可以有进⾏式,表示「正在做」或「⼀直做」这个动作。

简单化的看法是:第 1 句的动词是 is、现在一般时,后⾯的 eating breakfast 是现在分词⽚语,当形容词补语使⽤,表达出进⾏状态、解释为「正在吃早饭」,修饰主语 he。第 2 句的动词是 was、过去简单式,它后⾯ swimming toward the shore 这个现在分词⽚语当形容词补语看待,表达出进⾏状态,意思是「正在朝岸边游」,修饰主词 the dog。关键在于:表示「动作」的动态动词如 eat 与 swim 等等才可以有现在分词的形容词 eating 与 swimming、表示这个动作「正在进⾏中」。

反之,如果动词是「静态动词」、并不代表「动作」,⾃然也就没有所谓的「正在做」或「⼀直做」的进⾏状态可⾔。因此,以传统⽂法的⻆度来说:静态动词不能⽤于进⾏式。换⾔之,静态动词不适合加上-ing 字尾成为现在分词的形容词。

⼏个常⻅的静态动词

以下举⼀些常⻅的静态动词为例,请读者⼀句句思考⼀下:句中画底线的部分都是动词,但没有⼀个真正代表「动作」(像 kill, eat 那种动作),所以都不能采⽤表示「正在做、⼀直做」的 -ing 字尾(也就是不能采⽤进⾏式)。

I am busy; I have a lot of work to do.(我很忙;我有⼀堆⼯作要做。)

This camera belongs to me.(这架相机属于我。)

George resembles his father a lot.(乔治很像他爸爸。)

I believe his story.(我相信他的故事。)

I like milkshakes.(我喜欢奶昔。)

I consider him a true friend.(我认为他是真正的朋友。)

以上这些句⼦中的动词如 have, belong, resemble, believe, like, consider,思考⼀下就会发现都不是真正的「动作」,所以都不适合说「正在做」或「⼀直做」,因此也都不适合采⽤现在分词的进⾏状态。不过,同样的静态动词如果改变⽤法、拿来表示「动作」时,就可以加 -ing 字尾、可以有所谓的进⾏式了。例如,「是」(be)、「有」(have)和「认为」(consider)都不是真正的动作、属于静态动词。但是,如果 be 解释为「表现」、have 解释为「吃」、consider 解释为「研究」,那就变成了动作,可以⽤ -ing 来表示「正在表现」、「正在吃」或「正在研究」 :

When I said she looked 25, I was being nice.(我说她看起来像25岁,那是在表现礼貌。)

He was having lunch when I called.(我打电话去的时候他正在吃午餐。)

The committee is considering your proposal.(委员会正在研究你的提案。)

简单式

一般时状态,主要⽤于交代动作发⽣在什么时间内。所以,除⾮上下⽂已经有暗示、对⽅已经知道是什么时间,否则必须要明确说出动作发⽣的时间。举⼀个例⼦:

I saw the movie last week.(那部电影我是上礼拜看的。)

当然,所谓 last week 严格讲起来有七天之久,⽽「看电影」的动作可能花不到两个⼩时。不过,一般时的情况通常就是这样:说出⼀段时间(如 last week),动作只要落在这段时间之内就⾏。

⼀.过去时间

一般时状态可以⽤图像的⽅式来理解:它标示出来的时间呈括弧形状,动作就落在括弧⾥⾯。如果这个括弧是在过去,就应采⽤过去简单式。例如:

The U.S. declared independence in 1776.(美国在1776年宣告独⽴。)

图示:

declared

()

in 1776

 

 

 

x

now

这个句⼦的时间副词是 in 1776 这个介词⽚语,标示出⼀个过去时间的括弧,动作落在这个括弧内,所以动词应采过去一般时 declared。

The dynamite was invented by the Chinese.(⽕药是中国⼈发明的。)

图示:

was

()

 

 

 

x

now

这个句⼦⾥⾯找不到时间副词,但是从句意来看,它描述的事情发⽣在久远以前,所以它的时间是个过去的括弧,动词应该是过去一般时。复杂的动词时态⼀定会有 be 动词在内。认定 be 为动词,它的过去简单式就是 was。后⾯的过去分词 invented 视为形容词,表达出「被动」语态,解释为「被发明」,作主语补语使⽤、修饰主词 dynamite。这就是

⼀般⽂法书所谓的过去简单被动态。

I was playing a video game when the power suddenly went out.(我正在打电动,忽然停电了。)

图示:

was

()

went out

 

 

 

x

now

这个句⼦的时间副词是 when 引导的那个副词⼦句。从副词⼦句⾥⾯的过去一般时动词 went out 来看,它的时间是⼀个过去的括弧——⽽且是个极⼩的括弧:从「有电」变成「没电」的那⼀刹那。以这个时间副词⼦句修饰主要⼦句的动词(我们⼀律认定 be 为动词),那么主要⼦句也应该是过去简单式,所以动词是 was。后⾯的现在分词⽚语 playing a video game 是动词 play 加宾语 a video game 的构造,加上 -ing 字尾变成现在分词⽚语之后就是⼀个形容词⽚语,当作主语补语使⽤、修饰主词 I 。现在分词的 -ing 字尾表达进⾏状态,相当于中⽂的「正在」(短时间)或「⼀直」(⻓时间)。就上⾯这个例⼦⽽⾔,playing a video game 应解释为「正在打电动」。这就是⼀般⽂法书所谓的过去进⾏式。

I was working on my paper throughout last week.(上周⼀整个礼拜我都在写论⽂。)

图示:

was

()

throughout last week

 

 

 

x

now

这个句⼦的时间副词 throughout last week 是个介词⽚语,表现出⼀个过去时间的括弧。动词因⽽要采过去一般时 was。后⾯的现在分词⽚语 working on my report 视为形容词⽚语,-ing 字尾表达进⾏状态,因为是⻓时间所以就解释为「⼀直」在写论⽂,当作主语补语使⽤、修饰主语 I。

The house was being renovated when it collapsed on the workers.(这栋房⼦正在翻修,突然塌下来压到⼯⼈。)

图示:

was

()

collapsed

 

 

 

x

now

这个句⼦的时间副词是 when 引导的那个副词⼦句,⼦句中过去一般时的动词 collapsed 显示它的时间是个过去的括弧。所以,主要⼦句的动词也应该是过去简单式,因此就是 was。后⾯的分词⽚语 being renovated 含有现在分词 being 与过去分词 renovated,整个分词⽚语当形容词补语使⽤、修饰主语 the house。现在分词 being ⾥⾯的 be ⽆意义、不须解释,字尾的 -ing 表达进⾏状态,因为是短时间所以解释为「正在」。过去分词 renovated 表达被动语态、解释为「被翻修」。整个⽚语 being renovated 仍视为现在分词⽚语,意思是「正在被翻修」。这就是⼀般⽂法书所谓的过去进⾏被动态。

⼆.现在时间

现在一般时,它的时间就是以 now 为中⼼的⼀个括弧。所有的简单式都是括弧形状的时间,但是过去简单式的括弧在 now 之前、未来简单式的括弧在 now 之后,所以括弧的⼤⼩都受到限制。只有现在简单式的括弧是以 now 为中⼼,它的⼤⼩不受限制,可以⼤到⽆限⼤、包含过去未来的⼀切时间。传统⽂法列出规则说「真理、事实等要⽤现在简单式」,原因就在此。看看⼏个例⼦:

I have a headache.(我头痛。)

图示:

have

(x)

now

这个句⼦虽然没有时间副词,但是现在一般时的动词 have 清楚表示时间就是 now。

Wang Chien-Ming pitches for the Yankees.(王建⺠为洋基队投球。)

图示:

pitches

(x)

now

这⼀句并没有时间副词,不过暗示是「现在」。王建⺠⼏年前不是洋基队的投⼿、⼏年后他也可能不再是。这个句⼦的时间是⼀个以 now 为中⼼的⽐较⼤的括弧,仍然该⽤现在一般时。

Our summer house is located on the lake.(我们的避暑别墅座落在湖边。)

图示:

is

(x)

now

这个句⼦同样也没有时间副词,但是现在一般时的动词 is 表示它的时间是⼀个以 now 为核⼼的括弧。后⾯的过去分词⽚语 located on the lake 是形容词补语,表达出被动语态:字⾯上是「被摆在湖边」,也就是「座落在湖边」。这就是⼀般⽂法书所谓的现在简单被动态。

Please be quiet, because everybody is sleeping now.(请安静,因为⼤家都在睡觉。)

图示:

is

(x)

now

Because 引导的这个表示原因的副词⼦句,时间是 now,动词⽤的是现在一般时 is。后⾯的现在分词 sleeping 视为形容词补语,表达出「进⾏」状态,解释为「正在」睡觉。这就是⼀般⽂法书所谓的现在进⾏式。

This store is selling everything at a 30% discount this week, to celebrate its 20th anniversary.(这家店本周全⾯打七折、庆祝20周年。)

图示:

is

(x)

this week

这个句⼦的时间副词是 this week,这是⼀个包含 now 在内的括弧,所以动词⽤的是现在一般时的 is。后⾯的 selling everything at a 30% discount 这个现在分词⽚语视为形容词补语,现在分词 selling 表现出进⾏状态。因为时间⻓(有⼀周),所以 selling 应解释为「⼀直卖」。这就是⼀般⽂法书所谓的现在进⾏式。

This road is closed to traffic now because it is being widened.(这条路⽬前封闭,因为正在拓宽。)

图示:

is

(x)

now

主要⼦句的时间副词 now 是标准的现在时间括弧,所以动词⽤的是现在一般时 is。后⾯的过去分词⽚语 closed to traffic 当形容词补语看待,过去分词 closed 表达出被动语态,解释为「被封闭」。另外在 because 引导的副词⼦句中,因为是同样的时间,所以动词也同样采取现在简单式 is。后⾯的 being widened 这个现在分词⽚语视为形容词补语。其中的现在分词 being 表达出进⾏状态、解释为「正在」(be 动词⽆意义、不须解释),过去分词 widened 表达出被动语态、解释为「被拓宽」。这就是⼀般⽂法书所谓的现在进⾏被动态。

三.未来时间

一般时的时间都是括弧形状。如果括弧在未来,就应该采取未来简单式。未来的事情由于尚未发⽣,牵涉到⽐较多的不确定因素,所以它的表达⽅式也⽐较多样。未来时间的简单式动词,整理⼀下有 6 种⽅式可以表达:

John will leave tomorrow. John is going to leave tomorrow. John is to leave tomorrow. John is leaving tomorrow. John will be leaving tomorrow. John leaves tomorrow.

时间副词 tomorrow 是⼀个放在未来的括弧,应采未来一般时。⼀般⽂法书所谓的未来简单式是指上述的第 1 种:will leave。这种使⽤到助动词 will 的讲法,具有最浓厚的「不确定」语⽓,表示「到时候将会、可能会」,语⽓的重点放在未来。

第 2 种讲法 is going to leave 和第 1 种 will leave 相当接近,不过它⽐较⼝语化、⽐较不正式。⽽且 is going to leave 这种说法的语⽓⽐较偏重在「现在」的意图、打算、征兆等等。例如:

Because the weatherman says it will rain this afternoon, I’m going to bring an umbrella.(因为⽓象报告说下午会下⾬,我打算带把⾬伞出⻔。)

句中的 it will rain this afternoon 讲的是「未来时间将会如何」,采⽤第 1 种讲法 will rain 来表示;⾄于 I'm going to bring an umbrella 讲的则是「现在打算到时候将如何」 ,采⽤第 2 种讲法 am going to bring 来表示。

第 3 种讲法 is to leave 和第 4 种讲法 is leaving 都可以视为第 2 种 is going to leave 的变化。

如果把动词改⼀下,从 leave 换成 go,可以看得更清楚:

John is going to go tomorrow.(第2种)

像 is going to go 这种讲法,⾥⾯的 going 和 to go 产⽣重复,是⽐较拙劣的说法。为了避免重复,可以省掉 going 只留下 to go,就会成为:

John is to go tomorrow.(第3种)

反之,如果省掉的是 to go、只留下 going,就会成为:

John is going tomorrow.(第4种)

这两种省略的说法分别相当于前述 6 种说法中的第 3 种和第 4 种。所以:第 3 种未来式 John is to leave tomorrow 和第 4 种未来式 John is leaving tomorrow 都可以视为第 2 种未来式 John is going to leave tomorrow 的省略。第 5 种变化则是在第 4 种前⾯再加⼀个 will,成为 John will be leaving tomorrow,意思还是差不多。

⽽且,最适合采⽤第 3、第 4、第 5 种讲法来表达的未来式动词,⼤都是⼀些和 go 有点关连的字,像是 go, come, leave, arrive, begin, end 等等。这些表示「来、去、离开、到达、开始、结束」的字眼,往往代表⼀种「⽬前的规画或打算」,这和第 2 种 be going to V 代表「⽬前的规画或打算」的讲法是同样的性质。为了避免重复,所以经常省略成为 be to V(第 3 种)、be Ving(第 4 种),或 will be Ving(第 5 种)。例如:

The weatherman says a Typhoon is coming this way.(⽓象报造说台⻛要来了。)

The train is leaving in 10 minutes.(⽕⻋再过⼗分钟要开。)

We will be arriving in Shanghai soon.(我们快要抵达上海了。)

The final game is to start in five minutes.(决赛再过五分钟即将开始。)

⾄于第 6 种讲法 John leaves tomorrow,完全是把未来才要发⽣的事情当做「事实」、采⽤现在一般时来叙述。这是语⽓最肯定的⼀种讲法。例如:

The train leaves at 2:30.(⽕⻋两点半开。)

World Cup finals begin tomorrow night.(世界杯决赛明晚开打。)

这些句⼦讲的都是「早已排定」的事情。虽然尚未发⽣,但是已经⾮常确定,可以排除掉带有不确定意味的助动词 will、直接⽤现在一般时把它当做事实来叙述。

再看⼀个未来式的例⼦:

I will discuss the plan with my boss next week.(下星期我会和⽼板谈⼀下这个计画。)

图示:

 

x

now

 

 

will discuss

()

next week

时间副词 next week 是⼀个未来时间的括弧。只要可以括出时间来就是一般时。未来的事情还没发⽣、尚未确定,所以要加⼀个助动词 will 在前⾯,意思是「到时候会」。

过去时间的未来

如果以某个过去时间为出发点,它的未来式通常要⽤到过去拼法的 would。例如:

It was mid-1945; Japan would soon raid Pearl Harbor.(时间是1945年中;⽇本即将偷袭珍珠港。)

图示:

 

()

mid-1945

 

 

would raid

()

soon

 

 

 

x

now

⽇本偷袭珍珠港,这件事情发⽣在 1945 年底。相对于 1945 年中,偷袭珍珠港事件还在不久后的未来。但是这整个都是过去的事件,所以应该⽤过去拼法的 would soon raid 来表示未来式。

The weatherman said it would rain, but it didn’t.(⽓象报告说会下⾬,结果没下。)

图示:

 

()

said

 

 

would rain

()

 

 

 

x

now

⽓象报告员在「说」的时候,「会下⾬」还在未来。但是从过去式的 said 来看,这整件事情也是发⽣在过去,所以要采过去拼法的 would rain 来表现未来式。

⼀条⽂法规则

传统⽂法中列出⼀条规则:「表示时间或条件的副词⼦句,⽤现在式代替未来式」。这个变化在英⽂写作时确实要能够掌握,否则很容易出现错误。这个问题基本上属于语⽓(moods)的问题,本书在后⾯的章节会有更完整的处理,届时我们充分理解之后就不必理会这条规则了。⽬前我们先初步设法理解这条规则是什么意思。规则中说到「副词⼦句」,所以⾸先来看⼀下名词⼦句与副词⼦句的差别,以免套错了规则。

副词⼦句与名词⼦句

规则中所谓「表示时间或条件的副词⼦句」,我们先把范围缩⼩到两个连词:when 和 if。请⽐较下⾯这两句:

I know when he left the room.(我知道他何时离开房间的。)S V O(名词⼦句)

He forgot his briefcase when he left the room.(当他离开房间的时候,他忘了公事包。)S V O 副词⼦句

句 1 中的 when he left the room 是名词⼦句,当做动词 know 的宾语。连词 when 来⾃疑问词、解释为「何时」。原本是这么⼀个疑问句:When did he leave the room?,把问号拿掉、疑问词 when 转为连接词使⽤,就会变成 when he left the room 这个名词⼦句。句 2 中的 when he left the room 看起来完全⼀样,却是个副词⼦句,⽤来修饰动词 forgot 的时间,属于时间副词⼦句,when 是外加的从属连接词,解释为「当...时候」 。

在此作⼀个⼩归纳:若连词 when 是外加的、解释为「当……时候」,它引导的⼦句就是时间副词⼦句。若连接词 when 来⾃疑问词、解释为「何时」,它引导的⼦句则是由疑问句转变过来的名词⼦句。

接着再⽐较下⾯这两句:

I don't know if he will get the money.(我不知道他是否会拿到钱。)S V O(名词⼦句)

If he gets the money, he can help us.(如果他拿到钱,就能帮我们的忙。)副词⼦句 S V O

句 1 中的 if he will get the money 是名词⼦句,当做动词 don’t know 的宾语。连词 if 相当于 whether、解释为「是否」。原本是 Will he get the money? 这个疑问句,拿掉问号之后改为 whether/if he will get the money 这个名词⼦句。句 2 中的 if he gets the money 则是副词⼦句,⽤来修饰动词 can help 的条件,属于条件副词⼦句,连接词 if 是外加的、解释为「如果」。

作⼀个⼩归纳:若连词 if 是外加的、解释为「如果」,它引导的⼦句就是条件副词⼦句。若连接词 if 相当于 whether、解释为「是否」,它引导的⼦句就是由疑问句转变过来的名词⼦句。

了解⽂法规则

有了上⾯那两项归纳,我们就可以把前⾯那条⽂法规则范围缩⼩、改写如下:「When 解释为『当...时候』、if 解释为『如果』,这两种连词引导的副词⼦句要⽤现在式代替未来式」。接下来我们要问:为什么?

When he gets here, the police will be waiting.(当他来到这⾥时,警察将在等候。)

图示:

 

x

now

 

 

will be

()

when he gets here

主要⼦句 the police will be waiting 中的动词 will be 采⽤的是未来式,表示这是将来的事情。⾄于 when he gets here 这个⼦句,外加的连词 when 解释为「当……时候」,所以它引导的是个时间副词⼦句。为什么这种⼦句要⽤现在式动词 gets 代替未来式 will get?这是因为:「当……时候」这种⼦句,语⽓就是「当做」已经到了「那个时候」。换句话说:这种⼦句⾥⾯要把未来「当做」已经到了、就是「现在」,所以动词要采⽤现在式。

接下来再看看 if 这个连词:

If he gets to the hospital in time, he’ll be able to see his father for the last time.(如果他及时赶到医院,就能⻅到他⽗亲最后⼀⾯。)

图示:

 

x

now

 

 

will be able to see

()

gets to

主要⼦句的动词 will be able to see 可以看出来是未来式,表示是未来时间。从属⼦句 if he gets to the hospital in time,它外加的连词 if 解释为「如果」,所以这是⼀个条件副词⼦句,⾥⾯的动词要⽤现在式 gets ⽽不⽤未来式 will get。为什么?

因为,所谓的「如果」,语⽓是把原本还不确定的假设情况当做是事实来叙述,也就是「假如果真」,所以应该采⽤表达「事实」的现在一般时。我们不知道例句中的「他」到时候能不能够赶得及。但是,所谓「『如果』赶到」,意思就是「当做是『真的』赶到」,⾥⾯就该采⽤事实语⽓来叙述,把这件事情当做是真的,所以要⽤现在式⽽不是未来式。

完成式

一般时的时间是个「括弧」形状,动作落在这个括弧⾥⾯。完成时的时间则是个「箭头」形状,指出「截⽌时间」,动作在这个截⽌时间之前就已经完成。因此,简单式是⽐较明确地说明动作发⽣在什么时间,完成式则没有说得那么清楚,只交代动作在什么时间之前「已经完成」、并没有详细说明到底是在什么时候发⽣。以下同样分成现在、过去、未来这三种时间来说明完成式。

⼀.过去时间

完成时的时间是个指出截⽌时间的箭头,如果指出来的截⽌时间在过去,就该采⽤过去完成时,例如:

Everybody had left before she got to the station.(在她赶到⻋站之前,⼤家都已经先⾛了。)

图示:

had left

 

got to

 

x

now

这个句⼦的时间由 before 引导的时间副词⼦句来表示。从副词⼦句的过去式动词 got to 可以看出时间是在过去,再从连词 before 可以看出,这个时间副词⼦句表达的时间可以画成⼀个以过去动作 got to 为截⽌点的箭头。换句话说,这个时间副词⼦句并没有清楚交代 leave 这个动作发⽣在什么时候(没有⼀个明确的括弧如 last week 之类来表示),只知道这个动作在 got to 这个过去动作之前已经完成。因此主要⼦句的动词应该采⽤过去完成时 had left。再看⼀个例⼦:

More than 60,000 soldiers had been killed when the President finally decided to pull out of the war.(当总统终于决定撤出战争时,已经有六万多名⼠兵阵亡。)

图示:

had been

 

decided

 

x

now

When 引导的时间副词⼦句中,过去式动词 decided 表示时间是在过去。从句意来揣摩,这六万多名⼠兵阵亡的时间应该不是「在总统下决定的那⼀瞬间」、⽽是在那之前「已经」阵亡。所以这个时间副词⼦句表达的时间仍然是个箭头形状、指向的截⽌时间是过去,所以该采⽤过去完成时 had been。视 had been 为动词,后⾯的过去分词 killed 视为形容词补语、带有被动语态,⽤来形容主语 more than 60,000 soldiers「被杀死」。这就是⼀般⽂法书所谓的过去完成被动态。

所有复杂的动词时态,⼀定牵涉到 be 动词。如果采⽤本书的⽅式,认定 be 就是动词,那么复杂的动词时态就只剩下两种:一般时(be)与完成时(have been)。再看⼀个例⼦:

The students had been preparing for the college entrance exam for three years when the Education Ministry suddenly announced a change of regulations.(学⽣⼀直在准备⼤学⼊学考试已经准备了三年,教育部才突然宣布改变规定。)

图示:

had been
for three years

 

announced

 

x

now

这个句⼦的时间副词有 for three years 这个介词⽚语和 when 引导的时间副词⼦句。从 when ⼦句的过去式动词 announced 来看,时间是在过去。再从介系词⽚语 for three years 来看,它的时间应该是个截⽌箭头,表示「算到 decided 为⽌已经有三年」,所以动词应采过去完成时 had been。后⾯的现在分词 preparing 视为形容词补语,具有「进⾏」状态,表示这三年的时间学⽣「⼀直」都在准备。这就是⼀般⽂法书所谓的过去完成进⾏式。

像 for three years 或 since three years ago 之类的介词⽚语,分别表示「为期有多久了」或「⾃从多久之前算起」,代表相同的意义:同样都⽤来表示「已经」有多久时间,所以通常都要采⽤完成时的动词。

⼆.现在时间

如果上下⽂都没有交代或暗示截⽌时间为何、只说「已经完成」,那么通常都要采⽤现在完成时来表示。例如你告诉朋友说「那部电影我已经看过了」,话中虽然没有说明「在什么时候之前」已经看过,但是⾔下之意⾃然就是「现在以前」,所以该采⽤现在完成时,如下:

I have seen that movie.

换句话说:除⾮上下⽂有明⾔或者暗示其他的截⽌时间,否则完成时都应该采⽤现在完成时。请看⼏个例⼦:

You can’t enter now because the concert has already begun.(你现在不能进场,因为⾳乐会已经开始了。)

图示:

has begun

 

now

这个句⼦并没有明确交代⾳乐会是什么时候开始的,只说「已经」开始。再从主要⼦句的时间副词 now 来看,截⽌时间就是现在。换句话说,⾳乐会是在「现在」之前已经开始,所以该采⽤现在完成时。再看⼀个例⼦:

Everything that can be done has been done; now we can only wait and see.(可以做的⼀切都已经做了,现在我们只能等着瞧。)

图示:

has been

 

now

主要⼦句的动词采⽤的是 be 动词的现在完成时 has been,表示「到现在为⽌已经」(be 动词本身⽆意义、不须翻译),后⾯的过去分词 done 当形容词补语看待、表示「被做完」,形容主语 everything。这就是⼀般⽂法书所谓的现在完成被动态。

Those marathon runners have been running for two whole hours without stop now.(那些⻢拉松选⼿⽬前为⽌已经整整跑了两个⼩时没有休息。)

图示:

have been
for two whole hours

 

now

这个句⼦的时间副词有 now 以及介词⽚语 for two whole hours,意思是「算到现在为⽌整整有两个⼩时」,很明显是⼀个以 now 为截⽌时间的箭头、应该采⽤现在完成时,所以动词是 have been。后⾯的现在分词 running 当形容词补语看待,形容主语 runners。字尾的 -ing 表示进⾏状态,所以 running 要解释为「⼀直在跑」。这就是⼀般⽂法书所谓的现在完成进⾏式。

完成时动词后⾯有没有现在分词的补语,有时候并⽆差别、有时候则会造成不⼀样的意思。请⽐较⼀下这两个句⼦:

I have lived here for 20 years. I have been living here for 20 years.(我在这(⼀直)住了20年了。)

图示:

have lived
have been
for 20 years

 

now

这两种讲法的意思差不多:后者⽤现在分词 living 当主语补语、强调「⼀直住」,前者没有强调,但基本上意思相同。再请⽐较⼀下这两个句⼦:

I have read your book.(您的⼤作我拜读过了。)

I have been reading your book.(您的⼤作我最近⼀直在看。)

图示:

have read
have been

 

now

前者表示「已经看完了」,后者则强烈暗示「还在看、尚未看完」。这两种讲法就有很⼤的差别了。

三.未来时间

未来完成时的时间也是⼀个箭头形状,唯⼀的差别在于它的截⽌时间在未来。例如:

By August I will have worked at the company for 30 years. By August I will have been working at the company for 30 years.(到⼋⽉为⽌我将在这家公司(⼀直)⼯作满30年。)

图示:

x

now

 

will have worked
will have been
for 30 years

 

August

上⾯这两个句⼦相同,时间副词都是介词⽚语 by August 与 for 30 years。表达的时间是「到⼋⽉为⽌有 30 年」,显然是个箭头形状、截⽌时间在⼋⽉(未来时间),所以该采⽤未来完成时。动词 will have worked 表示「将已经做满」30 年。如果动词改为 will have been,意思是「将已经」有 30 年,后⾯的现在分词 working 视为形容词、当主语补语使⽤。字尾的 -ing 表达出进⾏状态、表示这 30 年来「⼀直」在此⼯作。后者这种说法就是⼀般⽂法书所谓的未来完成进⾏式。

Experts estimate that the last of our oil reserves will have been depleted by the middle of this century.(专家估计,我们最后的⽯油蕴藏在本世纪中叶之前就会被⽤光。)

图示:

x

now

 

will have been

 

the middle of this century

这个句⼦的时间副词是介词⽚语 by the middle of this century。介系词 by 表示的是⼀个截⽌时间,⽽这个截⽌时间在未来,所以动词该采⽤未来完成时 will have been。后⾯的过去分词 depleted 当形容词补语看待,形容主语 the last of our oil reserves。过去分词字尾 -ed 表达出被动语态,所以 depleted 应解释为「被⽤完」。这就是⼀般⽂法书所谓的未来完成被动态。

In two more minutes, she will have been talking on the phone for three hours!(再过两分钟,她讲电话就会⼀直讲了3⼩时之久。)

图示:

x

now

 

will have been
for three hours

 

in two more minutes

句中的介词⽚语 in two more minutes「再过两分钟」指向未来时间,另⼀个介系词⽚语 for three hours「算算已经有 3 ⼩时」表示⼀个截⽌的箭头,所以动词该采⽤未来完成时 will have been。后⾯的现在分词 talking 视为形容词、当主语补语来形容主词 she,字尾 -ing 表达出进⾏状态,意思是「⼀直」讲话。这就是⼀般⽂法书所谓的未来完成进⾏式。

Leave the test papers at the front desk when you have finished the test.(考完式请把测验卷放在最前⾯的桌上。)

图示:

x

now

 

have finished

 

leave

这个句⼦的主要⼦句是命令句语⽓,所以动词 leave 采⽤原形动词。 When you have finished the test 是个时间副词⼦句,连词 when 是外加的从属连接词、解释为「当……时候」。所以,虽然说这句话时考试尚未考完,但是这个时间副词⼦句中必须「当做已经到了考完的时候」,也就是必须把截⽌点当做就是现在,因此动词要采⽤现在完成时 have finished 。⼀般⽂法书那条规则「表示时间或条件的副词⼦句,⽤现在式代替未来式」就是这个情况。上例是表示时间的副词⼦句,再举⼀个表示条件的副词⼦句为例:

You can leave early if you have finished the test before the bell rings.(如果在铃响之前已经写完了测验,就可以先离开。)

图示:

x

now

 

have finished

 

rings

句中的 before the bell rings 是个时间副词⼦句,以⼀个截⽌箭头的形状修饰动词 have finished 的时间,before 是外加的连词。说这句话时虽然铃尚未响,但是在时间副词⼦句中必须当做时间已经到了,所以动词要采⽤现在式的 rings。另外,if you have finished the test 是个表示条件的副词⼦句,if 是外加的从属连接词、表示「如果」。在这种副词⼦句中必须把假设的情况当做是真的,所以要⽤现在完成时 have finished ⽽不⽤未来完成式 will have finished。

时态⼀致性

⼀个句⼦当中如果有两个以上的限定⼦句,就会有两个以上的动词。这些动词在时态⽅⾯必须符合⼀致性:并不表示这些动词的时态必须相同,⽽是这些动词之间必须符合逻辑关系、并且表达出清楚的意思。例如下⾯这个句⼦就有问题:

Some buildings that were destroyed in the 921 earthquake were poorly constructed.

这个句⼦可以分成主要⼦句 some buildings were poorly constructed 与关系⼦句 that were destroyed in the 921 earthquake。时间副词是 in the 921 earthquake 这个介词⽚语,它括出⼀个过去时间的括弧,所以它修饰的关系⼦句的动词应采⽤过去一般时 were。但是,主要⼦句的时间应该不⼀样:建筑物被毁的时间是在 921 地震中、是过去时间,但是建筑物建造的时间不可能是在 921 地震中、应该是在之前才对。因此,主要⼦句的动词应该采⽤过去完成时⽽⾮过去简单式,如下:

Some buildings that were destroyed in the 921 earthquake had been poorly constructed.(921⼤地震中被毁的房屋,其中有⼀些当初建造不良。)

图示:

werehad been

 

in the 921 earthquake

 

x

now

建筑物被毁的时间是 in the 921 earthquake 这个过去时间的括弧内,因此关系⼦句的动词应采过去一般时 were,后⾯⽤过去分词 destroyed 当形容词补语,表达被动语态、表示「被毁」 。主要⼦句的动词则应采⽤过去完成时 had been,表示这些建筑物的建造时间是在 in the 921 earthquake 这个截⽌时间之前。后⾯⽤过去分词 constructed 当形容词补语,同样表达被动语态、表示「被建造」。

请观察下⾯这些例⼦当中的时态⼀致性:

Never before had rescue workers in Taiwan handled so many victims as they did in the aftermath of 921.(台湾的救难⼈员从来没有像921过后那样处理过那么多的受害者。)

图示:

didhad handled

 

in the aftermath of 921

 

x

now

这是⼀个⽐较级的句⼦。从属连词 as 引导的副词⼦句 as they did in the aftermath of 921,⾥⾯的时间副词是 in the aftermath of 921 这个介词⽚语,它括出⼀个过去时间的括弧,所以动词 did(代表 handled )采⽤的是过去一般时。但是主要⼦句的时间副词 never before 则是画出⼀个箭头形状、截⽌时间是过去时间的 in the aftermath of 921,因此它的动词应该采⽤过去完成时 had handled。

Under a provision of the law that has never been applied, the President is required to seek the approval of Congress before leading the country into war.(依照该法律⼀项条⽂的规定(这项条⽂迄今从未被引⽤过),总统必须先取得国会的同意才能带领国家参战。)

图示:

has never been

 

now

关系⼦句 that has never been applied 中,频率副词 never 画出了⼀个以 now 为截⽌时间的箭头,所以动词应采⽤现在完成时 has been,后⾯的过去分词 applied 表达被动语态、当形容词补语看待,解释为「被引⽤」。主要⼦句叙述的则是法律条⽂的规定,属于「事实」的性质,动词应采现在一般时,所以⽤的是 is,后⾯⽤过去分词 required 来表达被动语态,意思是「被要求」,当形容词补语使⽤。