16
Programski jezik (čitati udžbenik, glava 4) ANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

  • Upload
    others

  • View
    10

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Programski jezik(čitati udžbenik, glava 4)

ANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa”

Definicija vs.

Klasifikacija

Page 2: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Programski jezik - klasifikacija

Mašinski zavisni jezici – prednosti i nedostaci Mašinski nezavisni jezici – prednosti i nedostaci

Page 3: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Programski jezik – klasifikacija- paradigma (način programiranja)

Imperativna paradigma (C, Pascal, Fortran,...) Objektno orijentisana paradigma (Java, C++, C#,...) Funkcionalna paradigma (Lisp, Scheme, Haskell, ...) Logička paradigma (Prolog) Kombinacije...

Page 4: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Programski jezik – klasifikacija- nivo opisa

Proceduralni jezici Deklarativni jezici

Page 5: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Programski jezici FORTRAN FORmula TRANslating system (1954-57, IBM, Džon

Bakus; proračuni parametara u nuklearnoj elektrani); imperativni, proceduralni

LISP LISt Processing (projektovan 1958., Džon Makarti); funkcionalni, proceduralni

COBOL COmmon Business-Oriented language, 1959; CODASYL; imperativni, proceduralni; od 2002 - OO

60-te ALGOL , … 70-te C, Pascal, Smalltalk 80-te C++ 90-te Haskell, Python, Visual Basic, Ruby, JAVA, PHP, JavaScript

- skript jezici (veb) C#, Scala, F# - MS -multiparadigme

Page 6: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Razvojni ciklus programa

Pisanje programa za rešavanje problema

Izbor metode

Izbor ili razvoj algoritma

Zapis algoritma na programskom jeziku - kodiranje

Unošenje u računar, prevođenje: iz izvornog u objektni kod

Povezivanje: iz objektnog u izvršni kod

Izvršavanje: testiranje, otkrivanje grešaka – programski alati

Ispravljanje grešaka – novi program, algoritam ili metoda

Korišćenje i održavanje programa

Page 7: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Leksika, sintaksa, semantika

jezika

Šta su ispravne rečenice srpskog jezika? Šta su ispravne reči srpskog jezika? Šta je značenje ispravnih rečenica? Primer: „Bezbojne zelene ideje besno spavaju„ (N. Čomski) Sta su ispravni programi nekog programskog jezika? Šta je značenje pojedinih naredbi?

Leksika: osnovni gradivni elementi jezika Sintaksa: kombinovanje osnovnih elemenata u ispravne

jezičke konstrukcije Semantika: značenje (rečenice, programa)

Page 8: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Leksika, sintaksa, semantika

jezika Primer: if (a < 3) x1 = 3+4*a;

Leksički analizator

Leksema Kategorija Leksema Kategorija

if ključna reč = operator

( zagrada 3 celobrojnalkonstanta

a identifikator + Operator

< operator 4 celobrojnakonstanta

3 celobrojnakonstanta

* Operator

) zagrada a identifikator

x1 identifikator ; interpunkcija

Page 9: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Leksika, sintaksa, semantika

jezika

Sintaksa definiše formalne odnose između elemenata jezika

Daje opis strukture ispravnih rečenica jezika Sintaksa se bavi samo formom i strukturom jezika Sintaksa ne razmatra značenje rečenica Na osnovu sintakse – generisanje i prepoznavanje

Page 10: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Leksika, sintaksa, semantika

jezika

Sintaksička struktura rečenica ili programa se može predstaviti u obliku stabla

Sintaksički analizator

Page 11: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Leksika, sintaksa, semantika

jezika

Semantika – značenje; U programskom jeziku: izračunavanje opisano

programom if (a < 3) x1 = 3+4*a; Semantička korektnost programa

Tokom prevođenja programa (npr.tipovi) Tokom izvršavanja programa (npr. deljenje nulom)

Formalna definicija semantike - samo za neke programske jezike

Za ostale jezike - neformalno, prirodnim jezikom

Page 12: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Jezički procesori - vrste

Jezički procesori:

Sintaksna ispravnost programa

Prevođenje na mašinski jezik

Kompilatori

Interpreteri

Vreme analize, prevođenja i izvršavanja

Page 13: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Interpreteri: izvršavanje programa

Page 14: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Kompilatori: izvorni – ciljni jezik -

izvršavanje programa

Page 15: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Interpreteri: prednosti i nedostaci

Neposredni pristup korisnika procesu računanja, izvornom programu i podacima

Pogodni u vreme razvoja programa

Neefikasno izvršavanje

Jezici u sastavu tekst editora, operativnih sistema, problemski orijentisani jezici, jezici sa slabom strukturom – PROLOG, BASIC, LISP

Page 16: Programski jezikpoincare.matf.bg.ac.rs/.../Programski_jezici.pdfANSI: “Programski jezik je jezik koji se koristi za pripremanje računarskih programa” Definicija vs. Klasifikacija

Kompilatori: prednosti i nedostaci

Brzina izvršavanja programa

Prevedeni program gubi svaku vezu sa izvornim programom

Svaka (i najmanja) izmena u izvornom programu zahteva ponovno prevođenje celog programa

Programi sa intenzivnom numeričkom obradom –važna brzina

Jezici sa izraženom strukturom i tipiziranošću

Mešoviti pristup