Java baitkoodi) - Kompilaator teeb neist assemblerikeelsed ajutised failid / võtab “source code”i ja tõlgendab selle masinale arusaadavaks koodiks. Masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näited: C, Fortran, Go. Interpreteerimine – masinkoodis programm nimega interpretaator loeb sisse X keeles faili, teisendab ta nö pseudo-assembleriks / vahekoodiks ja asub seda vahekoodi varianti rida-realt täitma. Näited: Python, PHP, Perl, vanemad Javascripti mootorid jne. Funfact: Programmi interpreteerimine on ca 10-200 korda aeglasem, kui kompileeritud koodi täitmine. Põhimõtteliselt saaks igas keeles kirjutatud programme nii interpreteeritult täita kui kompileerida. Praktikas eelistatakse vahel interpreteerimist, vahel kompileerimist. Interpreteerimisel on ka kompromissvariandid:
...) Parser ehk süntaksianalüüs: süntaksipuu - Parser ehitab mällu süntaksipuu, mida siis edasi töödeldakse Kuidas keeles X kirjutatud programmi täidetakse? Kompileerimine: masinkoodis programm nimega kompilaator teisendab keeles X programmi masinkoodfailiks Y. Seejärel täidetakse saadud masinkoodis programm Y. Näited: C, Fortran, Go Interpreteerimine: masinkoodis programm nimega interpretaator loeb sisse X keeles faili, teisendab ta nö pseudo-assembleriks / vahekoodiks ja asub seda vahekoodi varianti rida-realt täitma. Näited: Python, PHP, Perl, vanemad Javascripti mootorid jne. NB! Programmi interpreteerimine on ca 10-200 korda aeglasem, kui kompileeritud koodi täitmine. Põhimõtteliselt saaks igas keeles kirjutatud programme nii interpreteeritult täita kui kompileerida. Praktikas eelistatakse vahel interpreteerimist, vahel kompileerimist. Programmeerimiskeelte kolm põhi-erinevusteemat: Süntaks (kuidas kirjutatakse näiteks if .. then .
Näited: Python, PHP, Perl, vanemad Javascripti mootorid jne. NB! Programmi interpreteerimine on ca 10-200 korda aeglasem, kui kompileeritud koodi täitmine. Põhimõtteliselt saaks igas keeles kirjutatud programme nii interpreteeritult täita kui kompileerida. Praktikas eelistatakse vahel interpreteerimist, vahel kompileerimist. Kompromissvariante: Kompilaator kompileerib X faili vahekoodiks Y, seejärel interpreteeritakse vahekoodi Y (Python, Java). Interpretaator interpreteerib vahekoodi Y, kuid kompileerib töö ajal osa Y-st masinkoodiks, mida seejärel täidab (Java ja Firefoxi Javascript) nn just-in-time compilation ehk JIT. Chrome V8 Javascript: kompileerib algul kogu programmi masinkoodiks kiire kompilaatoriga, seejärel kompileerib töö käigus selgunud kriitilised kohad aeglasema