Programski jezici se mogu podijeliti u dvije grupe. Mogu biti ili jezici visoke razine ili jezici niske razine. Svaka vrsta programskog jezika ima svoju svrhu. Uočavanje razlike između te dvije grupe programskih jezika je važan korak u otkrivanju kojeg ćete koristiti. Dakle, u čemu je točno razlika između njih i koliko ta razlika utječe na učenje programskog jezika? Počnimo s definicijama pojedine grupe i naučimo više o tome koji je jezik prikladniji za vas.
Postoji nekoliko karakteristika koje definiraju programske jezike visoke i niske razine. U nastavku ćemo ih navesti.
Programski jezici visoke razine:
- Pružaju apstrakciju.
- Slični ljudskom jeziku i čitljiviji.
- Ne bavite se upravljanjem memorijom.
- Primjeri: Java, Python, Ruby, C#, itd.
Programski jezici niske razine:
- Ne pružaju apstrakciju.
- Sličniji strojnom kôdu i nisu bliski ljudskom jeziku.
- Trebate upravljati memorijom.
- Primjeri: Asembler i strojni kôd.
Ako ste ikada pisali programe u programskim jezicima C ili C++, mogli ste primijetiti da ovi jezici omogućuju upravljanje memorijom (alokacija i oslobađanje memorije), ali imaju određenu razinu apstrakcije. Dok u programskom jeziku Java imate tzv. „ Java Garbage Collection“ koji automatski iz memorije uklanja objekte koji nisu referencirani.
Programski jezici niske razine
Kako bismo znali je li programski jezik visoke ili niske razine trebamo vidjeti ima li veze s apstrakcijom i koliko je jezik blizu operacijskog sustava. Jezici niske razine su obično bliže računalnom sustavu. Jedan od najčešćih jezika niske razine je strojni kôd.
Strojni kôd nema apstrakcije, on sadrži pojedinačne upute koje se šalju računalu. Strojevi razumiju samo bajtove koji su predstavljeni u binarnim formatima. U nastavku je primjer strojnog kôda.
Možete li pročitati ovaj kôd i shvatiti što će se dalje dogoditi? Računalo zna, ali kao što vidimo nije baš blisko ljudskom jeziku. Kada pišete strojni kôd morate odrediti jasne upute. Na primjer, ako treba dohvatiti informaciju iz memorije strojnim ćete kôdom morati reći računalu gdje ga pronaći. Strojni je kôd daleko najbrži za pisanje, ali i najteži za kreiranje programa.
Asembler je još jedan jezik niske razine koji je korak iznad strojnog kôda. Asembler pruža vrlo male količine apstrakcije, ali je sličan strojnom kôdu. Nije uobičajen kao C, ali je korak iznad strojnog kôda. Asembler se može izvršavati preko PicoBlaze Soft-procesora na FPGA čipu. U nastavku je primjer množenja u Asembleru.
Programski jezici visoke razine
Programski jezici visoke razine sadrže veliku količinu apstrakcije. Ti su jezici čitljivi i zbog toga ih je mnogo lakše koristiti. Možete vidjeti u nastavku dio Python kôda koji je mnogo lakše dešifrirati nego dio strojnog kôda.
Ovo je jednostavna funkcija koja uzima dva broja i vraća rezultat. Točno znate što dobivate. Također, ne morate upravljati memorijom. Varijable, objekti i petlje su važni dijelovi programskih jezika visoke razine. Ovo je apstrakcija koja ih čini jednostavnima za korištenje. Asembler ima „one-to-one“ odnos između napisanih naredbi i naredbi strojnog kôda. Jezik više razine može poslati desetke naredbi sa samo jednim retkom kôda. Svaki programski jezik visoke razine ima svoju sintaksu i možda ćete neke lakše čitati nego druge.
Koji programski jezik biste trebali naučiti?
To je klasično pitanje novopečenih programera. Jesu li bolji programski jezici više ili niže razine? Za ovakva pitanja ne postoji samo jedan točan odgovor. Obje grupe programskih jezika imaju svoje prednosti.
Programski jezici niske razine zahtijevaju puno manje prevođenja od strane računala i to čini strojni kôd nevjerojatno brzim u usporedbi s drugim programskim jezicima. Jezici niže razine daju programerima kontrolu nad pohranom podataka, memorijom i hardverom računala. Ove programske jezike možete koristiti za pisanje kernela ili upravljačkog softvera neke komponente. Ne biste ga koristili za pisanje web aplikacija ili igara, za to imate druge programske jezike.
Programski jezici visoke razine se lakše čitaju i razumiju. Omogućuju programerima da učinkovitije pišu kôd. Također, ovi se jezici smatraju sigurnijima jer imaju više zaštitnih mjera koje sprečavaju programere da ne izdaju naredbe koje bi mogle oštetiti računalo. Ne daju programerima toliko kontrole nad procesima koji se izvršavaju na nižoj razini i rijetko se uključuju u dodjelu memorije.
Popis nekih programskih jezika koji su popularni danas:
- Java
- C/C++/C#
- JavaScript
- Python
- Swift
- SQL
- Dart
- Kotlin
- PHP
- R
Što želite napraviti?
Vaše prvi pitanje je vjerojatno: Što želim isprogramirati? Ako želite pisati nešto što je jako blizu operativnom sustavu ili bilo što, što bi se trebalo pokretati velikom brzinom, programski jezici niže razine su pravi izbor za vas. Veliki dio Windows operacijskog sustava, MacOS-a i Linuxa su napisani uz pomoć programskog jezika C i sličnim jezicima, poput C++ i Objective-C.
Ako želite praviti mobilne aplikacije, možete koristiti programske jezike Java, Swift, Kotlin, Dart i C++ (Android Studio ima opciju gdje možete omogućiti i C++ pakete). Za web stranice i aplikacije možete koristiti HTML, CSS, JavaScript i PHP. Baze podataka možete uređivati uz pomoć SQL-a. Za statistike i analizu podataka možete koristiti R.
Piše: A. M.