KWALIFIKACJA INF2 - CZERWIEC 2015 (test 2)

PYTANIE NR 3.
Do zamiany kodu źródłowego na program wykonywalny służy
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Kompilator służy do przetłumaczenia kodu źródłowego na kod maszynowy i wytworzenia pliku wykonywalnego (często z udziałem etapu linkowania). Emulator jedynie naśladuje działanie sprzętu/środowiska, interpreter wykonuje kod na bieżąco bez tworzenia klasycznego "exe", a debuger pomaga wykrywać i analizować błędy.

Pełne wyjaśnienie:

Kompilator to narzędzie, które tłumaczy kod źródłowy napisany w danym języku (np. C/C++) na postać zrozumiałą dla komputera, czyli na kod maszynowy, a w praktycznym procesie budowania aplikacji prowadzi do uzyskania programu wykonywalnego (artefaktu binarnego). W typowym łańcuchu narzędzi kompilacja może obejmować także generowanie plików obiektowych oraz uruchomienie linkowania, aby powstał finalny plik wykonywalny.

Odpowiedź "emulator" jest niepoprawna, bo emulator nie tłumaczy kodu źródłowego na plik wykonywalny. Jego zadaniem jest symulowanie (naśladowanie) działania innej platformy, urządzenia lub środowiska, aby można było uruchamiać programy przeznaczone dla innego sprzętu/systemu.

Odpowiedź "interpreter" też nie pasuje do sformułowania o zamianie na program wykonywalny. Interpreter zwykle analizuje i wykonuje kod krok po kroku w czasie działania, bez wytworzenia klasycznego, samodzielnego pliku wykonywalnego jako efektu końcowego (choć istnieją rozwiązania mieszane, np. JIT).

Odpowiedź "debuger" jest błędna, ponieważ debuger służy do uruchamiania programu w trybie diagnostycznym, ustawiania pułapek, podglądu zmiennych i stosu wywołań oraz lokalizowania błędów. Nie jest narzędziem tłumaczącym kod źródłowy na binaria.

Na egzaminie warto pamiętać prostą mapę ról: kompilator "tworzy binaria", interpreter "wykonuje kod", emulator "udaje środowisko", debuger "pomaga znaleźć błąd".

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Kompilator to program, który tłumaczy kod źródłowy na kod maszynowy lub inną postać pośrednią, aby w efekcie powstał plik możliwy do uruchomienia. W praktyce jest częścią procesu budowania aplikacji i współpracuje m.in. z narzędziem linkującym biblioteki.
Kompilator wytwarza wynik kompilacji (np. plik obiektowy lub wykonywalny), a interpreter wykonuje instrukcje bezpośrednio podczas działania programu. Dlatego w językach interpretowanych nie musisz mieć klasycznego pliku wykonywalnego jako efektu kompilacji.
Emulator nie jest narzędziem tłumaczącym kod źródłowy. Jego rolą jest symulacja innego urządzenia lub środowiska (np. telefonu, konsoli). Pozwala uruchamiać gotowe programy przeznaczone na inną platformę, ale nie zastępuje kompilatora.
Debuger służy do diagnozowania błędów: zatrzymywania programu na pułapkach, podglądu zmiennych, analizy stosu wywołań i krokowego wykonywania kodu. Nie tworzy pliku wykonywalnego, tylko pomaga zrozumieć, dlaczego program działa nieprawidłowo.
Kompilacji używa się, gdy język i środowisko zakładają wytworzenie artefaktu binarnego (np. wiele projektów w C/C++). Interpretacji używa się, gdy kod jest uruchamiany przez interpreter (np. skrypty). W praktyce spotyka się też rozwiązania mieszane.
Tak, zwykle mają etap kompilacji, ale często do kodu pośredniego uruchamianego przez maszynę wirtualną. Potem środowisko uruchomieniowe może wykonywać kod, czasem z optymalizacjami w trakcie działania. Na egzaminie ważne jest rozpoznanie roli narzędzia, a nie szczegółów VM.
Najczęściej: kompilacja (tłumaczenie na pliki pośrednie/obiektowe) oraz linkowanie (łączenie z bibliotekami w plik wykonywalny), a potem uruchomienie. W zależności od języka mogą pojawić się dodatkowe kroki, np. pakowanie lub uruchomienie w VM.
Bo oba narzędzia są związane z "uruchamianiem" programu. Różnica jest taka, że kompilator wytwarza wynik kompilacji (binaria lub kod pośredni), a interpreter wykonuje kod na bieżąco. W zadaniach testowych warto szukać słów: "program wykonywalny", "artefakt", "kompilacja".
Debuger może uruchomić już zbudowany program w trybie diagnostycznym, ale nie zastępuje kompilatora. Najpierw musisz mieć skompilowaną aplikację (lub środowisko uruchomieniowe), a dopiero potem debuger pomaga obserwować działanie i znaleźć błędy logiczne lub wykonania.
Najpierw dopasuj narzędzie do funkcji: kompilator—tworzenie pliku wynikowego, interpreter—wykonywanie kodu, emulator—symulacja platformy, debuger—diagnoza błędów. Potem sprawdź, czy pytanie mówi o "zamianie na wykonywalny", "symulacji", czy "wyszukiwaniu błędów".
info

Statystycznie 73% uczniów zna prawidłową odpowiedź. średnio łatwe

Według specjalistów z branży: "Kompilator służy do przetłumaczenia kodu źródłowego na kod maszynowy i wytworzenia pliku wykonywalnego (często z udziałem etapu linkowania)."

Źródła:

  • Aho, Lam, Sethi, Ullman: "Compilers: Principles, Techniques, and Tools" (2nd Edition), rozdziały wprowadzające o procesie kompilacji
  • GNU GCC Documentation: "Using the GNU Compiler Collection (GCC)" – sekcje o etapach kompilacji i linkowania, https://gcc.gnu.org/onlinedocs/gcc/ (dostęp: 2026-03-04)
  • LLVM/Clang Documentation: "Clang Compiler User’s Manual" – opis działania kompilatora, https://clang.llvm.org/docs/UsersManual.html (dostęp: 2026-03-04)

Materiały:

  • Rozdziały o kompilacji i linkowaniu w podręcznikach z podstaw kompilatorów
  • Dokumentacja narzędzi: GCC lub Clang (sekcje o kompilacji i etapach builda)
  • Materiały o różnicach: kompilator vs interpreter vs VM (np. kursy podstaw programowania i inżynierii oprogramowania)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego