1里面的造句,has是现在完成时,不可能发生在过去式的went之前,所以只能说he had finished his homework before he went to bed. ①就不对了,同理,②的时间先后顺序也反了,过去完成时表示“过去的过去”,是不能发生在过去式之后的.②只能改成he finished his homework before he went to bed或者和①一样.has gone 这种用法一般只用在去一某地还未归,这里不能这样用,只能用went to bed. ④是可以的.
2里面,before表时间一般表示的是“以前做过/未做过某事”,①语法上还算讲得通,但是意思就变成“他以前做过他的作业”,一般无这种用法.同理, ②表示的意思也是“他以前做过他的作业”,不大通顺.③应该是Tom has never been isolated from his friend before吧?这样用是可以的,表示“tom以前从来没有被朋友孤立过”.类似的有He has done this before,表示他以前也这么干过,其实意思上跟he did this before一样的
英语这东西其实哪有这么严格的语法啊,就算一条条列出来也总会有特例,我敢说你们老师讲题的时候肯定这样讲过,“这种用法是个特例”之类的.其实都是中国人自己编出来为难自己的,要想用的熟练就要多读多看,语感有了自然就知道怎么用了.
加油咯~~