Compilarea reprezinta transformarea codului sursa in cod intermediar si/sau cod masina.
Practic cuvintele folosite in limbajul care se compileaza sunt transformate in simboluri si coduri ce pot fi intelese mai rapid de catre procesor.
Exista ideea de a compila intr-un limbaj intermediar si apoi in cod masina sau direct in cod masina, dar astea sunt detalii si optimizari.
Ca exemple de limbaje care se complileaza incepi cu C, C++, C#, VB, Delphi, cam majoritatea.
Acestea formeaza cod executabil care poate fi lansat in executie, de unul singur. In general acesta este mult mai rapid decat cel interpretat.
Limbajul de programare interpretat este executat de catre un interpretor. Practic, un program scris intr-un limbaj de programare interpretat nu poate fi lansat decat in cazul in care exista si interpretorul. Se lanseaza in interpretor cu alte cuvinte si va accesa resursele calculatorului prin intermediul interpretorului.
Acestea sunt mai lente, ca si viteza de executie, dar sunt bune in sensul ca se pot executa si modifica rapid.
Exemple: JavaScript, LUA, Java.
Sunt o groaza de alte diferente intre acestea. Un exemplu ar fi faptul ca un limbaj, cand compileaza iti verifica si sintaxa si daca variabilele/obiectele folosite sunt corecte si sunt initializate, etc. Practic esti sigur ca in momentul in care lansezi aplicatia va merge bine (daca ai datele corecte si nu folosesti aiureli pe acolo).
De asemenea limbajul compilat functioneaza pe sistemele de operare pentru care a fost compilat.
Limbajul interpretat este in general independent de platforma.
La limbajul interpretat este foarte posibil sa realizezi doar in momentul executiei (pe un anumit branch de executie de cele mai multe ori) daca ai vreo eroare.
Datorita faptului ca sunt foarte foarte multe diferente intre ele, depinde doar de nivelul la care vrei sa cobori sa intelegi, te sfatuiesc sa te uiti un pic pe wikipedia.