Računarski program

S Vikipedije, slobodne enciklopedije

Računarski program (engl. Computer program) je zapis čija je namena da ostvari određene promene na računaru.[1] U deklarativnom programiranju, računarski program je skup instrukcija.

Računarske programe interpretira ili, u specijalnom slučaju, direktno izvršava računar. Posledica procesa interpretacije su pomenute promene na računaru. Usko povezani sa programima su programski jezici. U okviru programskih jezika određena su stroga pravila po kojima program mora da bude napisan. Program može da stvori čovek tokom procesa koji se zove programiranje. Program takođe može da napravi i drugi program tokom svog izvršavanja na računaru.

Kompjuterski program u svom čoveku čitljivom obliku naziva se izvorni kod. Izvornom kodu je potreban drugi računarski program da bi se izvršio, jer računari mogu da izvršavaju samo svoje matične mašinske instrukcije. Stoga se izvorni kod može prevesti u mašinske instrukcije korišćenjem kompajlera jezika. (Programi na mašinskom jeziku se prevode pomoću asemblera.) Dobijena datoteka se naziva izvršna datoteka. Alternativno, izvorni kod može da se izvrši unutar tumača jezika. Programski jezik Java se kompajlira u srednji oblik koji zatim ga izvršava Java interpretator.[2]

Ako se izvršni fajl zahteva za izvršenje, operativni sistem ga učitava u memoriju i pokreće proces.[3] Centralna procesorska jedinica zatim prelazi na ovaj proces kako bi mogla da preuzme, dekodira i zatim izvrši svaku mašinsku instrukciju.[4]

Istorija[uredi | uredi izvor]

Analitička mašina[uredi | uredi izvor]

Lavlejsov dijagram iz Napomen G, prvog objavljenog kompjuterskog algoritma.[5][6]

Godine 1837, Čarls Bebidž je bio inspirisan Žakardovim razbojom da pokuša da napravi analitičku mašinu.[7] Nazivi komponenti računskog uređaja su pozajmljeni iz tekstilne industrije. U tekstilnoj industriji predivo se dovozilo iz skladišta na obradu. Uređaj je imao „skladište“ koja je bilo memorija za 1.000 brojeva od po 40 decimalnih cifara. Brojevi iz „skladišta” prenošeni u „mlin” na obradu. Programiran je pomoću dva seta perforiranih kartica. Jedan set za usmeravanje operacije, a drugi za ulazne varijable.[7][8] Međutim, nakon više od 17.000 funti ulaganja britanske vlade, hiljade nazubljenih točkova i zupčanika nikada nisu u potpunosti funkcionisali.[9]

Tokom devetomesečnog perioda 1842–43, Ejda King Lavlejs je prevela memoare italijanskog matematičara Luiđija Menabrea. Memoari su pokrivali Analitičku mašinu. Prevod je sadržao napomenu G koja je u potpunosti opisala metod za izračunavanje Bernulijevih brojeva pomoću analitičke mašine. Neki istoričari smatraju da je ova beleška prvi pisani kompjuterski program na svetu.[10]

Univerzalna Tjuringova mašina[uredi | uredi izvor]

Godine 1936, Alan Tjuring je predstavio Univerzalnu Tjuringovu mašinu — teoretski uređaj koji može da modeluje svako proračunavanje koje se može izvesti na kompletnoj Tjuringovoj računarskoj mašini.[11] To je mašina konačnog stanja koja ima beskonačno dugu traku za čitanje/pisanje. Mašina može da pomera traku napred-nazad, menjajući njen sadržaj dok izvršava algoritam. Mašina se pokreće u početnom stanju, prolazi kroz niz koraka i zaustavlja se kada naiđe na stanje zaustavljanja.[12]

Računari zasnovani na releju[uredi | uredi izvor]

Računar Z3, koji je izumeo Konrad Zus (1941), bio je digitalni i programabilni računar.[13] Zus je upoznat sa „Babidžovom mašinom“ 1939. godine dok je pokušavao da podnese nemački patent.[13] Analitička mašina je koristila bazu-10 — što je bilo lako razumeti. Zus je prepoznao da je binarnu mašinu lako konstruisati. Telefonski releji su prekidači sa dva položaja - otvoreni ili zatvoreni. Z3 je imao približno 2.600 releja: 1.800 za memoriju, 600 za aritmetiku i 200 za čitač bušene trake, tastaturu i ekran.[13] Kola su obezbedila računar sa pomičnim zarezom sa devet instrukcija. Programiranje Z3 se vršilo pomoću posebno dizajnirane tastature i bušene trake. Ručni unos je bio preko tastature u stilu kalkulatora koja je prihvatala decimalne brojeve. Mašina je konvertovala ulaz u binarni i prosledila to kroz niz modula za računanje.[9] Rezultat je ponovo konvertovan u decimalni i prikazan na izlaznoj tabli.[13]

