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:

  • .exe na 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:

  1. Fetch — učitavanje instrukcije
  2. Decode — analiza instrukcije
  3. 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

  1. Šta je programiranje?
    a) Popravka računara
    b) Pisanje instrukcija računaru
    c) Dizajn sajta
  2. Šta računar direktno razume?
    a) C++
    b) Python
    c) Mašinski jezik
  3. Šta radi kompajler?
    a) Briše program
    b) Prevodi kod u mašinski jezik
    c) Gasi računar
  4. Šta predstavlja procesor?
    a) Memoriju računara
    b) Mozak računara
    c) Internet konekciju
  5. Koji je prvi korak u izvršavanju instrukcije?
    a) Execute
    b) Decode
    c) Fetch

Zadaci za vežbu

  1. Objasni svojim rečima šta je programiranje.
  2. Nacrtaj dijagram:
    Programer → Kod → Kompajler → Program → Računar
  3. Istraži:
    Koji kompajler koristi Code::Blocks?
  4. Napiši primer jedne instrukcije u C++ jeziku.
  5. Objasni razliku između izvornog koda i izvršnog programa.

Pristupačnost