「can」と「be able to」には「能力」の意味があります。
2つの違いは、「be able to」には実際の動作を表す意味があることです。 しかしその違いは過去を表す場合に現れます。
また「be able to」の「be」は、be動詞の原形のことになりますので、主語によって「is」や「was」などに変わります。
次は「can」の例と、それを「be able to」に書き換えた例です。
I can swim.
(私は泳ぐことができます。)
I am able to swim.
(私は泳ぐことができます。)
I can speak English.
(私は英語を話すことができます。)
I am able to speak English.
(私は英語を話すことができます。)
現在形では、「can」を使う場合と「be able to」を使う場合とでは、その意味に差がほとんど見られません。
それはどちらも「能力」の意味が現れているからです。そこで普通は、現在のことを表す場合は「be able to」ではなくて、「can」のほうを使います。
しかし過去形では、「can」と「be able to」の間に意味の差が現れます。
それは過去形が出来事を過去のこととして捉えて、その出来事の「完結」を表すようになるからです。
次は、先の例を過去形で書き換えた例です。
I could swim.
(私は泳ぐことができた。)
I was able to swim.
(私は泳ぐことができた。)
I could speak English.
(私は英語を話すことができた。)
I was able to speak English.
(私は英語を話すことができた。)
上の4例ですが、「能力」の意味としては4例とも使うことができます。それは過去に持っていた能力として表しているだけだからです。
しかし過去形は出来事の完結を表すことになるため、実際の動作の完結も表すことができます。その場合「be able to」を使うことができますが、「could」は使うことができません。「could」は実際の動作を表すことができないからです。
したがって話し手が実際に生じた動作について話す場合は、上の4例の中で次の2例を使うことになります。
I was able to swim.
(私は泳ぐことができた。)
I was able to speak English.
(私は英語を話すことができた。)