二者区别主要体现在作状语时:
简单地说,
现在分词的完成式强调分词动作先于谓语动词动作;
(补充说明一下,如果表示分词动作与谓语动词动作同时发生,则用现在分词的一般式)
例如:
Being so hungry, he asked for more but was punished.
(这里用的是现在分词的一般式)
Not having passed the CET, he did not get a bachelor degree.
(这里用的是现在分词的完成式)
而过去分词作状语一般表示谓语动词动作发生时的背景、状态或情况。
例如:
Depressed, he did not go to the party with others.(表示谓语动词动作--go to the party发生时,主语的状态--depressed)
而“被动”的用法在这里没有什么需要说明的吧,句子如果表示被动,就用被动,如果不表示,则不用(有点像废话,呵呵)
总之,搞清楚现在分词的完成式与过去分词的区别就没问题了。
having been done 和done的差别
其实,两者都可以表示完成的状态,因为done已经包含了完成时的意思
除非句子特别强调动作的完成,语法上特别严谨,很多时候两者是可以通用的
published in english ,the book sells good.
having been published in english ,the book sells good.
两句句子都成立
现在分词的完成被动式一般做状语不作定语,而过去分词可以作定语。