Programavimo kalbos paprastai skirstomos į vieną iš dviejų kalbų tipų - sudarytas kalbas arba aiškinamas kalbas. Tačiau skirtumas ne ta kalba; tai įgyvendinant. Neteisinga sakyti, kad abi yra kalbos diegimo savybės, bet ne pačios kalbos savybės. Programavimo kalbos įgyvendinimas reiškia atotrūkio nuo aukšto lygio programuotojo mąstymo panaikinimą iki mašinos nulio ir nulio. Jei tai atliekama efektyviai, programuotojai gali susitelkti ties tikromis problemomis, o ne į mašinų detales. Taigi programavimo kalbą galima sudaryti ar interpretuoti remiantis įgyvendinimu.
Na, abiejų tipų programavimo kalbos turi savo stipriąsias puses. Kai kurios kalbos reikalauja, kad visas kodas būtų kompiliuotas, kad būtų galima vykdyti bet kurį kodą. Kitos kalbos interpretuoja kiekvieną nurodymą tuo metu, kai vykdomas kodas. Tiesą sakant, kompiliuotas kalbas paprastai kompiuteryje sudaro programuotojas; Kai programuotojas dalijasi programine įranga, jis / ji dalijasi sukompiliuotais 0 ir 1, bet ne šaltinio kodu. Tačiau naudojant aiškinamą kalbą kodas išsaugomas tokiu pačiu formatu, kokį įvedėte, ir jis turi būti išverstas vykdant. Pažvelkime į išsamų sudarytų ir išaiškintų kalbų palyginimą.
Kompiuteriai gali vykdyti tik mašininę kalbą, kuri yra centrinio procesoriaus (CPU) kalba ir yra labai paprasta. Bet kokio programavimo kalbos diegimo tikslas yra išversti šaltinio programą į mašinų kalbą, kad ją galėtų vykdyti CPU. Visi kalbų diegimai verčia šaltinio programą į tam tikrą tarpinį atvaizdą prieš verčiant tarpinį atvaizdą į mašinų kalbą. Tiesioginis programos vertimo į mašinų kalbą metodas vadinamas kompiliacija. Programa, parašyta kompiliuota kalba, prieš paleidžiant ją turi būti konvertuojama į kitą formatą. Šaltinio kodas prieš vykdant turi būti paverstas mašininio skaitymo instrukcijomis. Trumpai tariant, kalbos, kurių įgyvendinimas paprastai yra kompiliatoriai, o ne vertėjai, vadinamos kompiliuotomis kalbomis.
Vertėjas yra programa, parašyta kita kalba ir sukompiliuota į mašininio skaitymo kalbą. Pats vertėjas yra mašininės kalbos programa ir yra skirtas skaityti šaltinio programas iš aiškinamos kalbos ir jas interpretuoti. Išaiškinta kalba, priešingai, nesudaro šaltinio kodo į mašinų kalbą prieš paleisdama programą. Tai tik aiškina kodą skrendant. Taigi, jūs negaunate naudos ar trūkumų kompiliavimo klaidų. Aiškinamosioms kalboms reikalinga programinė įranga, vadinama vertėju, kuri paima šaltinio kodą ir vykdo vieną nurodymą vienu metu. Kai vykdote interpretuojamo šaltinio programą, faktiškai paleidžiate vertėją. Vertėjas yra mašinų kalbos programa, vykdanti visas jūsų parašytas programas aiškinamąja kalba.
- Programa, parašyta kompiliuota kalba, prieš paleidžiant ją turi būti konvertuojama į kitą formatą. Šaltinio kodas prieš vykdant turi būti paverstas mašininio skaitymo instrukcijomis. Išaiškinta kalba, priešingai, nesudaro šaltinio kodo į mašinų kalbą prieš paleisdama programą. Tai tik aiškina kodą skrendant. Aiškinamosioms kalboms reikalinga programinė įranga, vadinama vertėju, kuri paima šaltinio kodą ir vykdo vieną nurodymą vienu metu.
- Sukompiliuotose kalbose yra bent du žingsniai, pereinant nuo šaltinio kodo iki vykdymo, o aiškinamose kalbose yra tik vienas - vykdymas. Programa, parašyta išaiškinta kalba, nėra sudaroma - ją vykdo kita programa. Programa, parašyta kompiliuota kalba, eina per procesą, kad ją pakeistų iš žmogaus skaitomo teksto formato į mašininio skaitymo formatą. Programa, vadinama kompiliatoriumi, daro šį perėjimą.
- Kompiliuotos programos veikia greičiau nei interpretuojamos programos, tačiau interpretuotas programas galima modifikuoti, kol programa vykdoma. Dėl to interpretuojamos programos yra idealios tiesioginio veikimo programinės įrangos kūrimui. Dirbti su kompiliuotomis kalbomis gali būti malonu, nes komponuojant šaltinio kodą, randama daug klaidų. Šios klaidos, vadinamos kompiliavimo klaidomis, neleidžia kodo sudaryti. Priešingai, interpretuojamos kalbos nėra sudaromos, todėl jūs negaunate naudos ar trūkumų, susijusių su kompiliavimo klaidomis.
- Su aiškintomis kalbomis visas derinimo procesas vykdomas vykdant laiką. Nėra kompiliavimo žingsnio, per kurį galėtumėte išmesti visas savo kodo sintaksės klaidas; vietoj to turite paleisti programą, kad joje rastumėte klaidų. Tai tampa problema, kai jūs išaiškinote, kad programa modifikuoja failus arba daro bet kokius nuolatinių išteklių pakeitimus. Dėl to kai kurias klaidas sunkiau surasti, nes kodo nereikia kaupti. Aiškinamos kalbos taip pat kelia tam tikrų saugumo problemų internetinėje aplinkoje, nes kenksmingas kodas gali būti suleistas vykdant veiksmus.
Trumpai tariant, tiek sudarytos, tiek interpretuojamos kalbos turi savo stipriąsias puses. Kai kurios kalbos reikalauja, kad visas kodas būtų kompiliuotas, kad būtų galima vykdyti bet kurį kodą. Kitos kalbos interpretuoja kiekvieną nurodymą tuo metu, kai vykdomas kodas. Pagrindinis skirtumas tarp šių dviejų yra tas, kad yra bent du žingsniai, pereinant nuo šaltinio kodo iki vykdymo naudojant kompiliuotas kalbas. Tačiau naudojant aiškinamas kalbas yra tik vienas žingsnis - vykdymas. Kompiliuotos programos veikia greičiau nei interpretuojamos programos, tačiau interpretuotas programas galima modifikuoti, kol programa vykdoma.