What's the difference between these two sentences, according to their meaning and structure:
I haven't come.
I didn't come.
Do they have the same meaning?
I'm going to change the verb in the sentence:
I didn't eat.
I haven't eaten.
Both mean the person did not consume a meal during some timeframe. As others have said, the tenses are different.
Did you eat yesterday?
No, I didn't eat yesterday.
(In this case, the simple past maps to yesterday)
When was the last time you ate?
I haven't eaten since last Friday.
(In this case, the present perfect refers to a time period starting last Friday and continues up to now.)
Did you go to the see the new movie last Friday?
No, I didn't go on Friday, I went on Saturday.
Have you gone to see the new movie yet?
No, I haven't gone yet. I'm planning to go this weekend.
When using the first person, I think we usually use go instead of come in conversations like these. However, we might say:
Did he come to the family reunion last week?
No, he didn't come. He had to work that day.
Has he come to any of the family reunions lately?
No, he hasn't come to a reunion since 2007.
The meaning is basically the same. Both tenses talk about completed actions. But you use present perfect (as many other uses) to connect the past event with the present. Consider the following sentences where you cannot use the present perfect:
When I was a child, I didn't come to school on time.
When I was a child, I haven't come to school on time.
(My school days are finished and no connection with the present is made.)