对于我国初学或学过几年英语的人来说,现在完成时这个时态是比较困难的。所以在比较现在完成时和过去一般时之前,有必要搞清现在完成时的基本概念。概括地说,现在完成时表示过去的动作和现在的结果。这是什么意思呢? 第一,现在完成时所表示的动作(包括状态在内)是在过去发生的,也可以说是在现在以前完成的。有的动作是离现在不久完成的,如“He has gone.”; 有的动作则是离现在颇久或很久完成的,如“He has travelled in Tibet.”。 第二,现在完成时所表示的动作虽然发生在过去; 然而我们的兴趣并不在于过去的动作,而在于过去的动作对现在所产生的影响或所造成的结果。我们说He has gone时,我们所强调的不是动作发生在过去,而是它对现在所造成的结果,即“He is not here.”。 “He has travelled in Tibet.”所强调的也不是过去的动作,而是现在的结果:“He knows about Tibet.”或“He knows what Tibet is like.”。 第三, 现在完成时既然强调现在的结果,它所用的助动词又是have (has), 所以它是一个现在的时态。现在完成时既然是现在时态,当然不可以与过去某一时点或时段连用,不可说“He has gone three minutes ago.”或“He has travelled in Tibet last year.”。顺便说一句,现在完成时虽不可与具体确切的过去时间连用,但可以和笼统的过去时间连用,至于具体和什么表过去时间的词连用,则详见英语语法书,这里就不赘述了。
弄清现在完成时的基本概念之后,对现在完成时和过去一般时进行比较就比较容易了。当然还有困难。造成困难的原因主要有二: 两个时态皆可无时间状语; 两个时态都有些特殊的习惯用法。为了解决这些困难,我们试找一些较为常见的句子比较如下:
(1)Have you finished? (a)
Did you finish? (b)
两句都是问对方“完了没有”,如问“讲完了吗?”但(a)句是紧接着对方问的,着重现在,意即“如你讲完,我想接着你讲”。(b)句则用在对方已经结束讲话一会儿之后,譬如说过了一会儿我要发言,突然想起应该问问对方说完了没有,这时就得用过去一般时。其含义是:“刚才你讲完了吗?”这个过去时间虽未明白表示出来,但是有此“内涵”则是没有疑问的。
(2)Have you seen the film? (a)
Did you see the film? (b)
这两句话的目的性不同。(a)的目的在于解决现在的问题,即“如你没有看过这个电影,那么咱们就一起去看吧”,也可能是“如你已看过,那就告诉我这个片子好不好,是否值得看”。当然还有别的可能性,要视当时的情况而定。不管具体目的如何,其兴趣在于解决现在的问题,则是共同的、不变的。(b)句的兴趣则纯粹在于过去,与现在没有关系。又,电影如仍在上映或说话人刚看过电影,必须用(a)句;反之,如电影已停止放映或在电影放过的第二天,则须用(b)句。这两种情况并不难解释: 前者强调现在,后者纯粹谈论过去。
(3)What's happened? (a)
What happened? (b)
(a)句相当于“I see that something has happened; what is it?” (b)句则内涵一个双方都了解的一个过去时间。在实际生活中,这两句话并无多少区别。但在美国似乎多用过去一般时。同样地,美国人多说“Nothing happened since”,较少说“Nothing has happened since”。
(4)Who's taken my pen? (a)
Who took my pen? (b)
和上例一样,两句区别不大。如细加琢磨,(a)句是一个一本正经的问题;(b)句则轻松,还可能带有感情色彩。这里读者可能要问: (b)句用过去一般时,应与现在无关,但为什么在这里又与现在有关了呢? 首先,我们说过去一般时与现在无关,是相对的,不是绝对的;其次,前已提过,在这种情况下,美国多用过去一般时。
(5)Have you ever heard him sing? (a)
Did you ever hear him sing? (b)
(a)句着重事实,在问对方是否知道他唱得如何。(b)句着重时间,问对方什么时候听过他唱歌。但在美国,(b)句用得较多。
这里有一种特殊情况,应引起注意:
(6)Have you ever heard of such a thing? (a)
Did you ever hear of such a thing? (b)
(a)句是认真地提问,希望对方认真地回答。(b)句则是修辞性的问题,并不要求对方回答, 它的真正意思是: 你当然没有听说这种事情啰。在口语中,(b)句也可简略为:“Did you ever?”
(7)What have I done to make you so angry? (a)
What did I do to make you so angry? (b)
(a)句用现在完成时,是一个认真提出的问题,而且对方仍在生气。(b)句中用的是过去一般时,意在过去,现在是否仍在生气则不一定,也无关重要。又,(b)句可能是带有感情色彩的。
(8)My chief purpose has been to help the Chinese student of English. (a)
My chief purpose was to help the Chinese student of English. (b)
(a)句与现在有密切关系,所用的现在完成时所表示的过程也可能就是写一本书或一篇文章的过程,而这本书或这篇文章现已写好出版了。(b)句用过去一般时则与现在没有什么关系。
(9)Who's been here while I was out? (a)
Who was here while I was out? (b)
两句的区别在于: (a)句有说话人发现了有人来过的迹象,(b)句则没有。读者可能要问: (a)句中while I was out可否改为while I have been out? 可以。但要注意两点:一是如用have been out, 主句中的has been则有重复性,意思变成了“每逢我出去,谁常来呀? ”这种用现在完成时来表示过去的动作或状态的重复性的例子并不罕见,再如:
(10)I have told you forty times!
(11)It's rained every day this week.
(12)Every time I have come to see you you have been out.
(13)When heavy rains have fallen in the hills the river has broken its dikes. (此句似乎纯谈过去,与现在无关)
二是在现代英语里,状语从句中的现在完成时往往被过去一般时所代替。如:
(14)Here men have been killed when they fired at a grizzly.
(15)Where have you been? (a)
Where were you? (b)
(a)句问:“你(刚才)到哪儿去啦?”(b)句只问过去某一时间对方在哪里。另外要注意 have been和 have gone的意思不同: 前者不但去了,而且已回;后者意谓去了,尚未或没有回来。又,have been如不与时间状语连用,它所表示的状态已经结束,如:
(16)You look pale. Have you been ill? (being ill这一状态已经结束,即已病愈;脸色不好是病后的现象,绝不说明还在病中)
但如与时间状语连用,说“He has been ill for three weeks”,则病的状态可能延续(即现在仍在病中);但也可能不延续(即病已好)。究竟属哪一种可能,应视具体情况而定。
(17)I have always liked him. (a)
I always liked him. (b)
两句意思完全一样,但在现代英语里多用(b)句,(a)句似乎已不大用。理由是: 现在完成时往往显得笨重,没有过去一般时那样简洁。
(18)He has lived in Shanghai for ten years. (a)
He lived in Shanghai for ten years. (b)
(a)句可能有两种意思: 一是此人仍在上海,一是他已不在上海。但不管是哪一种意思,此人还活着,这是肯定无疑的。(b)中的“他”则可能已死去。
(19)He has been called a thinker. (a)
He was called a thinker. (b)
如“他”已死,(a)句则表明他的声誉(作为思想家)至今犹在;(b)句纯指过去,说明“他” 已被人忘记。
(20)Tianjin has been visited by Comrade Liu Shaoqi. (a)
Tianjin was visited by Comrade Liu Shaoqi.(b)
(a)句是可以说的,虽然不可说“Comrade Liu Shaoqi has visited Tianjin.”, 因为少奇同志已不在人间。这句话用现在完成时是表示至今天津人民仍怀念少奇同志。(b)句则只谈过去,与现在无关。
(21)She's gone long ago. (a)
She went long ago. (b)
(a)句强调现在她已不在此地,相当于“She is said to have gone long ago.”, 注意笼统的时间状语long ago。有的语法家则说这种时间状语是一种添补性或后来想到的(after-thought)说法。(b)句很简单,单指过去,与现在无关。
综上所述,可以简单地归纳为下列几点:
1. 现在完成时是现在时态,与现在密切相关;过去一般时一般与现在无甚关系。
2. 现在完成时有时有持续性,可以持续下去;过去一般时则往往无持续性。
3. 现在完成时有时有重复性;过去一般时一般没有。
4. 现在完成时比较认真严肃,甚至笨重;过去一般时则较轻松方便,有时还带有感情色彩。
5. 现在完成时如指离现在较近的动作,往往可以被过去一般时所代替,在美国尤其如此。
6. 现在完成时后面常常不跟指过去的时间状语,如有时间状语,则一般须表示笼统的过去时间;过去一般时后面常跟有时间状语,所表示的过去时间可以是笼统的,更可以是具体而确切的。
7. 现在完成时如用在主句或一独立句中,后面的时间状语从句或另一独立句中的谓语动词常用过去一般时。
