18
Programski jezici 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)

Po stepenu zavisnosti programskog jezika od računara ...w3.ekof.bg.ac.rs/upload/1119PI2014-CAS06 dodatak.pdf · Python) . Na sajtu rejtinzi ovako kategorisanih program skih jezika

  • Upload
    buiminh

  • View
    226

  • Download
    2

Embed Size (px)

Citation preview

Programski jezici

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)

-- MaMaššinski zavisni jezici inski zavisni jezici --

�� MaMaššinski jeziciinski jezici

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

�� Nije potrebno prevođenje Nije potrebno prevođenje

�� Vezan je za konkretan raVezan je za konkretan raččunar (svaka unar (svaka

familija procesora ima svoj mafamilija procesora ima svoj maššinski jezik)inski jezik)

-- MaMaššinski zavisni jezici inski zavisni jezici --

�� SimboliSimboliččki jeziciki jezici

�� Uvode mnemotehniUvode mnemotehniččke skrake skraććenice za enice za

operacije i simbolioperacije i simboliččke oznake podatakake oznake podataka

�� Jednoj naredbi maJednoj naredbi maššinskog jezika odgovara inskog jezika odgovara

jedna naredba simbolijedna naredba simboliččkogkog

�� Program koji prevodi simboliProgram koji prevodi simboliččki u maki u maššinski jezik inski jezik

zove se asemblerzove se asembler..

�� Za programiranje u maZa programiranje u maššinski zavisnim jezicima inski zavisnim jezicima

potrebno je dobro poznavanje napotrebno je dobro poznavanje naččina rada i ina rada i

arhitekture određenog raarhitekture određenog raččunara.unara.

�� ObiObiččno se koriste za programiranje rano se koriste za programiranje raččunara za unara za

interakciju rainterakciju raččunara sa I/O urunara sa I/O uređajima eđajima : :

�� šštampatampaččimaima

�� skenerima skenerima

�� uređajima za uređajima za ččuvanje podataka,...uvanje podataka,...

�� Njime su pisani programi poznati kao drajveri.Njime su pisani programi poznati kao drajveri.

-- Jezici viJezici viššeg nivoa eg nivoa --

�� BliBližži su prirodnom jeziku, i su prirodnom jeziku, ččitljiviji i lakitljiviji i lakšši za i za

pisanje programa.pisanje programa.

�� Imaju visok stepen nezavisnosti od arhitekture Imaju visok stepen nezavisnosti od arhitekture

raraččunaraunara

�� Na osnovu naNa osnovu naččina prevođenja i izvrina prevođenja i izvrššavanja dele avanja dele

se na :se na :

�� Kompajlerske (Algol, Fortran, Cobol, PL/I,...)Kompajlerske (Algol, Fortran, Cobol, PL/I,...)

�� Interpreterske (Lisp, Prolog, Basic,...)Interpreterske (Lisp, Prolog, Basic,...)

�� U poU poččetku se razlikovala primena uetku se razlikovala primena u::

�� Oblasti poslovanja Oblasti poslovanja –– karakterisao je veliki broj karakterisao je veliki broj

I/O podataka i relativno jednostavan opis I/O podataka i relativno jednostavan opis

obrade podataka (Cobol)obrade podataka (Cobol)

�� Nauci i tehnici Nauci i tehnici –– karakterisao je mali broj I/O karakterisao je mali broj I/O

podataka, ali veoma slopodataka, ali veoma složžen opis obrade, pa en opis obrade, pa

su razvijani jezici za tu namenu (Fortran, su razvijani jezici za tu namenu (Fortran,

Algol...)Algol...)

�� VremenomVremenom se se gubi ova podela i savremeni gubi ova podela i savremeni

programski jezici mogu se koristiti ravnopravno programski jezici mogu se koristiti ravnopravno

u ovim oblastima.u ovim oblastima.

�� PremaPrema nanaččinu reinu reššavanja problema moavanja problema možžemo ih emo ih

podeliti na :podeliti na :

�� ProceduralneProceduralne –– dajemo radajemo raččunaru kompletan unaru kompletan

skup instrukcija kojim se reskup instrukcija kojim se reššava problem, tj. ava problem, tj.

dajemo mu algoritam za redajemo mu algoritam za reššavanje zadatka avanje zadatka

(pa se zovu i algoritamski). Tu spadaju : (pa se zovu i algoritamski). Tu spadaju :

Pascal, Cobol, C, Basic, Fortran, maPascal, Cobol, C, Basic, Fortran, maššinski,...inski,...

�� DeklarativneDeklarativne –– opisujemo opisujemo ššta znamo o ta znamo o

problemu i problemu i ššta ta žželimo da dobijemo reelimo da dobijemo reššavajuavajućći i

ga, a sistem (interpreter) sam dolazi do ga, a sistem (interpreter) sam dolazi do

postupka za repostupka za reššavanje problema. Primeri avanje problema. Primeri

deklarativnih jezika su Prolog i SQL.deklarativnih jezika su Prolog i SQL.

