Ktora faza kompilacji wykryje błąd ???

0

Cześć
Mam takie pytanie i nie jestem pewny właściwej odpowiedzi.
Pomożecie ? :)

Jest taki program:

int main () {
a = 10;
return 0;
}

Która faza kompilacji wykryje błąd?

No i odpowiedź uzasadnij – abym wiedział dlaczego taka, a nie inna.

0

Najprawdopodobniej podczas analizy semantycznej. Podczas tego, sprawdzana jest poprawność na poziomie instrukcji.

0

Też tak myślę, bo sama instrukcja a = 10; jest składniowo poprawna a jej "błędność" można zauważyć dopiero kiedy nie znajdziemy pasującej deklaracji identyfikatora a.

0

Też mi się właśnie wydawało, że pierwotnym powodem jest brak deklaracji zmiennej "a" - lecz wolałem się skonsultować bo fazy kompilacji to już inna historia.

Może ktoś podeśle jakiś link do filmu (PL) albo jakiejś stronki gdzie te wszystkie fazy kompilacji są jakoś przedstawione że każdy zielony je złapie w locie ? :)

6

Która faza kompilacji wykryje błąd?

To zależy od kompilatora, i to nie ma znaczenia.

No i odpowiedź uzasadnij

Kompilatory są różnie pisane. Jeden może mieć więcej "faz", drugi mniej.
Może nawet nie mieć w tradycyjnym rozumieniu linkera. A inny może właściwą kompilację przeprowadzać dopiero w „linkerze” (link-time code generation).

Pytanie jest dziwne, bo nie istnieje jedynie słuszny sposób pisania kompilatorów.

0

A może to układający pytanie popełnił gafe pisząc o "fazach kompilacji", a mając na myśli procesy w rozumieniu - preprocesing, właściwa kompilacja, linkowanie itp.... ?

0

@Azarien @Endrju no są nawet interpretery C++ więc w ogóle może nie być faz kompilacji i błąd w runtime ;) Ale ja zakładam ze autor pyta o takie klasyczne ujęcie kroków kompilacji.

0

To jest jedno z pytań egzaminacyjnych. Czasem takie pytania są niby banalne, a mogą być mocno podchwytliwe :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1