Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Systemy CMS i narzędzia webowe Algorytmy i podstawy informatyki

Słowa kluczowe: Kompilator

Jaki program komputerowy przekształca kod źródłowy, napisany w konkretnym języku programowania, na język komputera?

A. Środowisko programistyczne.
B. Kompilator.
C. Edytor kodu źródłowego.
D. Debugger.

Pytanie z egzaminu CKE, czerwiec 2014 (arkusz E.14-X-14.05).

Kompilator to program, który tłumaczy kod źródłowy napisany przez programistę na postać zrozumiałą dla komputera, najczęściej kod maszynowy albo kod pośredni. W praktyce oznacza to, że plik z instrukcjami w języku C, C++, Java czy C# nie jest od razu wykonywany przez procesor w takiej formie, w jakiej go piszemy. Kompilator wykonuje analizę leksykalną, składniową i semantyczną, wykrywa błędy, może optymalizować kod, a potem generuje plik wynikowy, np. obiektowy, wykonywalny albo bytecode. Z mojego doświadczenia warto pamiętać, że kompilator nie tylko tłumaczy, ale też pilnuje wielu reguł języka. Dlatego ostrzeżenia kompilatora nie powinny być ignorowane, bo często wskazują na realne problemy jakości kodu. W branży dobrą praktyką jest kompilowanie projektu automatycznie, np. w procesie CI, używanie opcji typu warnings as errors oraz trzymanie kodu w standardzie języka, a nie w przypadkowych rozszerzeniach. Przykładowo gcc kompiluje programy C/C++, javac przekształca kod Javy do bytecode, a kompilator C# tworzy kod uruchamiany przez środowisko .NET.
W tym pytaniu łatwo pomylić narzędzia, bo w codziennej pracy programisty często używa się ich razem w jednym oknie programu. Debugger służy do uruchamiania programu krok po kroku, ustawiania breakpointów, podglądania wartości zmiennych i szukania błędów logicznych. On pomaga zrozumieć, dlaczego program działa źle, ale nie jest podstawowym narzędziem zamieniającym kod źródłowy na język procesora. Moim zdaniem to częsty błąd myślowy: skoro debugger pracuje z kodem i błędami, to ktoś zakłada, że też go tłumaczy. A to nie ta rola. Edytor kodu źródłowego to po prostu narzędzie do pisania i wygodnej edycji plików, często z kolorowaniem składni, podpowiedziami i formatowaniem. Sam edytor nie wykonuje analizy składniowej w takim sensie jak kompilator i nie tworzy programu wynikowego. Środowisko programistyczne, czyli IDE, może zawierać edytor, kompilator, debugger, terminal, system budowania i integrację z repozytorium, ale jako całość nie jest nazwą konkretnego mechanizmu tłumaczenia kodu. To trochę jak warsztat: ma wiele narzędzi, ale śrubokręt i cały warsztat to nie to samo. Prawidłowym pojęciem jest kompilator, bo to on przeprowadza etapy takie jak analiza kodu, wykrywanie błędów składniowych, optymalizacja i generowanie kodu maszynowego albo pośredniego. W językach webowych bywa jeszcze zamieszanie z interpreterami i silnikami JIT, np. JavaScript często jest wykonywany przez silnik przeglądarki, ale ogólna definicja programu tłumaczącego kod źródłowy na język komputera wskazuje właśnie na kompilator.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.