�� MoguMogućća je i podela na osnovu naa je i podela na osnovu naččina ina

alokacije memorije naalokacije memorije na::

�� ProgramProgramskske e jezikejezike sa sa statičkom alokacijom

memorije (C++, C#, Java, Pascal,...).(C++, C#, Java, Pascal,...).

�� ProgramProgramskske e jezikejezike sa sa dinamičkom

alokacijom memorije (Ruby, Lisp, JavaScript i (Ruby, Lisp, JavaScript i

Python)Python)..

�� Na sajtu Na sajtu www.tiobe.comwww.tiobe.com rejtinzi ovako rejtinzi ovako

kategorisanih programkategorisanih programskihskih jezikajezika a u a u

februarufebruaru 20201313::

�� StatiStatiččki tip ki tip 70,6%70,6% ((--0,6%0,6% od od februarafebruara 202012.12.))

�� DinamiDinamiččki tip ki tip 29,4%29,4% ((+0,6% +0,6% od od februarafebruara 202012.12.))

�� NajNajččeeššćća podela programskih jezika (sa a podela programskih jezika (sa

rejtingom za rejtingom za februarfebruar 202013.13. godine):godine):

�� Objektno orijentisani jezici (Objektno orijentisani jezici (60.1%)60.1%)

�� Proceduralni jezici (Proceduralni jezici (35.0%)35.0%)

�� FunkciFunkcijskijski jezici (jezici (3.3%)3.3%)

�� LogiLogiččki jezici (1.ki jezici (1.66%)%)

�� U U funkcijskom programiranju funkcije se funkcije se primenjuju na argumente i vrednosti. primenjuju na argumente i vrednosti.

�� VraVraććene vrednosti se koriste kao ene vrednosti se koriste kao argumenti za druge funkcije sa argumenti za druge funkcije sa izbegavanjem pripisivanja naredbi. izbegavanjem pripisivanja naredbi.

�� Primer je Lisp kod koga je primarna Primer je Lisp kod koga je primarna struktura sa kojom radi lista.struktura sa kojom radi lista.

� Proceduralni jezici su se menjali i razvijali su se menjali i razvijali

tokom vremena. tokom vremena.

�� Fortran i Cobol sFortran i Cobol spadajupadaju u prvu prvee jezikjezikee viviššeg nivoa.eg nivoa.

�� Oko 1960. god doOko 1960. god doššlo je do velike softverske krize jer lo je do velike softverske krize jer

je naredba je naredba GO TOGO TO dovela do toga da se programi dovela do toga da se programi

tetešško prate i imaju previko prate i imaju previšše gree greššaka.aka.

�� DDolazi do razvoja struktuolazi do razvoja strukturriranih programskih jezika iranih programskih jezika

(Algol, Pascal,...) i (Algol, Pascal,...) i ““zabranezabrane”” korikoriššććenja naredbe GO enja naredbe GO

TO.TO.

�� SledeSledećća faza je razvijanje modularnih programskih a faza je razvijanje modularnih programskih

jezika koji funkcionijezika koji funkcioniššu tako u tako ššto razbijaju program na to razbijaju program na

manje celine (modumanje celine (module) gle) gde svaki modul obavlja de svaki modul obavlja

određenu funkcijuodređenu funkciju..

� Objektno orijentisani jezici su jezici poslednje su jezici poslednje

generacije. generacije.

�� Objekti su jedinice informacija koje sadrObjekti su jedinice informacija koje sadržže e

podatke kao i metode za procesiranje i rad sa podatke kao i metode za procesiranje i rad sa

podacima. podacima.

�� Da bismo koristili gotov objekat ne moramo Da bismo koristili gotov objekat ne moramo

da znamo kako je on pravljen niti da znamo kako je on pravljen niti ššta je u ta je u

njemu, venjemu, većć samo kako i samo kako i ššta on radi.ta on radi.

�� U OO jezike se ubrajaju : Java, C++, Python... U OO jezike se ubrajaju : Java, C++, Python...

Logički programski jezici

�� Pripadaju klasi deklarativnih Pripadaju klasi deklarativnih

(neproceduralnih) programskih jezika.(neproceduralnih) programskih jezika.

�� Zasnovani su na predikatima (logiZasnovani su na predikatima (logiččkim kim

izrazima).izrazima).

LogiLogiččki jezici:ki jezici:

�� Prolog (PROgramming in LOGic)Prolog (PROgramming in LOGic)

�� DatalogDatalog

�� Razvoj programskih jezika je veoma brz.Razvoj programskih jezika je veoma brz.

�� PosebnoPosebno jeje uslovljenuslovljen razvojem hardvera i razvojem hardvera i

komunikacija.komunikacija.

�� Sve Sve navedenenavedene podelepodele nisu striktne, nisu striktne, jerjer

razvojemrazvojem nekineki programskiprogramski jezikjezik momožže da e da

preuzme dobra repreuzme dobra reššenja iz drugih jezika, a enja iz drugih jezika, a

koja su se pokazala korisnim.koja su se pokazala korisnim.