Augsta līmeņa programmēšanas valodu trūkumi

Datorprogrammēšanas terminoloģijā programmēšanas valodas bieži tiek iedalītas "augsta līmeņa" un "zema līmeņa" valodās. Atšķirība starp abiem ir aparatūras mijiedarbības jautājums. Vienkārši sakot, zema līmeņa valodas datorsistēmā atrodas "zemāk", tuvāk faktiskajai aparatūras mijiedarbībai. Augsta līmeņa valodas tiek abstrahētas no aparatūras. Šīs abstrakcijas rezultāts var radīt ātrāku, lasāmāku kodu, bet mazākus ātruma ieguvumus un mazāku piekļuvi sistēmas resursiem.

Abstrakcija

Tas, kas atšķir augsta līmeņa valodas no zema līmeņa valodām, ir valodas abstrakcijas līmenis no sistēmas resursiem. Darbošanās ar sistēmas resursiem ikdienā var kļūt lēna un sāpīga. Augsta līmeņa valodas tika izveidotas, lai risinātu šo problēmu, apstrādājot sistēmu programmētājam, atbrīvojot Viņai jāpabeidz sarežģītāks uzdevums, vienlaikus ignorējot sīkas sistēmas detaļas, piemēram, atmiņu vadība. Tomēr tam ir trūkums, jo programmētājs var nonākt situācijā, kad ir nepieciešama piekļuve sistēmai, un augsta līmeņa valoda nevar nodrošināt šo piekļuvi. Augsta līmeņa valoda parasti nav piemērota sistēmu programmēšanai.

Dienas video

Ātrums

Augsta līmeņa valodas parasti ir "interpretētās" valodas, nevis "kompilētās" zema līmeņa valodas. "Interpretēts" vienkārši nozīmē, ka valoda izmanto tulku, kas pa vienai rindiņai izpilda pirmkodu, nevis kompilē bināro failu. Tomēr tulki bieži ir programmas, kas rakstītas kompilētās valodās. Šī iemesla dēļ interpretētā valoda — piemēram, Python — darbojas tikai virs Python tulka, kas rakstīts C valodā. Tas palielina interpretēto programmu atmiņu un laiku, un tās bieži tiek izpildītas lēnāk.

Sistēmas īpatnības

Šķietami augsta līmeņa koda stiprā puse ir tā pārnesamība. Augsta līmeņa kods var darboties jebkurā sistēmā, kurā ir instalēts atbilstošs tulks. Taču, kad programma tiek kompilēta datoram, tā savā kompilācijā ņem vērā visu šīs sistēmas vidi. Interpretētā valoda jau ir abstrahēta no sistēmas līdz tādam līmenim, ka tulkotā programma par sistēmu nezina neko, izņemot to, ko tulks var tai nodrošināt.

Programmēšanas ierobežojumi

Augsta līmeņa valodu rakstura dēļ ir noteikti uzdevumi, kuriem tās nav piemērotas vai vismaz vēl nav piemērotas. Bez piekļuves sistēmas resursiem ir grūti izstrādāt ātras, operētājsistēmas lietojumprogrammas. Turklāt pat operētājsistēmas izstrāde kļūst problemātiska. Jo vairāk programmatūras pārvietojas tiešsaistē, šis fakts kļūst mazāk bažīgs, taču komerciālā un rūpnieciskā lietošanā tulkotās valodas var darboties pārāk lēni vai pārāk tālu no aparatūras mijiedarbības.