Opis wskazuje na język, w którym program nie jest uruchamiany bezpośrednio jako kod maszynowy dla konkretnego procesora, lecz najpierw powstaje kod pośredni, a dopiero potem jest on wykonywany przez maszynę wirtualną. Tak działa Java: kompilator tworzy bajtkod, który uruchamia środowisko wykonawcze JVM.
Dlaczego poprawna jest odpowiedź "Java"?
- W Javie standardowym artefaktem kompilacji jest bajtkod (instrukcje niezależne od konkretnej architektury CPU).
- Wykonanie programu odbywa się w maszynie wirtualnej (JVM), co ułatwia przenośność między systemami.
- To podejście jest często streszczane ideą "write once, run anywhere".
Dlaczego pozostałe odpowiedzi są niepoprawne w kontekście opisu?
- "C++" jest zwykle kompilowany do kodu maszynowego zależnego od procesora i systemu/ABI; nie wymaga typowej maszyny wirtualnej do uruchomienia programu.
- "Pascal" to nazwa rodziny języków i kompilatorów; w klasycznym ujęciu program jest kompilowany do kodu natywnego (choć istnieją różne implementacje, nie jest to charakterystyczna cecha definiująca język w sposób podany w pytaniu).
- "Assembler" jest ściśle związany z konkretną architekturą procesora: kod asemblera i wynikowy kod maszynowy są zależne od CPU, więc nie spełniają warunku "niezależnego od procesora".
Wskazówka egzaminacyjna: w pytaniach o kod pośredni i maszynę wirtualną szukaj pojęć typu bajtkod i JVM oraz skojarzenia z wieloplatformowością. Gdy w odpowiedziach pojawia się asembler albo C/C++, zwykle chodzi o kod natywny, a nie o warstwę VM.