On-line učionica

16. oktobar 2011.

Uvod u programiranje

Filed under: Programiranje — jelena100janovic @ 8:52 pm

Jezik je osnovno sredstvo sporazumevanja ljudi. Koristeći jezik saznajemo nove informacije i delimo svoje znanje, osećanja i iskustva sa drugima. Jezikom možemo izraziti svaku misao i opisati svaki događaj. Svet se kontroliše kroz jezik. Svi koriste jezik za davanje uputstva drugima, kao i za prikupljanje informacija.

Jezik je neophodan i za računar. Softver se pravi pomoću specijalnih jezika koji izdaju naredbe računaru. Pored toga, jezik definiše podatke sa kojima će te naredbe raditi. Računarski jezik je sličan ljudskom jeziku. Imenice, glagoli, predlozi i objekti iz jezika imaju svoje odgovarajuće elemente u programskom kodu – redovima teksta koji se prevode u programe. Ali softverske rečenice imaju posebnu sintaksu, a reči od kojih se sastoji jezik imaju svoje precizno značenje.

Računarski jezik je mnogo strožiji i ograničeniji od prirodnog jezika. Jedna anegdota kaže kako je, u prvim nastojanjima da se računar upotrebi za prevođenje engleskog jezika na ruski, fraza „The spirit is willing, but the flesh is weak“ (Duša hoće, ali je telo nejako) bila prevedena u „The vodka is ready, but the meat is rotten“ (Votka je spremna, ali je meso trulo). Priča je možda izmišljena, ali dobro ilustruje realnost – računari i njihovi jezici ne uspevaju da prepoznaju dvosmislenosti prirodnih jezika (mada najnoviji napredak u prepoznavanju govora omogućuje računarima razumevanje onoga što govorimo, ali još uvek ne i onoga šta mislimo).

Međutim, prirodni jezici nisu ravni računarskim jezicima po preciznosti. Na primer, pokušajte da opišete spiralu bez upotrebe svojih ruku. To je nemoguće na prirodnom jeziku. Ali pošto je matematika integralni deo računarskih jezika, ovi jezici ne samo da mogu opisati spiralu, nego i obezbediti naredbe za prikazivanje slike te spirale na monitoru.

Različiti programski jezici

Baš kao što postoji više prirodnih jezika, tako postoji i više programskih jezika. Razni jezici se generalno klasifikuju u jezike niskog i visokog nivoa. Što više programski jezik liči na prirodni jezik, to je njegov nivo viši. Sa jezicima niskog nivoa teže je raditi, ali oni obično proizvode programe koji su manji i brži.

Na najnižem nivou je mašinski jezik. To je niz jedinica i nula, koji služe za direktnu komunikaciju sa procesorom računara. Njegovo pisanje je jedan od najsloženijih zadataka u računarstvu. Srećom, sami to ne moramo da radimo. Programi koji se zovu interpreteri i kompajleri prevode u mašinski jezik komande napisane jezikom višeg nivoa.

Na malo višem nivou od mašinskog jezika je asemblerski jezik, ili kraće asembler, koji koristi jednostavne komandne reči za naredbe koje procesor treba da izvrši. Asembler direktno upravlja vrednostima koje se nalaze u pomoćnoj memoriji procesora koja se naziva registri. Iako je asembler razumljiviji ljudima od mašinskog jezika, on se i dalje teže koristi od jezika višeg nivoa.

Na još višem nivou, jezici kao što su C i Java omogućavaju programerima da pišu programe koristeći reči i izraze koji su sličniji engleskom jeziku. Pored toga, programeri koji koriste ove jezike ne moraju da brinu oko takvih detalja kao što su registri. Ovi jezici su veoma rasprostranjeni i velika većina programa se piše u njima. Ne pripadaju najvišem nivou, jer je u njima moguće napisati i programe za razne mašine i njihove delove.

Na najvišem nivou su jezici, kao što su BASIC, Visual Basic, Pascal, Delphi, … Oni služe za pisanje aplikacija na računarima.

Konstruisanje softvera

Neki program može biti jedan fajl – zapis programskog koda sačuvan na disku. Ali u opštem slučaju, softver se sastoji od jednog fajla koji sadrži glavni program – kernel – i skupa drugih fajlova koji sadrže potprograme ili rutine. Kernel poziva rutine koje su mu potrebne za obavljanje nekog zadatka. Neka rutina može i sama pozivati druge rutine u istom fajlu, u drugom fajlu koji je deo programa ili u fajlovima koje obezbeđuje operativni sistem za zajedničke funkcije. Zajedno, kernel i potprogrami pružaju programima način za primanje ulaznih informacija sa tastature, iz memorije, portova i datoteka, zatim pravila za rukovanje tim ulaznim podacima, kao i način za slanje izlaznih informacija na ekran, u memoriju, portove itd.

Kada korisnik unosi podatke u program, oni se obično smeštaju u promenljive. Kao što ovaj termin govori, podaci koji se čuvaju u promenljivoj menjaju se od slučaja do slučaja. I sami programi mogu u promenljivim čuvati informacije koje su dobijene kao rezultat izračunavanja ili manipulisanja podacima.

Pošto program sačuva podatke u promenljivim, on može njima manipulisati uz pomoć naredbi koje obavljaju matematičke operacije nad brojevima ili druge operacije sa tekstom. Kada promenljiva sadrži neki tekst, on se često naziva string.

Programi mogu iskoristiti BIOS za obavljanje mnogih ulaznih i izlaznih funkcija – na primer, prepoznavanje pritisnutih tastera na tastaturi, njihovo prikazivanje na ekranu, slanje podataka kroz portove, čitanje i pisanje RAM memorije i podataka na disku. Programski jezici moraju imati naredbe za pozivanje ovih servisa BIOS-a.

Do sada smo se bavili prilično jednostavnom šemom: ulaz, obrada, izlaz. Realnost je mnogo složenija. Programi moraju biti sposobni da obavljaju različite zadatke pod različitim uslovima – to je odlika kojom se meri izražajnost i mnogostrukost programskih jezika. A pošto se program skoro nikad ne izvršava pravolinijski od početka do kraja, postoje naredbe koje računaru govore da se grana na različite delove programa i izvrši druge naredbe.

Grananje se koristi u kombinaciji sa logičkim operacijama. Na primer, kada program treba da promeni ono što radi usled nastanka određenog uslova, program proverava da li je neki uslov tačan, pa ako jeste, program zatim obavlja određenu naredbu. Na primer, ako promenljiva Mesto sadrži string „Novi Beograd“, program koristi poštanski broj 11070 za adresiranje nekog pisma.

Ostavite komentar »

Nema komentara.

RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Blog na WordPress.com.

%d bloggers like this: