Programiranje predstavlja osnovu modernog digitalnog sveta. Svaka aplikacija koju danas koristimo — od mobilnih telefona i društvenih mreža do video igara i operativnih sistema — nastaje pisanjem programskog koda.
Iako programiranje na prvi pogled deluje komplikovano, njegova osnova je zapravo veoma jednostavna: davanje instrukcija računaru šta treba da uradi.
U ovom tekstu naučićemo:
- šta je programiranje,
- kako računar razume kod,
- kako funkcioniše kompajler,
- kako nastaje izvršni program,
- i kako procesor izvršava instrukcije.
Ovo je prvi i najvažniji korak ka razumevanju programiranja i rada računara.
Šta je programiranje?
Programiranje je proces pisanja instrukcija koje računar izvršava.
Te instrukcije nazivamo:
- program,
- kod,
- ili izvorni kod.
Računar sam po sebi ne razmišlja i ne donosi odluke kao čovek. On samo izvršava instrukcije koje programer napiše.
Na primer:
cout << "Zdravo";
Ova instrukcija govori računaru da prikaže tekst na ekranu.
Programiranje možemo posmatrati kao komunikaciju između čoveka i računara.
Programer piše kod koji računar mora precizno da izvrši. Čak i najmanja greška može sprečiti program da radi pravilno.

Kako računar razume program?
Ljudi koriste prirodne jezike poput srpskog ili engleskog jezika. Međutim, računar ne razume te jezike.
Računar razume samo:
- nule,
- jedinice,
- i mašinske instrukcije.
Takav zapis naziva se mašinski jezik.
Na primer:
10110101
Programiranje direktno u binarnom obliku bilo bi veoma komplikovano. Zbog toga postoje programski jezici poput:
- C++,
- C,
- Python,
- Java,
- JavaScript.
Ti jezici omogućavaju programerima da pišu razumljiv kod, koji se kasnije prevodi u mašinski jezik koji računar može da izvršava.
Šta je kompajler?
C++ pripada grupi kompajliranih programskih jezika.
To znači da kod koji napišemo prvo mora da bude preveden u izvršni program.
Program koji vrši taj proces naziva se kompajler.
Najpoznatiji C++ kompajleri su:
- GCC,
- g++,
- Clang,
- MSVC.
Kompajler:
- proverava greške u kodu,
- analizira sintaksu,
- prevodi instrukcije,
- i kreira izvršni program.
Ako u programu postoji greška, kompajler će prijaviti problem i program neće moći da se pokrene.
Na primer:
error expected ;
Ova greška znači da nedostaje tačka-zarez.

Kako nastaje izvršni program?
Proces nastanka programa prolazi kroz nekoliko koraka.
Prvi korak je pisanje izvornog koda.
Primer jednostavnog C++ programa:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World";
return 0;
}
Nakon pisanja koda pokreće se kompajler.
Kompajler prevodi program u mašinske instrukcije i kreira izvršni fajl, najčešće:
.exena Windows sistemima,- ili izvršni fajl na Linux sistemima.
Kada pokrenemo program, operativni sistem učitava instrukcije u memoriju i prosleđuje ih procesoru na izvršavanje.
Kako procesor izvršava instrukcije?
Procesor predstavlja mozak računara.
Njegov zadatak je da izvršava instrukcije jednu po jednu.
Svaka instrukcija prolazi kroz tri osnovna koraka:
- Fetch — učitavanje instrukcije
- Decode — analiza instrukcije
- Execute — izvršavanje instrukcije
Ovaj proces naziva se instrukcioni ciklus.
Procesor ponavlja taj ciklus milijardama puta u sekundi.
Zahvaljujući tome računar može:
- da pokreće programe,
- prikazuje grafiku,
- obrađuje podatke,
- izvršava matematičke operacije,
- i komunicira sa drugim uređajima.

Zašto je važno razumeti osnove programiranja?
Veliki broj početnika pokušava odmah da nauči sintaksu programskog jezika.
Međutim, mnogo važnije je razumeti:
- kako računar razmišlja,
- kako izvršava instrukcije,
- kako funkcionišu programi,
- i kako nastaju algoritmi.
Kada razumete osnovu rada računara:
- lakše učite nove programske jezike,
- brže pronalazite greške,
- bolje razumete algoritme,
- i sigurnije rešavate zadatke na ispitu.
Programiranje nije samo pisanje koda. Programiranje predstavlja način razmišljanja i rešavanja problema.
Zaključak
Programiranje predstavlja osnovu modernih tehnologija i digitalnog sveta.
Svaki program koji koristimo nastaje pisanjem instrukcija koje računar izvršava korak po korak.
Razumevanje:
- načina rada računara,
- procesa kompajliranja,
- i izvršavanja instrukcija,
predstavlja prvi veliki korak ka ozbiljnom učenju programiranja.
Mini test
- Šta je programiranje?
a) Popravka računara
b) Pisanje instrukcija računaru
c) Dizajn sajta - Šta računar direktno razume?
a) C++
b) Python
c) Mašinski jezik - Šta radi kompajler?
a) Briše program
b) Prevodi kod u mašinski jezik
c) Gasi računar - Šta predstavlja procesor?
a) Memoriju računara
b) Mozak računara
c) Internet konekciju - Koji je prvi korak u izvršavanju instrukcije?
a) Execute
b) Decode
c) Fetch
Zadaci za vežbu
- Objasni svojim rečima šta je programiranje.
- Nacrtaj dijagram:
Programer → Kod → Kompajler → Program → Računar - Istraži:
Koji kompajler koristi Code::Blocks? - Napiši primer jedne instrukcije u C++ jeziku.
- Objasni razliku između izvornog koda i izvršnog programa.
