①Get your homework done
宿題をやってしまいなさい
②Do your homework
宿題をやりなさい
訳だと違いがよくわからないと思うんですが、
②の方はいまその場ですぐやれってことを言っています
①は直訳は「宿題がやられた(終えられた)状態にする」ですから、
宿題をするという<行動>を命令している
というよりは
宿題が終わってる という<結果>が求められている
<完了している状態>が求められている
ということです。
だから今回の文はby tommorowっていう期限の表現とくっついて、
明日までに 宿題が終わってる という完了の状態にしてね
いつどのようにやってもいいけど、明日までに結果を残してね
と言っています。
まぁ結果を残すためには行動しなきゃいけないので、①と②は同じことを言っているんですけどね。
完了形のhaveを使った場合は、ここまでの説明とはまた違うものになります。
完了形って言ってもいろんな用法がありますが、共通しているのは「そこに至るまでの経緯に焦点をあてたい」ということです。
I work at this company for 30 years
私はこの会社で30年働いている
I have worked at this company for 30 years
私はこの会社で30年働いてきた
(30年働いてきて今に至る)
30年間という期間の経緯、いろいろあったけどそれを経ていまに至っている と言いたい
I did my homework
私は宿題を終わらせた
やったという行動をただ述べている
I have done my homework
私は宿題を終わらせた
いろいろあって、それを経て、終わっているという今の状態に至っている ということを言っている