Uvod Flashcards

1
Q

Opis fortran

A

(FORmula TRANslation), 1954, John Backus, IBM
prvý programovací jazyk
imperatívny jazyk
numerické a vedecké výpočty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Co je to imperativny jazyk?

A

Imperatívne programovanie popisuje výpočet pomocou postupnosti príkazov a určuje presný postup (algoritmus), ako danú úlohu riešiť.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Opis LISP

A

(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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Opis ALGOL

A

(ALGOrithmic Language), 1958
imperatívny jazyk
blok kódu vymedzený „begin . . . end“
matematicky presne popísaná syntax jazyka

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Opis COBOL

A

(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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

opis APL

A

(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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Opis forth

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Co je to REPL?

A

read–eval–print loop

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Opis prolog

A

(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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Opis imperativne programovanie

A
  • výpočet je postupnosť príkazov
  • príkazy menia dáta
  • aktualizované dáta predstavujú aktuálny stav programu
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Opis funkcionalne programovanie

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

opis deklarativne programovanie

A

definuje vlastnosti riešenia bez určenia toku riadenia výpočtu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

ake pozname styly imperativneho programovania?

A

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, …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Daj priklad na imperativne prog jazyky

A

Pascal, Basic, C, C++, Java, Python, Asembler, . . .

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Opis nasledky funkcionalneho programovania

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Co je to referencna transparentnost?

A

(rovnaké argumenty → rovnaký výsledok)
* „efektom“ je iba návratová hodnota ⇒ žiadne vedľajšie účinky

17
Q

Aka je vyhoda ze vo funk programovani nemenime existujuce data?

A
  • spoločné časti sa zdieľajú, šetrí sa pamäť
  • dáta sú nemeniteľné ⇒ nevznikne problém pri zdieľaní
18
Q

Daj priklad na funkcionalne jazyky

A

Clojure, Erlang, Haskell, Elm, Lisp, . . .

19
Q

Opis OOP

A
  • každá hodnota je objekt, ktorý je inštanciou nejakej triedy
  • triedy pomocou dedenia vytvárajú acyklickú hierarchiu
  • objekty komunikujú posielaním správ: príjemca správa(obsah)
20
Q

Ake su zakladne principy OOP?

A

zapúzdrenie
polymorfizmus (viac-tvarosť)
dedičnosť (zdieľanie spoločného kódu)

21
Q

Opis zapuzdrenie

A
  • skrývanie implementačných detailov, vybrané časti vnútorného stavu prístupné len cez get/set metódy
  • abstraktné dátové typy
22
Q

Opis polymorfizmus

A
  • dynamic dispatch (virtuálne metódy – iba single dynamic dispatch)
  • jednotné spracovanie celej hierarchie (rodiny) objektov
23
Q

Daj priklad na OOP jazyky

A

Common Lisp, Scala, OCaml, C++, C#, Java, . . .

24
Q

Co vyuziva deklarativny prog jazyk na vypocet?

A
  • prehľadávania s návratom (backtracking)
  • topologického triedenie
  • heuristiky
25
Q

Daj príklad na deklarativny jazyk

A

Excel, SQL, Regulárne výrazy, Prolog, HTML, . . .

26
Q

Co prinasa vacsia uroven abstrakcie?

A

Vacsinou nizsiu efektivitu

27
Q

Ake programy su najrychlejsie

A

imperatívny program bez podprogramov je najrýchlejší
bez podprogramov ⇒ dlhší kód

28
Q

Aka je nevyhoda funkcionálne a procedurálne programovanie?

A

často volá funkcie, podprogramy
* bez „inlining“u treba zaplatiť cenu volania

29
Q

Aka je nevyhoda OOP?

A
  • okrem štandardných podprogramov, množstvo get/set metód
  • dynamic dispatch, tabuľka virtuálnych metód, ďalšie spomalenie
  • vytváranie objektov na halde (heap)