Izdvajamo definicije i ključne delove, ono što je nužno zapamtiti i razumeti.
Programski jezik je veštački jezik koji nam omogućava zadavanje instrukcija računaru.
Instrukcija (niz naredbi) koju zadajemo računaru pomoću programskog jezika je računarski program.
Računarski program je opis algoritma-procesa u nekom programskom jeziku.
Fon Nojmanov koncept računara je u osnovi konstrukcije imperativnih programskih jezika.
Klasifikacije programskih jezika:
- Po usmerenosti
- mašinski jezik
- jezici orijentisani ka mašini
- jezici orijentisani ka problemu
- Po generaciji
- 1,2,3,4,5GL
- Po načinu pisanja
- Tekstualni (C, Basic, Java...)
- Grafički (UML, Piet)
- Po vrsti
- Programski jezici – opisuju algoritme („pravi“ programski jezici)
- Opisni jezici - opisuju podatke, strukture (HTML, XML, JSON...)
Programski jezik je sredstvo koje koristi neko lice da izrazi proces pomoću kojeg računar rešava nekakav problem. U zavisnosti od toga na kojoj od ovih reči je akcenat, programskim jezikom je podržana dominantna programska paradigma.
lice - logička paradigma
računar - proceduralna (imperativna) paradigma
proces - funkcionalna paradigma
problem - objektno-orijentisana paradigma
Paradigme:
- Imperativne, u kojima se opisuju instrukcije kojima mašina menja stanje
- Proceduralna (Asembler, BASIC, C)
- Strukturna (C, Pascal, C#, Java, PHP, JavaScript ... )
- Objektna i objektno orijentisana (C#, Java, PHP, C++, ObjectiveC, Swift ...)
- Deklarativne, u kojima se opisuju osobine željenog rezultata-stanja ali ne i način kako da se to izračuna (SQL)
- Logička (Prolog)
- Funkcionalna (Lisp, Haskell, u nekoj meri Python)
Multiparadigmatski jezik – programski jezik koji podržava koncepte više paradigmi. Jedna je osnovna, od ostalih uzima koliko mu treba.
Paradigme ukratko:
- Imperativno programiranje: niz naredbi – uradi ovo, pa onda ono itd.
- Proceduralno programiranje: grupisanje instrukcija u procedure. instrukcije skokova.
- Strukturno programiranje: izražavanje kroz fino ugnježdene kontrolne strukture (petlje, uslovi i sl.), bez instrukcija skokova.
- Objektno orijentisano programiranje: programiranje u kontekstu “društva” objekata, gde svaki objekat ima svoje osobine i ponašanja. ko radi šta kome.
- Logičko programiranje: imamo kolekciju činjenica i pravila zaključivanja. Program odgovara na pitanja.
- Funkcionalno programiranje: komponujemo čiste funkcije, liči na matematičko izražavanje problema.
- Postoje i druge paradigme. Ove su najviše u upotrebi.