过去完成时后用 long ago 还是用 long before?

有读者问这样一句话:

(1)I thought you had all died long ago.

问为什么用 long ago 而不用 long before?

这是一个老问题,许多辞书都谈过。严格说来,这里应用 long before,因为 had died 发生在 thought 之前。然而实际上,许多英美人倾向于用 ago。有的语法家认为它是错的;有一些较为开明的人则认为它较 before 生动,是可以接受的。人们之所以爱用 ago 也可能是因为它也可以从句子主语的说话时刻算起。例如下面一句中的 yesterday 就可以有两种解释:

(2)He said he had seen Tom yesterday.

一种解释是 yesterday 被错误地等同于 the day before,另一种解释是 yesterday 也可说是主语 he 说话时所指的“昨天”。