Programski jezici Algoritmi i programiranje Algoritam je konaan

  • Slides: 17
Download presentation
Programski jezici

Programski jezici

 Algoritmi i programiranje Algoritam je konačan, uređen skup, nedvosmislenih Algoritam izvršnih koraka za

Algoritmi i programiranje Algoritam je konačan, uređen skup, nedvosmislenih Algoritam 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 Programski jezici 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 Program u nekom programskom jeziku koje se mogu prevesti u instrukcije koje računar može direktno izvršiti (mašinske instrukcije) 2

Generacije programskih jezika Mašinski jezik (u binarnom obliku) Asemblerski (simbolički) jezik i makroasemblerski jezici

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

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

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)

- Mašinski zavisni jezici Mašinski jezici Izgrađeni su nad binarnom azbukom (0, 1) Nije

- 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

 Program koji prevodi simbolički u mašinski jezik zove se asembler Za programiranje u

Program koji prevodi simbolički u mašinski jezik zove se asembler 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.

Mašinski nezavisni jezici -Jezici višeg nivoa Bliži su prirodnom jeziku, čitljiviji i lakši za

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

 Prema načinu rešavanja problema možemo ih podeliti na : Proceduralne – dajemo računaru

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++

 Program u proceduralnom jeziku je niz naredbi koji određuje KAKO se određena akcija

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”.

Sintaksa programskih jezika Sintaksa - skup pravila i dogovora kojima se opisuju pravilne konstrukcije

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)

Formalan opis sintakse Jedan od osnovnih uslova standardizacije jezika Osnova za projektovanje kompilatora Omogućava

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

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

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>

Primeri metalingvističkih pravila <cifra> : : = 0|1|2|3|4|5|6|7|8|9 <dodeljivanje> : : = <promenljiva> :

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>

Sintaksni dijagrami Jedno od sredstava za formalnu definiciju sintakse programskih jezika Usmereni grafovi kojima

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 ;

***DANAS*** 1. PHP je jednostavan a moćan programski jezik za izradu Internet programa. Najtraženiji

***DANAS*** 1. PHP je jednostavan a moćan programski jezik za izradu Internet programa. Najtraženiji je i najpopularniji programski jezik za programiranje Internet sajtova. Danas preko 20 miliona Web sajtova radi na serverima sa instaliranim PHP-om. Programerima širom sveta odgovara njegova fleksibilnost, brzina i lakoća upotrebe. Pri tom, alati za rad u PHP-u su besplatni. Možete da ih preuzmete sa Interneta i počnete da programirate u roku od desetak minuta. Njegove velike mogućnosti, razumljiva sintaksa i podrška za razne operativne sisteme i Web servere učinili su ga idealnim jezikom za brz razvoj Web aplikacija i sistematsko kreiranje složenih internet sistema.

2. C# C# je najpopularniji programski jezik za pisanje najšireg opsega različitih programa, drajvera,

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 osnovnih delova (komponenti) koji mogu da se na razne načine kombinuju, kao lego kockice. C# je moćan, fleksibilan i udoban za programiranje. Milioni profesionalaca š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 (zapamtite samo 80 novih reči i naučili ste ceo nov jezik).

3. Java je programski jezik razvijen u kompaniji Sun Microsystems 1991. godine, kao deo

3. Java 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. A 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.