uvod razvoj i vrste programskih jezika

28
Osnove programiranja Uvod Razvoj i vrste programskih jezika

Upload: others

Post on 23-Oct-2021

16 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Uvod Razvoj i vrste programskih jezika

Osnove programiranja

Uvod

Razvoj i vrste programskih jezika

Page 2: Uvod Razvoj i vrste programskih jezika

Nastava

Nedeljni fond časova: 3 + 2

Predavanja: 3 x 15 = 45 časova dr Suzana Marković, dipl.inž.el.

Laboratorijske vežbe: 2 x 15 = 30 časova Asistent, Anastasija Trninić

Page 3: Uvod Razvoj i vrste programskih jezika

Polaganje ispita

Kolokvijumi: Teorija (test na papiru) Zadaci (na računaru)

Integralni ispit 2 kolokvijuma tokom predavanja Praktični kolokvijum nakon završenih vežbi

Položen praktični kolokvijum je uslov za ispit!

Page 4: Uvod Razvoj i vrste programskih jezika

Ocenjivanje

Teorija - 60% od ukupnog broja poena sa oba kolokvijuma

Praktični kolokvijum - 40% od ukupnog broja Konačna ocena: suma bodova iz svih aktivnosti

(min. 50% za prolaznu ocenu)

Page 5: Uvod Razvoj i vrste programskih jezika

Literatura S. Marković, Osnove programiranja,

Akademija poslovnih strukovnih studija, Beograd, 2019.

S. Nakov & Co, Fundamentals Of Computer Programming With C#, 2013. http://www.introprogramming.info/english-intro-

csharp-book/read-online/ Sve C# knjige koje pokrivaju sadržaj predmeta

Predavanja (prezentacije) Korisni linkovi i e-knjige

Page 6: Uvod Razvoj i vrste programskih jezika

Cilj predmeta Upoznavanje studenata sa programiranjem

računara i razvojem softvera. Razumevanje algoritamskog načina rešavanja

problema i zadataka. Upoznavanje sa osnovnim konceptima,

principima i metodama programiranja. Sticanje znanja potrebnih za realizaciju svih faza

životnog ciklusa softvera. Osposobljavanje studenata za samostalno

izučavanje i primenu programskih jezika i okruženja.

Page 7: Uvod Razvoj i vrste programskih jezika

Sadržaj predmeta

Istorijat računarstva i brojeva

Razvoj i vrste programskih jezika

Algoritmi Konzolne aplikacije

Promenljive, konverzije Operatori i izrazi

Kontrola toka programa Uslovi Petlje

Nizovi Funkcije Greške Osnovni OO koncepti

Klase i objekti

Page 8: Uvod Razvoj i vrste programskih jezika

RasporedNedelja Predavanja Datum

1 Uvod 23.2.Brojni sistemi

2 .NET i konz. aplikacije 2.3.Promenljive

4 Konverzije 6.3.Operatori i izrazi

5 Kontrola toka IF, alg. 9.3.6 Petlje 16.3.7 Priprema za kolokvijum 23.3.8 KOLOKVIJUM I 30.3.9 Nizovi 6.4.10 Funkcije 1 13.4.11 Funkcije 2 20.4.12 Greške i fajlovi 27.4.13 Priprema za kolokvijum 11.5.14 KOLOKVIJUM II 18.5.15 Popravni 25.5.

Page 9: Uvod Razvoj i vrste programskih jezika

Sadržaj predavanja Istorijat brojeva i računarstva Pojam jezika Definicija programskih jezika Sintaksa i semantika Program i programiranje Klasifikacija programskih jezika po stepenu

zavisnosti od računara Hronologija razvoja viših programskih jezika Podela programskih jezika prema načinu

rešavanja problema

Page 10: Uvod Razvoj i vrste programskih jezika

Istorijat brojeva

Pre više od 5000 godina, Egipćani osmislili način zapisivanja brojeva koristeći slike

