18
P rogramski jezi ci

Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

  • Upload
    others

  • View
    65

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Programski jezici

Page 2: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

ALGORITMI I PROGRAMIRANJE Algoritam je konačan, uređen skup, nedvosmislenih

izvršnih koraka za rešavanje određenog problema u konačnom vremenskom periodu sa konačnom količinom podataka

Programski jezici definišu skup instrukcija, njihovu sintaksu (format instrukcije i pravila kombinovanja instrukcija u veće celine) i semantiku instrukcija (značenje instrukcije i akciju u programu koju izvršava)

Program predstavlja sekvencu instrukcija napisanih u nekom programskom jeziku koje se mogu prevesti u instrukcije koje računar može direktno izvršiti (mašinske instrukcije)

2

Page 3: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

GENERACIJE PROGRAMSKIH JEZIKA Mašinski jezik (u binarnom obliku)

Asemblerski (simbolički) jezik i makroasemblerski jezici –simbolične oznake

Proceduralni programski jezici (jezici visokog nivoa, treće generacije): Pascal, C, C++, Java, Basic, C#

Neproceduralni programski jezici (deklarativni programski jezici, jezici vrlo visokog nivoa, 4. generacije): Prolog, SQL, generatori programa, itd

Jezici veštačke inteligencije i prirodni programski jezici

3

Page 4: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Računar može “razumeti” samo formalni zapis, ne tolerišući ni najmanju nepreciznost.

Zato je jednoznačnost svake konstrukcije programskog jezika njegova najbitnija karakteristika.

Po stepenu zavisnosti programskog jezika od računara programske jezike delimo na :

mašinski zavisne (mašinski i simbolički jezik)

mašinski nezavisne (jezici višeg nivoa)

Page 5: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Mašinski zavisni jezici Mašinski jezici

Izgrađeni su nad binarnom azbukom (0,1)

Nije potrebno prevođenje

Vezan je za konkretan računar (svaka familija procesora ima svoj mašinski jezik)

Simbolički jezici Uvode mnemotehničke skraćenice za operacije i simboličke

oznake podataka

Jednoj naredbi mašinskog jezika odgovara jedna naredba simboličkog

Page 6: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Program koji prevodi simbolički u mašinski jezik zove seASEMBLER

Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara.

Obično se koriste za programiranje računara za interakciju računara sa I/O uređajima: štampačima

skenerima

uređajima za čuvanje podataka,...

Njime su pisani programi poznati kao drajveri.

Page 7: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Mašinski nezavisni jezici ( JEZICI VIŠEG NIVOA)

Bliži su prirodnom jeziku, čitljiviji i lakši za pisanje programa.

Imaju visok stepen nezavisnosti od arhitekture računara

Na osnovu načina prevođenja i izvršavanja dele se na :

Kompajlerske

Interpreterske

Page 8: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Prema načinu rešavanja problema možemo ih podeliti na :

Proceduralne – dajemo računaru kompletan skup instrukcija kojim se rešava problem, tj. dajemo mu algoritam za rešavanje zadatka (pa se zovu i algoritamski). Tu spadaju : Pascal, C, Basic, mašinski,...

Deklarativne – opisujemo šta znamo o problemu i šta želimo da dobijemo rešavajući ga, a sistem (interpreter) sam dolazi do postupka za rešavanje problema. Primeri deklarativnih jezika je SQL.

Objektno orjentisane –osnova ovih jezika su objekti nad kojima se vrše akcije. Primer C++

Page 9: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Program u proceduralnom jeziku je niz naredbi koji određuje KAKO se određena akcija obavlja (npr. „otvori datoteku, ako nije EOF pročitaj podatak, ..., zatvori datoteku”)

Program u neproceduralnom jeziku je niz naredbi koji određuje ŠTA treba učiniti (npr. „izdvoji podatke … koji zadovoljavaju dati uslov…”)

Program u objektno orijentisanom jeziku možemo shvatiti kao skup objekata koji između sebe i sa spoljnim svetom komuniciraju putem „poruka”.

Page 10: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Sintaksa programskih jezika

Sintaksa - skup pravila i dogovora kojima se opisuju pravilne konstrukcije (pravilne rečenice) jezika

Sintaksa opisuje strukturu jezičkih izraza i predstavlja skup pravila kojima se definiše struktura jezika

Elementi programa najnižeg nivoa, koji imaju jezički smisao, nazivaju se lekseme (osnovni, terminalni simboli)

