Co to jest kompilator?
Kompilator to program, który tłumaczy kod źródłowy napisany przez programistę na kod zrozumiały dla komputera, najczęściej kod maszynowy lub kod pośredni. W trakcie tego procesu sprawdza składnię i część błędów semantycznych, a następnie tworzy plik wynikowy możliwy do uruchomienia albo dalszego przetwarzania.
W pytaniach egzaminacyjnych kompilator często jest opisywany jako narzędzie, które:
- konwertuje kod źródłowy na postać zrozumiałą dla maszyny,
- analizuje polecenia pod kątem błędów,
- generuje moduł wykonywalny lub kod wynikowy.
Jak działa kompilator?
Typowy proces kompilacji obejmuje kilka etapów:
1. Analiza leksykalna - podział kodu na elementy, np. słowa kluczowe, identyfikatory, operatory.
2. Analiza składniowa - sprawdzenie, czy kod jest zgodny z gramatyką języka.
3. Analiza semantyczna - kontrola sensu instrukcji, np. zgodności typów.
4. Generowanie kodu wynikowego - utworzenie kodu maszynowego, bajtkodu lub innej formy pośredniej.
Przykłady języków kompilowanych
Do języków zwykle kompilowanych należą m.in.:
- C,
- C++,
- C#,
- Java,
- Go,
- Rust.
Przykład kompilacji programu w C++:
g++ main.cpp -o program
./program
Polecenie g++ main.cpp -o program kompiluje plik źródłowy main.cpp i tworzy program wykonywalny o nazwie program.
Kompilator a interpreter
Kompilator tłumaczy program przed jego uruchomieniem, natomiast interpreter wykonuje kod bezpośrednio, instrukcja po instrukcji. Dlatego w tym pytaniu poprawną odpowiedzią jest kompilator, a nie interpreter, debugger ani dekompilator.