Not having completed the programme,they have to stay there for another two weeks

问题描述:

Not having completed the programme,they have to stay there for another two weeks
请看一下这个句子,我觉得应该是用Not completing啊?
非谓语动词如果是在谓语动词之前的话,也就意味着“完成这项工程后再留下”
这不符合逻辑思维啊?

这句子没错,这是用非谓语做状语的句子.
Having done表示完成动作完全造成的结果或者影响,not having done则表示未完成这动作造成的结果或者影响,have在这里不强调完成,而是强调影响.
Doing只表示伴随状态.
其次,非持续性动作不可以用进行时.
从这两方面来讲,都必须用完成时态.
去掉否定,看下例就明白了.
Having completed the work fast, they can all leave early.
Completing the work fast, they can all leave early.
这两句的语义是不一样的,而且第二句从语法上讲是不成立的.
必须用持续型动词才能表示伴随:
Working alone, he can only finish the cleaning slowly.假定两句语法成立,那么语义上:1. (由于已经)快速地完成了工作,他们能早点离开。2. 快快地完成了工作,他们能早点就离开(了)。所以,having done强调原因, doing表示的是伴随某动作的进行或者某种动作状态的存在,某人在做某事。二楼说的不太对,其实原句写成:They didn't complete the programme (yesterday), so they have to stay there for another two weeks. 这样也是对的。不能说因为非谓语状语是完成时,改成完整句就一定是完成时。