povijest programskih jezika Flashcards
područje primjene programskih jezika
-sistemski programi
-web aplikacije
-aplikacije za razne namjene
-znanstvene aplikacije
-poslovne aplikacije
-inteligentne aplikacije (umjetna inteligencija)
koji su kriteriji za evaluaciju programskih jezika
čitljivost (razumljivost) -
jednostavnost kodiranja- Writability
pouzdanost – Reliability
cijena – Cost
ostalo
▪ prenosivost -
▪ općenitost -
▪ definiranost-Well- definedness
Koje osobine mora imati programski jezik?
-razvoj interpreterski, izvođenje u prevedenoj verziji
-dobro otklanjanje pogreški (debug)
-jasna i jednostavna sintaksa
-široka grupa korisnika
-namijenjeni za vrstu problema koju rješavamo
-brzo kodiranje, portabilnost,..
Što utječe na dizajn programskih jezika?
-arhitektura računala
▪ u ovom trenutku von Neumannova arhitektura
-metodologija programiranja
tko je 10 tvrdnji: Postoji li algoritam koji za bilo koju matematičku tvrdnju može ustanoviti je li ona istinita ili ne?
njemački matematičar Hilbert 1900.
koi su rezulatati hilbertovih pretraživanja
▪ Turingov stoj
▪ λ-račun
▪ rekurzivne funkcije
sto je 1920.-tih Lukashiewicz definirao
postfiksni
zapis
▪ ne trebaju zagrade
▪ operator može imati vise operanada ▪ primjeren za rad stoga (stack)
sto je karakteristika 50-ih
algoritam koji provjerava odgovara li napisani
izraz sustavu oznaka
▪ prevođenje jednog sustava oznaka u drugi sustav oznaka (Rutishauser)
redosljed postupaka određuje redosljed generiranja naredbi strojnog programa
da
hijerahijske razine određuju sljed izračuna => sljedni proces => redosljed naredbi
da
sto karakterizira ozicenu logiku
Analytical Engine, Jacquard Loom, rad s bušenim karticama
koje računalo je utjecalo na prevođenje programa (kompajliranje)
ENIAC
koja su računala strojni jezicii i programi su im pohranjeni u memoriji poput podataka
Manchester Mark I, EDSAC
tko je definirao proces kompajliranja (prevođenja)
Rutishauser (Švicarska)
koi je interpreter stvoren za programski jezik za UNIVAC računalo
SHORT CODE
koi su progrmski jezici za UNIVAC
- ARITH-MATIC i MATH-MATIC ▪ 1957. UNICODE – preteča Fortrana
koi je jezik preteča FORTRANA
UNICODE
kada ibm razvija seriju 701
53.
▪svo programiranje u Asembleru
▪ Problem: cijena SW viša od cijene HW, koji je
ionako jako skup!
tko razvija razvija ideju brzog kodiranja
John Backus
interpreter, radi 10-20 puta sporije od
asemblerskog programa
točno
kada je najavljena kriza softvera
1968.
koi programski jezik radi za IBM 701
BACAIC (operatori množenja i prdiruživanja)
tko I kada je razvio FORTRAN
Godina razvoja: 1954.
Razvojni tim: IBM, s Johnom Backusom kao voditeljem projekta.
Od 1958. godine, više od 50% softvera je razvijano u FORTRAN-u.
da
na koje je jezike fortran utjecao
ALGOL 58, BASIC, PL/I, C
koi je prvi jezik s “objektno-orijentiranim” idejama
Simula 67
eksplozija 60-ih
APL (polja-arrays), SNOBOL (stringovi-strings),
FORMAC (formule), …
koi se jezik razvija se u Europi kao odgovor na FORTRAN i ima moderna sintaksa, blokovna struktura, eksplicitno deklariranje varijabli
Algol 58 Algol 60
koi programski jezik ima ova obilježja
▪ dinamičke i simboličke strukture podataka
▪ rad s listama, rekurzije, operacije sa znakovima
▪ zasniva se na Church-evom λ- računu
▪ program i podaci u memoriji pohranjeni isto
▪ značajan za razvoj umjetne inteligencije
LISP
koji jezik kombinira FORTRANski pristup numeričkim podacima, COBOLski pristup zapisima, uvodi pointere, uvodi rigorozni formalizam
Algol 68
koi je jezik jednostavan i ima ZX Spectrum
BASIC, 1965.
koi je jezik poslovne namjene, zapisi-Records-poseban zapis podataka i akcija,
strojno nezavisan opis podataka
COBOL
koi jezik ujedinjuje FORTRAN i COBOL
, iznimno je kompleksan
PL/I
ŠTO obilježava 70-te u prog jezicima
naglasak na metodologiji
▪ Modula modularno programiranje
▪ SmallTalk (XEROX)- objektno orijentirana paradigma
sredina 70tih :
▪ ML (Metalanguage)
▪ zaključivanje (inference),
▪ programiranje na osnovu uzorka (pattern-driven programming)
kraj 70tih:
▪ AdA početak razvoja
▪ s ciljem konsolidacije > 500 programskih jezika
Kako programski jezici
dobivaju naziv?
akronimi/kratice
po važnim ljudima, autorima
po inicijalima autora
po hrani i piću
po pop kulturi
povijest i mitologija
književnost
slova
postoji više podjela jezika
▪ klasična: viši i niži programski jezici
▪ po generacijama: 1, 2, 3, 4, 5…
▪ po osobinama ▪pofunkcionalnosti (namjeni)
programski jezici se mogu djeliti na imperativne i deklarativne
da
kako se dijele imperativni programi
procedural I objektivni
kako se djele deklarativni programi
logički i funkcijski
koi program mjeri popularnost programskih jezika
TIOBE Index
Podjela programskih jezika po namjeni
-specijalizirani
-sistemski
-za poslovne podatke
-za baze podataka
-za liste, za polja, za nizove
-logički
-skriptni
tko je autor LISP-a
John McCarthy
koi su funckijski jezici prve generacije
LISP, Scheme, T
koi su funckijski jezici nove generacije
ML, Miranda, Haskell
Haskell je logički jezik nove generacije
netočno
koi su Logički programski jezici
Prolog, templog, HASL, FUNLOG
Skriptni programski jezici su
Perl, Python, Tcl, JavaScript, shell scripts, REXX
Skriptni programski jezici su većinom interpretirani (u run-time-u), i za rad s tekstom i web programiranje
točno
HTML,XML, XSLT, JSP SU
mark up jezici
SQL je program za baze podataka
točno
COBOL I ADA su program za poslovnu namjenu
točno
Program za liste su: LISP, T, Scheme, Miranda
program za polja (array): APL, VisiCalc, Lotus
program za nizove (string): SNOBOL, Icon
da
tko je izumio algorithme
arapski matematičar
al Khowarizmi
Algoritam je govorio →
algorithm glasi
kako se naziva obavljanje algoritma
algoritamski proces
algorithm mora biti
upotrebljiv i bez prepreka u izvođenju
Algoritmi + strukture podataka=
PROGRAM
Opis algoritma koji u nekom programskom jeziku jednoznačno određuje što računalo treba napraviti je
program
programski jezici imaju sintaksu, pravila pisanja
da
naredba programa se sastoji od
– simbola ili operatora (ključna ili rezervirana riječ) koji govori koju operaciju treba izvesti nad
– operanadima ili argumentima
U programiranju: podatak smješten u memoriji računala, poznate veličine, koji se može mijenjati i kojemu je dodijeljeno ime je
varijabla
koi tip jezika ima glavne značajke: varijable, pridruživanja i iteracije
obuhvaćaju: objektno-orjentirane jezike, vizualne jezike, skriptne jezike
imperative
FORTRAN77, Pascal, Ada, ANSI C, ML su jezici
jakih tip ova
Simula, Smalltalk, T, C++, Java su
objektno-orijentirani
Pascal, Ada, C, FORTRAN, BASIC, COBOL su
procedural
LISP, Scheme, T su
funkcijski
Co-Pascal, OCCAM, LINDA, FORTRAN-90 su
paralelni
paralelni jezici u umjetnoj inteligenciji: izvedi sve procese paralelno i javi koji je završio uspješno – našao rješenje
, sve više se oslanjaju na funkcijske jezike
da
koi jezici su većinom interaktivni i podržavaju liste
,sadrže varijable i mogu biti proceduralni
funkcijski
kod kojih tipova programa svaki objekt koji se koristi mora imati točno određen tip
jakih tipova
koji programi se sastoji od poziva procedura koje se izvode sekvencijalno
, programi se izvode sekvencijalno
proceduralni