Osnovni pojmovi

1. Programski jezik ‒ što je to?

1.1. Programski jezici od početka do danas

Slika 1. Programski jezici nastali u proteklih 70 godina


Najstariji programski jezik i jedini koji računalo razumije bez dodatnog prevođenja naziva se strojni jezik (machine language). Sastoji se od nizova nula i jedinica. Nastao je polovinom prošlog stoljeća i vezan je za građu središnje jedinice za obradu podataka. Upravo zato programi pisani strojnim jezikom nisu bili prenosivi s računala na računalo.  Programiranje pisanjem nula i jedinica je vrlo složeno za programera pa su strojne naredbe ubrzo zamijenjene riječima ili simbolima. Takve jezike nazivamo simboličkim jezicima. Simbolički jezici dijele se na niže i više programske jezike.

Najpoznatiji predstavnik nižih programskih jezika je asembler u kojem je jedna strojna naredba zamijenjena s jednom simboličkom naredbom (MUL – množenje, ADD – zbrajanje…). No i takvo programiranje je prilično složeno za programera jer je i asembler vezan za građu računala. Ne zaboravimo, prije izvršavanja programa pisanog asemblerom moramo ga prevesti u strojni jezik razumljiv računalu.

Viši programski jezici nastali su 60-ih godina dvadesetog stoljeća. Bliži su ljudskom načinu razmišljanja jer su naredbe kratke riječi (najčešće vezane za englesko govorno područje), koje se lako pamte. Većina naredbi viših programskih jezika zamjenjuje cijeli niz strojnih naredbi. Rabeći više programske jezike, programi postaju kraći i razumljiviji. Najpopularniji viši programski jezici su C, C++, C#, Python, Java… Programi pisani višim programskim jezicima mogu se izvršavati na različitim modelima računala i različitim operativnim sustavima. Program napisan u višem programskom jeziku nazivamo izvorni program (source code).

Da bi računalo moglo izvršiti program pisan višim programskim jezikom (izvorni program), moramo ga prevesti u strojni jezik. Za prevođenje programa u strojni jezik postoje posebni programi prevoditelji. Dijelimo ih u dvije skupine:

interpreteri su programi prevoditelji koji prevode naredbu po naredbu izvornog programa i svaku naredbu odmah izvršavaju; ne stvaraju izvršni kod

kompajleri su programi prevoditelji koji prevode cijeli program, stvaraju izvršnu verziju programa, a zatim nju izvršavaju.