Uvod Flashcards
Opis fortran
(FORmula TRANslation), 1954, John Backus, IBM
prvý programovací jazyk
imperatívny jazyk
numerické a vedecké výpočty
Co je to imperativny jazyk?
Imperatívne programovanie popisuje výpočet pomocou postupnosti príkazov a určuje presný postup (algoritmus), ako danú úlohu riešiť.
Opis LISP
(LISt Processor), 1958, John McCarthy, MIT
funkcionálny jazyk
plne uzátvorkovaná prefixová notácia - kód je zoznam
makrá
automatická správa pamäte (garbage collection)
dynamická kontrola typov, iba niekoľko základných typov
Opis ALGOL
(ALGOrithmic Language), 1958
imperatívny jazyk
blok kódu vymedzený „begin . . . end“
matematicky presne popísaná syntax jazyka
Opis COBOL
(COmmon Business-Oriented Language), 1959
imperatívny jazyk
stále používaný na udržiavanie starých aplikácií
najstarší program má Pentagon: MOCAS
anglicke slova ako prikazy, dlhe nazvy premennych
opis APL
(A Programming Language), 1960
funkcionálny jazyk, hlavný dátový typ: viacrozmerné pole
program: postupná aplikácia funkcií alebo operátorov na pole
používa špeciálnu znakovú sadu pre zápis primitív jedným znakom (> 88)
Opis forth
1968, Charles H. Moore
imperatívny jazyk, namiesto premenných používa zásobník
funkcie sa skladajú zreťazením programov (konkatenatívny jazyk)
kompaktný, ľahko prenositeľný, vhodný pre mikropočítače
Co je to REPL?
read–eval–print loop
Opis prolog
(PROgrammation en LOGique – programovanie v logike)
deklaratívny jazyk, logické programovanie
Hornova klauzula: Head :- Body.
ak je Body pravda, tak aj Head je pravda.
program je reprezentovaný reláciami
fakty (klauzuly s prázdnym telom)
výpočet sa spúšťa položením otázky nad reláciami
Opis imperativne programovanie
- výpočet je postupnosť príkazov
- príkazy menia dáta
- aktualizované dáta predstavujú aktuálny stav programu
Opis funkcionalne programovanie
- výpočet je postupnosť vyhodnocovania matematických funkcií * funkcie vracajú nové dáta (nemodifikujú existujúce dáta)
- nové dáta predstavujú stav programu
opis deklarativne programovanie
definuje vlastnosti riešenia bez určenia toku riadenia výpočtu
ake pozname styly imperativneho programovania?
procedurálne - rozdelenie programu na procedúry, podprogramy, funkcie, lokálne premenné a pod
štrukturované - kontrola toku riadenia vyššej úrovne, odsadenie kódu (while, for, foreach, …)
Daj priklad na imperativne prog jazyky
Pascal, Basic, C, C++, Java, Python, Asembler, . . .
Opis nasledky funkcionalneho programovania
premenné neobsahujú dáta, iba ich pomenúvajú
neexistuje príkaz priradenia, dáta sú nemeniteľné
automatická správa pamäte (garbage collection)
funkcia môže použiť pre výpočet iba svoje argumenty
rekurzia namiesto cyklov