Vloga programa in programskega jezika


Običajno je algoritem zapisan kot seznam korakov, ki nas pripeljejo do rešitve problema. Kako podrobno razdelamo korake, je odvisno od tega, kdo izvaja algoritem (človek, računalnik). Če algoritem izvaja računalnik, potem govorimo o računalniškem programu.

 

image004

Računalniški program (ali samo program) je zaporedje ukazov v strojni kodi, to je oblika, ki jo lahko računalnik oziroma procesor izvede.

Strojna koda programov je vedno specializirana za izvajanje na določeni arhitekturi, ki je skupek lastnosti strojne in programske opreme. Strojna koda, ki jo programi vsebujejo, izvaja ukaze preko operacijskega sistema, ki deluje kot vmesnik med strojno in programsko opremo.

Z uporabo različnih prevajalnikov lahko program v enem od programskih jezikov prevedemo v strojno kodo namenjeno različnim arhitekturam.


Izvršljive programske datoteke v okolju Microsoft Windows imajo končnico .EXE, ali pa .DLL,  Pri operacijskem sistemu LINUX izvršljive datoteke nimajo karakteristične končnice, pač pa je to razvidno iz lastnosti oziroma dovoljenj datotek.

Računalniško programiranje je dejavnost, katere cilj je ustvarjanje novih računalniških programov ali njihovih sestavnih delov na temelju določenih pravil. Računalniški programi so napisani v izvorni kodi določenega programskega jezika, pri delu pa si programer lahko pomaga z ustreznimi razvojnimi orodji zanj. Snovanje programov vsebuje elemente znanosti, umetnosti, matematike in tehnike.

image006

Programski jezik je skupek pravil, podatkovnih struktur in programerskih vmesnikov, ki programerju služijo kot orodje za izdelavo programa. Programski jeziki se uporabljajo zato, ker sta človekova in računalnikova »govorica« tako različni, da je pisati programje v jeziku računalnika (strojni kodi) nepregledno in nasploh mukotrpno.

Programski jezik se delijo na nizkonivojske, ti so bližje strojnemu jeziku, visokonivojski pa so bližje naravnim jezikom. Java je na primer visokonivojski jezik. Isto velja za Python. Razlika med njima je predvsem v tem, da moramo programe v jeziku Java pred izvajanjem prevesti, Python pa sodi med takoimenovane skriptne jezike, ki potrebujejo za svoje izvajanje interpreter oziroma tolmač.


V družino skriptnih jezikov sodi tudi JavaScript, ki je danes (skupaj z raznimi knjižnicami) popularen pri programiranju spletnih aplikacij.

Primer programa v jeziku Java

Primer programa v jeziku Python

import java.util.Scanner;
class sestejStevili {
   public static void main(String args[])   {
      int x, y, z;
      System.out.println("Vnesi dve stevili, da jih sestejem");
      Scanner in = new Scanner(System.in);
      x = in.nextInt();
      y = in.nextInt();
      z = x + y;
      System.out.println("Vsota obeh stevil = " + z);
   }
}

xString= input('Vnesi prvo število: ')
yString= input("Vnesi drugo število: ")
x = int(xString); y= int(yString);

vsota = x + y;

print('Vsota ', x, ' + ', y, ' = ', vsota );

Izpis na zaslonu:
Vnesi dve stevili, da jih sestejem
22 33
Vsota obeh stevil = 55

Izpis na zaslonu:
Vnesi prvo število: >? 22
Vnesi drugo število: >? 33
Vsota  22  +  33  =  55


Da, da, programi v Pythonu so večinoma krajši  Image8


image007

Na drugi strani pa je zbirni jezik (zbirnik), ki je najbliže strojnemu jeziku. Ta je večinoma izredno težko razumljiv človeku in je potrebno veliko učenja, de se ga navadi. Navadno je to skupek številk in črk (črke so le interpretacija številk). Edini razlog za njegovo uporabo, je (bila) njegova možnost, da z njim procesor uporabimo optimalno.

Primer programa v zbirnem jeziku:

DATA SEGMENT
NUM1 DB ?
NUM2 DB ?
RESULT DB ?
MSG1 DB 10,13,"Vnesi prvo stevilo: $"
MSG2 DB 10,13,"Vnesi drugo stevilo: $"
MSG3 DB 10,13,"Vsota je: $"
ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM1,AL
LEA DX,MSG2
MOV AH,9
INT 21H
MOV AH,1
INT 21H
SUB AL,30H
MOV NUM2,AL
ADD AL,NUM1
MOV RESULT,AL
MOV AH,0
AAA
ADD AH,30H
ADD AL,30H
MOV BX,AX
LEA DX,MSG3
MOV AH,9
INT 21H
MOV AH,2
MOV DL,BH
INT 21H
MOV AH,2
MOV DL,BL
INT 21H
MOV AH,4CH
INT 21H
ENDS
END START

Program v zbirnem jeziku je vezan na določen tip procesorja oziroma njegovih strojnih ukazov.

Tudi v našem primeru imamo seštevanje dveh števil.

Program je precej daljši od programov v višjih programskih jezikih. In zelo nepregleden. Še posebno brez komentarjev.


Tako se je programiralo včasih. Danes pa zelo redko, saj je tako programiranje zelo neučinkovito.

Zbirni jezik je le en nivo nad strojnim jezikom. Za ukaze uporablja kratke mnemonike in programerju omogoča uporabo imen za dele pomnilnika.

Podobno kot sam strojni jezik zahteva  zbirni jezik podrobno poznavanje zgradbe računalnika. Uporaben je predvsem za programiranje interakcije računalnika s perifernimi napravami (tiskalniki, skenerji, diski ipd).