Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
Žemo lygio programavimo kalbos
Žemo lygio programavimo kalbos - tai tokios programavimo kalbos, kurios atsižvelgia ir naudoja realias kompiuterio savybes, dėl ko programuojant tenka atsižvelgti į tą kompiuterio veikimą, o suprogramuotos programos paskui negali būti lengvai perkeltos iš vienos kompiuterio architektūros į kitą. Panašiai tokios kalbos neleidžia ir perkelti programų iš vienos operacinės sistemos į kitą.
Tipiškiausios žemo lygio programavimo kalbos - tai įvairūs asembleriai, kurie tiesiog naudoja konkrečių procesorių operacijas ir yra žemiausio praktinio lygio programavimo kalbos, kokios gali būti. Žodžiu, dar žemesnio lygio kalbų jau nebūna. Aišku, tikslumo dėlei turim pasakyti, kad būna dar visokie išvis kodai, bet niekas jais neprogramina, išskyrus baisiai retas išimtis. Taigi, praktiškai asembleriai yra žemiausio lygio kalbos.
Didžiausias klausimas būna apie visokias tarpinio lygmens programavimo kalbas, kaip kad C kalba ar C++, kur kad ir kaip gerai beprogramuotum, kažkurie dalykai nebūtinai liks perkeliami, ypač jei programa kiek sudėtingesnė ir kiek masyviau naudoja operacinę atmintį bei operacinės sistemos teikiamas galimybes.
Esminiai tokių tarpinių, bet vis dar gan žemo lygio kalbų požymiai:
- Smarkiai naudojamos rodyklės arba pointeriai
- Praktikoje nėra įmanoma bent kiek sudėtingiau programuoti, išvengiant rodyklių aka pointerių
- Kalba gerai abstrahuoja tik paprastuosius duomenų tipus, sudėtingi duomenų tipai lieka prastai abstrahuoti arba išvis neegzistuoja
- Sudėtingų tipų naudojimas daromas, vykdant papildomus veiksmus, skirtus atminties alokavimui
- Praktiniame programavime itin dažnai naudojami asemblerio intarpai
- Naudojami tiesioginiai kreipimaisi į operacinės sistemos funkcijas, neturint tas funkcijas abstrahuojančių programinių bibliotekų
Būtent dėl tų pačių čia išvardintų požymių programos, parašytos žemo lygio programavimo kalbomis, paprastai būna daug kompaktiškesnės ir greitesnės, negu analogiškos programos, kurioms parašyti buvo naudojamos aukšto lygio programavimo kalbos. Kitą vertus, yra ir kitų faktorių - pvz., vidutinė programuotojų kompetencija čia irgi dažniausiai smarkiai skiriasi, ir aukšto lygio kalbų atveju ji dažnai būna tiesiog kardinaliai prastesnė. Atitinkamai prastesni būna ir rezultatai - ir ne visada įmanoma pasakyti, ar kažkas buvo geriau ar blogiau dėl kalbos, ar dėl programuotojų.
Beje, čia toksai paradoksas, kad pvz., netgi kai kurios Basic realizacijos naudodavo rodykles ir asemblerio intarpus, dėl ko tos Basic programos pasidarydavo absoliučiai neperkeliamos, o pati Basic kalba virsdavo šiokiu tokiu košmaru. Ir tai nepaisant to, kad Basic paprastai priskiriama aukšto lygio programavimo kalboms - bet pasistengus ji būdavo sudarkoma taip, kad virstų kažkokio tarpinio lygio mišrūne. Taip buvo labai senais laikais, kai dar visur buvo DOS, bet visvien šitas siaubas - tai kompiuterių istorijos dalis, o pats žodis "Basic" iki šiol kai kuriems skamba kaip keiksmažodis.
Dar žr.
- NUXI - tokia klasikinė problema, kuri kartais iškyla, kai kas nors naudoja gan žemo lygio kalbas ir kartu nori turėti perkeliamumą tarp skirtingų procesorių architektūrų