I am reading the grammar book - A Comprehensive Grammar of the English Language - these days. And now I am focusing on the 2 aspects - perfective and progressive - in Chapter 4: The semantics of the verb phrase.
Page 193 4.4
The third connotation, that the result of the action still obtains, applies to dynamic conclusive verbs (cf 4.33-5), ie verbs whose meaning implies the accomplishment of a change of state:
The apples have all been eaten.
My mother has recovered from her illness.
Have any of the visitors arrived?
Page 212 1st paragraph
Because of its resultative meaning, the simple perfective cannot be used with accomplishment verbs when the clause contains an adverbial of duration:
They've been repairing the road for months.
*They've repaired the road for months.
The above are 2 quotes from the book. Does these mean that dynamic conclusive/resultative verbs in simple perfective cannot work with duration adverbial?
*I have written the book for 2 years.
*I have cooked the dinner for 2 hours.
*I have eaten the food for 30 minutes.
So the sentences 1,2 and 3 above are wrong, aren't they?
What about these sentences?
?I have written on the table for 10 years.
?I have written 5 books for the past 10 years.
?I have repaired cars for 10 years.
Can above sentences 4, 5 and 6 be interpreted as HABIT (ie recurrent event) IN A PERIOD LEADING UP TO THE PRESENT?
What about other durative verbs?
?It has rained for 2 days.
My English has really improved since I moved to Australia.
I know that these durative sense verbs in perfective progressive work well with duration adverbial. It can mean both complete and incomplete.
- I have been writing on the table.
I have been writing on the table for 10 years.
It has been raining.
- It has been raining for 2 days.
The purpose of the question is to test my assumptions as follows:(roughly, it's a kind of framework for me to understand the relations among verbs, tenses and aspects and of course, there are exceptions.)
Durative sense verbs works well with progressive since both have the feature of duration.
Due to the meaning of accomplishment of dynamic durative verbs(esp. conclusive verbs), present perfect tends to imply the action already came to an end before now. They typically cannot work with duration adverbial in present perfect.
If an action of durative sense started in the past and it continued to present, whether it is completed now or will still continue further, perfective progressive is the most appropriate. Both with or without duration adverbial are fine.