U prethodnom poglavlju naučili smo da hardver ne može raditi bez softvera, a sada ćemo pobliže razmotriti što je to točno softver, kako nastaje te različite vrste korisničkih aplikacija koje koristimo da bismo olakšali i ubrzali svoje zadatke.
Softver je izvrsna inovacija koju koristimo svaki put kada se služimo računalom, pametnim telefonom, konzolom za videoigre ili mnogim drugim elektroničkim uređajima. Neki softveri prilično su jednostavni te su osmišljeni samo za obavljanje nekoliko stvari, dok su drugi softveri vrlo složeni i upravljaju golemom količinom podataka.
Zašto uopće postoji softver?
Ukratko, računala ne razumiju ljudski jezik, a programeri žele proizvoditi računala koja su jednostavna za uporabu. Ali ljudi i računala očito ne govore istim jezikom. Zato imamo softver, sučelje između hardvera i korisnika koje nam pomaže da obavljamo zadatke na našim računalima. Zakoračimo malo dublje u tu temu.
Koji jezik razumiju računala?
Računala razumiju samo binarne informacije, koje se uglavnom prikazuju u obliku električnih signala koji su ON (visoki napon) ili OFF (niski napon). Sve što vide treba biti prikazano u nizu jedinica i nula (ON i OFF). Općenito, logika „1“ predstavlja viši napon, npr. 5 volti, što se inače naziva VISOKA vrijednost, dok logika „0“ predstavlja niži napon, npr. 0 volti ili uzemljenje, te se inače naziva NISKA vrijednost. Taj slijed (niz) jedinica i nula zove se još i binarni format/kod.
Budući da računala ne razumiju naš jezik, fotografije, videozapise, tekstove, programe i glazbu onako kako mi razumijemo, svi podaci moraju se pretvoriti u binarni kod da bi ih računalo moglo obraditi.
Suvremena računala imaju sustave za kodiranje koji djeluju kao slojevi prijevoda i tako pretvaraju naše unose u strojni kod. Evo jednog vrlo jednostavnog primjera: kada kliknete slovo „A“ na tipkovnici, ono se sustavom za kodiranje znakova UTF-8 pretvara u strojni kod vrijednosti 01000001.
Zamislite sada koliko jedinica i nula bi nam trebalo da pretvorimo knjigu u binarni kod. Zamislite koliko jedinica i nula bi nam trebalo da pretvorimo fotografiju ili pjesmu u binarni kod. Kao što možete zamisliti, pretvaranje svake slike, teksta, programa ili glazbe u binarni kod, odnosno niz jedinica i nula, može biti poprilično složeno i naporno. Naša suvremena računala čine to automatski procesom koji je nevidljiv većini korisnika.
Pokušajte zamisliti kako je taj proces izgledao u prošlosti kada su prvi programeri morali sve ručno izražavati u binarnom kodu!
Koja je uloga programera u evoluciji softvera?
Koji god jezik ili vrstu jezika koristimo za izradu programa, oni moraju biti u strojnom kodu kako bi ih računalo moglo izvršiti.
Kada su napravljena prva „suvremena“ računala na struju, programeri su shvatili da su ograničena brzina i kapacitet memorije tih uređaja ograničavali njihovu maštu, a ujedno su ograničavali i iskustvo neprofesionalnih korisnika.
To ih je primoralo da izrade „jezične prevoditelje“ koji će olakšati njihov zadatak pisanja strojnog koda. Postoje tri glavne kategorije jezičnih prevoditelja koje koriste naša računala: asembleri, kompilatori i tumači (interpreteri). Proučit ćemo ih u sljedećem dijelu.
Ono što programeri koriste za izradu softvera su programski jezici. Postoji mnogo takvih jezika, a razvijali su se s vremenom. Neke publikacije prepoznaju .
Programski jezici dijele se na dvije razine, nisku i visoku. Prve dvije generacije dio su jezika niske razine, a druge tri jezika visoke razine.
Sign up to solve exercises
Sada smo se pripremili za sljedeći dio, u kojem ćemo učiti o suvremenim jezicima niske i visoke razine te programiranju.