Grci su znanja iz geometrije preuzeli od Egipćana umesto slika koristili slova za prikaz brojeva (Δ

(delta) – deka: 10, h (eta) – hekaton: 100, M (mi) myrioi: 1000.

I jedni i drugi koristili su dekadni brojni sistem

Page 11: Uvod Razvoj i vrste programskih jezika

Pojava nule

Nulu su stvorili Vavilonci Za računanje koristili računaljku – princip

nizanja kamenčića (lat. calculate, calculus - kamenčić) Brojevi 1 i 60 su isto zapisivani ali su na

računaljci zauzimali dve različite pozicije. Tako se ukazala potreba za zapisivanjem praznog mesta – nule.

Page 12: Uvod Razvoj i vrste programskih jezika

Istorijat brojeva

Današnji brojevi razvili su se od simbola koji su nastali u Indiji

Arapi brojni sistem preuzimaju od Indijaca, zajedno sa nulom

Početkom XIII veka Leonardo Fibonači donosi sistem arapskih brojeva u Evropu Fibonačijev niz (problem kunića) – odnos dva

susedna broja u nizu približava se zlatnom preseku

Page 13: Uvod Razvoj i vrste programskih jezika

Pojam jezika

ISO definicije: Jezik je skup znakova, dogovora i pravila koji se

koriste za prenos i saopštavanje informacija Prirodni jezik – jezik čija se pravila zasnivaju na

svakodnevnom korišćenju bez njihove eksplicitne definicije

Veštački jezik – jezik čija su pravila eksplicitno utvrđena pre njegovog korišćenja

Page 14: Uvod Razvoj i vrste programskih jezika

Definicija programskih jezika

Programski jezik – veštački jezik koji se koristi za pripremu programa za računar (ANSI) Jezik za izradu programa, sastavljen od simbola koje

računar može da prevede u direktne radnje Algoritamski jezik – veštački jezik namenjen opisu

algoritma

Page 15: Uvod Razvoj i vrste programskih jezika

Sintaksa i semantika

Skup pravila koja formiraju programski jezik naziva se sintaksa programskog jezika.

Utvrđuje se da li je određena konstrukcija pravilno napisana.

Prevodilac ih lako otkriva. Semantika određuje značenje konstrukcija ili programa u

celini. Semantičke greške su logičkog tipa i tiču se

razumevanja toga kako program funkcioniše. Otkriva ih programer.

Page 16: Uvod Razvoj i vrste programskih jezika

Program i programiranje

PROGRAM je niz instrukcija (naredbi) zapisanih u memoriji računara kojim se precizno određuje na koji način će se transformisati ulazni podaci da bi se dobio željeni izlaz.

Proces pripreme programa, koji se sastoji od projektovanja, pisanja i testiranja programa naziva se programiranje.

Page 17: Uvod Razvoj i vrste programskih jezika

Klasifikacija programskih jezika po stepenu zavisnosti od računara

Page 18: Uvod Razvoj i vrste programskih jezika

Prevođenje programskih jezika

public class Zdravo {public static void main (String[] args) {System.out.println("Zdravo!");

}}

1001000001010100101010100011111000100101010101000001001100101010101011111001010101010101010001101010101010100000101

izvorni program izvršni program

Page 19: Uvod Razvoj i vrste programskih jezika

Simbolički jezici

Umesto instrukcija pisanih nizom bitova, uvedene su mnemoničke skraćenice (simbolički kodovi instrukcija) za operacije i simboličke oznake podataka, npr. naredbom ADD a, b vrši se sabiranje podataka.

Program se piše u simboličkom jeziku, prevodi se na mašinski, a program koji vrši prevođenje iz simboličkog u mašinski jezik naziva se asembler (translator).

Page 20: Uvod Razvoj i vrste programskih jezika

Programski jezici višeg nivoa

Mašinski nezavisni jezici. Visok stepen nezavisnosti u odnosu na arhitekturu

računara i operativni sistem na kojem se izvršavaju. Svaki program pisan jezikom višeg nivoa prevodi se

na mašinski jezik. Na osnovu načina prevođenja i izvršavanja, jezike

višeg nivoa delimo na kompajlerske i interpreterskejezike.

Page 21: Uvod Razvoj i vrste programskih jezika

Kompajleri i interpretatori

Kompajliranje programa - prevođenje programa i izvršavanje programa vremenski odvojeni procesi.

Kompajliranje izvode programi koji se nazivaju prevodioci (kompajleri).

Interpretiranje programa - prevođenje programa i izvršavanje programa vremenski spojeni procesi u jedan.

Interpretiranje izvode programi koji se nazivaju interpretatori.

Page 22: Uvod Razvoj i vrste programskih jezika

Viši programski jezici

Page 23: Uvod Razvoj i vrste programskih jezika

Podela VJ prema načinu rešavanja problema

Deklarativni jezici - problemi se opisuju, a sam sistem (interpreter) ima ugrađene postupke kako da reši opisani problem.

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

Primeri deklarativnih jezika su Prolog i SQL.

Page 24: Uvod Razvoj i vrste programskih jezika

Podela VJ prema načinu rešavanja problema

Proceduralni jezici - računaru se daje kompletan skup instrukcija kojim se rešava problem - algoritam za rešavanje zadataka.

Program u proceduralnom jeziku je niz naredbi koji određuje KAKO se određena akcija obavlja (npr. ‘otvori datoteku’, ‘zatvori datoteku’ itd.)

Programski jezici su ovog tipa: Fortran, Cobol, Basic, Pascal, C kao i mašinski zavisni jezici.

Page 25: Uvod Razvoj i vrste programskih jezika

Programski jezik C

Nastaje 1970. godine Jezik za razvoj UNIX-a ANSI C standard – osnovna referenca za

programiranje Sprega sa hardverom Pogodan za razvoj komponenti sistemskog

softvera i u drugim primenama gde je potrebna sprega sa resursima sistema

Objektna nadgradnja C++, C#

Page 26: Uvod Razvoj i vrste programskih jezika

Objektno orijentisani jezici Prisutni su i proceduralni i neproceduralni elementi. Podaci i akcije koje se izvode nad njima predstavljaju

jednu nerazdvojnu celinu i čine aktivan objekat. Program u OO jeziku predstavlja skup objekata koji

između sebe i sa spoljnim svetom komuniciraju putem „poruka”.

Mnoštvo različitih objekata može se uočiti u okruženju grafičkih operativnih sistema (Graphic User Interface). Npr. Ikona je objekat. Svakoj je pridružen skup osobina i

akcija koje opisuju reagovanje na spoljašnje događaje (klik miša, dvoklik, itd.)

Page 27: Uvod Razvoj i vrste programskih jezika

SMALLTALK

Koreni objektnih jezika - Simula 67 Prvi potpuno objektno orijentisan jezik -

Smalltalk-80 Današnji savremeni jezici su skoro svi objektno

orijentisani Kombinacija objektnog i vizuelnog

programiranja Event Driven Programming Visual Basic, Visual C++, Java, C#

Page 28: Uvod Razvoj i vrste programskih jezika

C# C# je jednostavan objektno orijentisan programski jezik

opšte namene. Razvio ga je Microsoft tim koji je vodio Andres

Hejlsberg. Prva verzija (C# 1.0) se pojavila 2002. godine. Poslednja verzija C# je 7.0 koja se pojavila 2017. god. Pošto je naslednik C i C++ jezika, dobio je ime sharp

po inspiraciji muzičke notacije i znači da se napisana nota izvodi za pola koraka više (C#).

Fajlovi pisani u ovom jeziku imaju ekstenziju cs.