{{predmet|Metodika programování a filozofie programovacích jazyků|Rudolf Kryl|PRG003}}
Obecné povídání o jazycích
{{TODO|Záměrem této sekce je být odrazem přednášek. Zatím obsahuje pouze odkaz na sbírku odkazů níže.}}
Poznámky
PRG003 rysy a odkazy - obsáhlá sbírka odkazů a informací k jednotlivým probíraným jazykům
Podrobnosti k vybraným jazykům
Jak je jistě známo, u zkoušky se vyžaduje podrobnější znalost jednoho jazyka, vybraného z následujích možností. Je také možné si domluvit jazyk individuálně. V tom případě se očekává vcelku podrobná znalost (volně cituji: "Když mě ten jazyk během půlhodiny u zkoušky někdo naučí, tak prosím...").
a) SIMULA 67
Osnova požadovaných znalostí:
pojem třídy - objektové programování
text, předávání parametrů,
kvalifikace a inspekce
prefixování, virtuální atributy, hidden a private, inner,
kvaziparalelní systém - koprogramy
třídy SIMSET a SIMULATION, princip procesní simulace
b) C++
Osnova požadovaných znalostí:
realizace myšlenek objektového programování
pojem třídy, členu, konstruktor a destruktor
ochrana přístupu ke členům tříd
vícenásobná dědičnost, abstraktní třídy,
zpracování výjimek, šablony
přetěžování operátorů a metod
srovnání jazyků C a C++
c) [[Ada]]
Osnova požadovaných znalostí:
charakteristika jazyka
typy a typové kontroly, atributy,
separátní kompilace, práce s knihovnami
generiky
podprogramy, předávání parametrů
výjimky
paralelismus, mechanismus randevous
d) Java
Osnova požadovaných znalostí:
koncepce jazyka
applety
realizace myšlenek objektového programování
konstruktory, metoda finalize a garbage collector
abstraktní a finální metody a třídy
rozhraní
vnitřní třídy
ochrana přístupu k členům tříd
balíky
vlákna
příkazy a výrazy
zpracování výjimek
předávání parametrů
automatické dokumentování
e) Haskell
Osnova požadovaných znalostí:
typy v Haskellu, typová specifikace funkce
základní způsoby definování výrazů, sémantika „mečování“ parametrů, as patterns ( @s ), žolíky ( _ ), lazy patterns
lazy vyhodnocování, "nekonečné" termy
Lambda abstrakce, používání jmen funkcí jako operátorů a naopak, specializace operátorů { (např. (x+) Třídy, podtřídy, instance.
pole v Haskellu
Praktické zkušenosti ze zkoušky
*30. 6. 2005
Měl jsem vybránu Adu, dostal jsem otázky: paralelismus a typový systém. U paralelismu dr. Kryla speciálně zajímalo, zda se vlákna (tasky) nějak synchronizují při inicializaci – nakreslit časové osy. (Nejdřív se inicializuje rodičovské vlákno, děti čekají, pak se inicializují děti a rodič čeká. Až jsou všehny děti zinicializované, rodič spouští svojí výkonnou část. Děti si ji spouští hned. Rodič (netypicky) smí umřít až po smrti všech dětí.)
Pak jsem dostal obecnou otázku – polemizovat na viditelností/dobou života objektů v různých jazycích. (Viz. např. C++: static, lokální proměnná v cyklu).
Při probírání Ady nešel nijak extra do hloubky (oproti přednášce). Obecnou otázku ze mě trošku tahal a pak mi dal jedničku.
category:Informatika