Page 11: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Formalan opis sintakse Jedan od osnovnih uslova standardizacije jezika

Osnova za projektovanje kompilatora

Omogućava primenu standardnih metoda za

Leksičku analizu

Sintaksnu analizu

Semantičku analizu

Generisanje objektnog koda i njegovu optimizaciju

STANDARDNA SREDSTVA ZA OPIS SINTAKSE Metajezici (npr BNF)

Sintaksni dijagrami

Page 12: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Bekusova normalna forma BNF notacija se sastoji od konačnog broja rečenica koje se

nazivaju metalingvističke formule (metalingvistička pravila, sintaksna pravila)

U okviru pravila koriste se sledeći metasimboli: ::= definiše se kao, “po definiciji je”, | ili (služi za odvajanje mogućih varijanti u definiciji)

Metapromenljive (pomoćne promenljive) su simboli metajezika koji predstavljaju imena sintaksnih kategorija (strukturnih jedinica)<celi broj bez znaka> <celi broj><aritmetički izraz>

Page 13: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Primeri metalingvističkih pravila

<cifra> ::= 0|1|2|3|4|5|6|7|8|9

<dodeljivanje> ::= <promenljiva> ::= <izraz>

<if_naredba> ::= if <logizraz> then <naredba> | if <logizraz> then

<naredba> else <naredba>

<ceo broj bez znaka> ::= <cifra> | <ceo broj bez znaka>

Page 14: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

Sintaksni dijagrami

Jedno od sredstava za formalnu definiciju sintakse programskih jezika

Usmereni grafovi kojima se prikazuju pravilni putevi u generisanju neke programske konstrukcije

Primer

for i := 1 to 10 do s := s + i ;

Page 15: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

***DANAS*** (informativno)1. PHPPHP je jednostavan a moćan programski jezik za izradu Internet

programa. Najtraženiji je i najpopularniji programski jezik zaprogramiranje Internet sajtova.

Danas preko 20 miliona Web sajtova radi na serverima sainstaliranim PHP-om. Programerima širom sveta odgovaranjegova fleksibilnost, brzina i lakoća upotrebe. Pri tom, alati zarad u PHP-u su besplatni. Možete da ih preuzmete saInterneta i počnete da programirate u roku od desetakminuta.

Njegove velike mogućnosti, razumljiva sintaksa i podrška zarazne operativne sisteme i Web servere učinili su ga idealnimjezikom za brz razvoj Web aplikacija i sistematsko kreiranjesloženih internet sistema.

Page 16: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

2. C#C# je najpopularniji programski jezik za pisanje najšireg opsega

različitih programa, drajvera, sistemskog softvera, igrica, aplikacija koje koriste baze podataka itd…

Programi napisani u C# jeziku su sačinjeni od više osnovnihdelova (komponenti) koji mogu da se na razne načinekombinuju, kao lego kockice.

C# je moćan, fleksibilan i udoban za programiranje. Milioniprofesionalaca širom sveta koriste ovaj programski jezik. Odličan je alat kojim se zamisao lako sprovodi u delo.

Prilično je jednostavan, sa samo 80 rezervisanih reči (zapamtitesamo 80 novih reči i naučili ste ceo nov jezik).

Page 17: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste

3. JavaJava je programski jezik razvijen u kompaniji Sun Microsystems 1991.

godine, kao deo projekta za razvoj softvera za televizore, video rekordere i slične elektronske uređaje. Zbog toga, Java je morala da bude jednostavna, brza, efikasna, pouzdana i lako prenosiva sa jednog uređaja na drugi. Idealna je i popularna za kreiranje programa, servisa, igrica, aplikacija za mobilne telefone i kreiranje funkcionalnosti Web servisa.

Jedan od glavnih razloga za njenu popularnost je to što se Java programi mogu izvršavati na skoro svakom tipu računara i "pametnog" uređaja.Pri tom, Java je objektno orijentisana isto kao i C#. To za programera znači da može da pravi i menja velike programe bez većih komplikacija.

Sam jezik je prost, u poređenju sa većinom programskih jezika, zbog čega se relativno lako uči. Pri tom, jezik je robustan i moćan. Danas je bitno da se naglasi da je Java osnova za dalje usavršavanje, posebno za programiranje za mobilne telefone jer se Android zasniva na Javi.

Page 18: Programski jezici i programiranje · Za programiranje u mašinski zavisnim jezicima potrebno je dobro poznavanje načina rada i arhitekture određenog računara. Obično se koriste