Kõrgetasemeliste programmeerimiskeelte puudused

Arvutiprogrammeerimise terminoloogias jagatakse programmeerimiskeeled sageli "kõrgetasemelisteks" ja "madalatasemelisteks" keelteks. Erinevus nende kahe vahel on riistvara interaktsiooni küsimus. Lihtsamalt öeldes asuvad madala taseme keeled arvutisüsteemis "madalamal", tegelikule riistvaralisele suhtlusele lähemal. Kõrgetasemelised keeled on riistvarast eemale abstraheeritud. Selle abstraktsiooni tulemuseks võib olla kiirem ja paremini loetav kood, kuid väiksemad kiiruse eelised ja väiksem juurdepääs süsteemiressurssidele.

Abstraktsioon

Kõrgetasemelised keeled madala tasemega keeltest erinevad on keele abstraktsiooni tase süsteemiressurssidest. Igapäevane süsteemiressurssidega tegelemine võib muutuda aeglaseks ja valusaks. Selle probleemi lahendamiseks loodi kõrgetasemelised keeled, haldades süsteemi programmeerija jaoks, vabastades et ta täidaks keerukamaid ülesandeid, jättes tähelepanuta süsteemi pisidetailid, nagu mälu juhtimine. Selle puuduseks on aga see, et programmeerija võib sattuda olukorda, kus on vaja juurdepääsu süsteemile ja kõrgetasemeline keel ei saa seda juurdepääsu anda. Kõrgetasemeline keel ei sobi tavaliselt süsteemide programmeerimiseks.

Päeva video

Kiirus

Kõrgetasemelised keeled on tavaliselt "tõlgendatud" keeled, mitte "kompileeritud" madala taseme keeled. "Tõlgendatud" tähendab lihtsalt seda, et keel kasutab binaarfaili kompileerimise asemel tõlki, mis käivitab lähtekoodi rea kaupa. Tõlgid on aga sageli kompileeritud keeltes kirjutatud programmid. Seetõttu töötab tõlgendatav keel - näiteks Python - ainult Pythoni tõlgi peal, mis on kirjutatud C-keeles. See suurendab tõlgendatud programmide mälu ja ajakulu ning sageli käitatakse neid aeglasemalt.

Süsteemi iseärasused

Kõrgetasemelise koodi näiline tugevus on selle kaasaskantavus. Kõrgetasemeline kood võib töötada mis tahes süsteemis, kuhu on installitud vastav tõlk. Kui aga programm kompileeritakse arvuti jaoks, võtab see koostamisel arvesse kogu selle süsteemi keskkonda. Tõlgendatud keel on süsteemist juba nii kaugele abstraheeritud, et tõlgitav programm ei tea süsteemist midagi peale selle, mida tõlk saab talle pakkuda.

Programmeerimise piirangud

Kõrgetasemeliste keelte olemuse tõttu on teatud ülesandeid, mille jaoks need ei sobi või vähemalt veel ei sobi. Ilma juurdepääsuta süsteemiressurssidele on kiirete OS-põhiste rakenduste arendamine keeruline. Lisaks muutub isegi operatsioonisüsteemi arendamine problemaatiliseks. Mida rohkem tarkvara võrku liigub, muutub see tõsiasi vähem murelikuks, kuid kaubanduslikul ja tööstuslikul kasutamisel võivad tõlgitud keeled töötada liiga aeglaselt või riistvaraga suhtlemisest liiga kaugel.