情态动词完成式是怎么来的?

高中语法里,情态动词的完成式可是一块硬骨头,许多学生对它都很头疼。情态动词的完成式并不是直接描述过去发生的动作本身,而是说话者对“某个已经发生的过去事件”所做出的判断、推测、评价或表示虚拟。在给它下定义时要把时间锚点放在“现在”,即说话者是在“现在”这个时间点去回视和评估过去的情况。 情态动词完成式(must/may/can/could/should/ought to/need + have + V-ed)需要有个不可动摇的概念,这就是它的核心功能不是描述过去发生的动作本身,而是说话者对“某个已经发生的过去事件”所做出的判断、推测、评价或表示虚拟。举个例子吧,你今天早上带着钥匙出门了,现在却发现钥匙不在家,这就说明你可能把它落下了。所以,“He must have forgotten his keys”就意味着他绝对是把钥匙忘在家里了。而如果有很多可能性还没搞清楚,比如你不确定他是忘记带钥匙还是弄丢了,这时候就用May或者Might来表达不确定性。 你知道情态动词完成式是怎么来的吗?这个故事还要从古代英语说起。在古代英语中,Must的意思就是命令和强制。这种命令感一直保留到现在,所以Must have done的确定性最高。May和Might源自古英语中的“有权力/可能”,所以它们表示的是一种可能性,不确定性也就比Must大得多。 我想你可能听过这句话:“He can't have left his keys here; he took them with him this morning.”这句话就是说他不可能把钥匙忘在家里。他今天早上还带着钥匙呢,怎么可能忘记呢?Can't have done表示绝对不可能做过某事,语气很强硬。你可能会误写成Couldn't have done来表达这个意思,不过严格来说Can't have done才是正确用法。 最后我给你总结一下选用逻辑:如果你有非常充分的证据支持自己的推论,那么用Must;如果信息不够多,用May或者Might来表示一种可能性;如果你想批评别人本可以做某事却没做,用Could have done;如果你想表达责备或者遗憾的意思,用Should或者Ought to have done;如果你觉得自己做了多余的事想表达后悔之意,就用Needn't have done;最后想说得委婉点或者客气点呢?把Can换成Could,May换成Might吧。