Syntax highlighting of Archiv/Metodika programování a filozofie programovacích jazyků

{{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]]