Istovremeno je razvijen njegov naslednik — računar Z4. (U vazdušnom napadu 6. aprila 1945. uništen je Z3.) Godine 1950. Z4 je pušten u proizvodnju u Saveznom tehničkom institutu u Cirihu.

Harvard Mark I, koji je izumeo IBM (1944), takođe je bio digitalni i programabilni računar.[14] Računar je podržavao znakovne cele brojeve sa 23 cifre i imao je sedam glavnih jedinica:[15]

Primeri programa[uredi | uredi izvor]

Programe možemo da podelimo prema programskom jeziku u kome su napisani. Programi pisani u programskim jezicima prilagođenim u potpunosti računaru, takozvanim mašinskim programskim jezicima, su čoveku gotovo nečitljivi. Postoji veliki broj programskih jezika prilagođenih čoveku. Obično se vizuelno predstavljaju u obliku teksta. Drugi način predstavljanja koji polako postaje sve zastupljiniji, je u obliku slika koje predstavljaju gradivne blokove programa.

Sledi primer jednostavnog programa pisanog pajton programskim jezikom koji ispisuje „Zdravo svete!“

print('Здраво свете!')

Sledeći program pisan u programskom jeziku gou ostvaruje slične promene na računaru kao prethodni:

package main

import "fmt"

func main() {
	fmt.Printf("Здраво свете!\n")
}

Sledi primer programa u skrač jeziku. Efekat jednog trenutka interpretacije vidljiv je u desnom delu slike. Maca broji unazad od sto do jedan. Prikaz programa se nalazi u srednjem delu slike. U levom delu vide se neki gradivni blokovi programa.

Izvršenje skrač programa u kome maca broji unazad od sto do jedan. U srednjem delu se vidi kod programa.

Reference[uredi | uredi izvor]

  1. ^ „The Free Dictionary: computer program”. Farlex. Pristupljeno 14. 11. 2021. 
  2. ^ Wilson, Leslie B. (2001). Comparative Programming Languages, Third Edition. Addison-Wesley. str. 7. ISBN 0-201-71012-9. 
  3. ^ Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. str. 98. ISBN 978-0-201-50480-4. 
  4. ^ Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. str. 32. ISBN 978-0-13-854662-5. 
  5. ^ Simonite, Tom (24. 3. 2009). „Short Sharp Science: Celebrating Ada Lovelace: the 'world's first programmer'. New Scientist. Arhivirano iz originala 27. 3. 2009. g. 
  6. ^ Parker, Matt (2014). Things to Make and Do in the Fourth Dimension. Farrar, Straus & Giroux. str. 261. ISBN 978-0-374-27565-5. 
  7. ^ a b McCartney, Scott (1999). ENIAC – The Triumphs and Tragedies of the World's First Computer. Walker and Company. str. 16. ISBN 978-0-8027-1348-3. 
  8. ^ Bromley, Allan G. (1998). „Charles Babbage's Analytical Engine, 1838” (PDF). IEEE Annals of the History of Computing. 20 (4): 29—45. S2CID 2285332. doi:10.1109/85.728228. 
  9. ^ a b Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. str. 15. ISBN 978-0-13-854662-5. 
  10. ^ J. Fuegi; J. Francis (2003), „Lovelace & Babbage and the creation of the 1843 'notes'”, Annals of the History of Computing, 25 (4): 16, 19, 25, doi:10.1109/MAHC.2003.1253887 
  11. ^ Rosen, Kenneth H. (1991). Discrete Mathematics and Its Applications. McGraw-Hill, Inc. str. 654. ISBN 978-0-07-053744-6. 
  12. ^ Linz, Peter (1990). An Introduction to Formal Languages and Automata. D. C. Heath and Company. str. 234. ISBN 978-0-669-17342-0. 
  13. ^ a b v g „Computers in Germany”. American Federation of Information Processing Societies. Pristupljeno 26. 11. 2021. 
  14. ^ „IBM Archives - Mark I Description”. International Business Machines. 23. 1. 2003. Pristupljeno 1. 1. 2022. 
  15. ^ „IBM Archives -- Mark I Specification”. International Business Machines. 23. 1. 2003. Pristupljeno 1. 1. 2022. 

Literatura[uredi | uredi izvor]

Spoljašnje veze[uredi | uredi izvor]