Probírané koncepty:
- jazyky s třídami (staticky typované a dynamicky typované)
- typování, kovariance, kontravariance
- funkcionální programování v rámci objektově orientovaných procedurálních jazyků
- meta-programování v dynamických jazycích
- doménově specifické jazyky
- transformace kódu během překladu, statické meta-programování
- konkurentní programování
- objektové jazyky bez tříd (tzv. prototypové jazyky)
Koncepty budou názorně prezentovány na uvedených jazycích, které jsou reálně používané v praxi:
- Groovy
- Scala
- TypeScript/JavaScript, Io
Cílem předmětu je seznámit studenty se zajímavými a pokročilými koncepty objektově orientovaných jazyků a ukázat jejich typické použití spojené s praktickým procvičením. Předmět je určen především studentům, kteří již mají zkušenosti s vývojem v jazycích Java/C++/C#. Koncepty budou ilustrovány v jazycích Scala, Groovy, IO,
JavaScript, TypeScript. Předchozí znalost těchto jazyků není nutná. Předmět poskytne dostatečný úvod do každého z těchto jazyků.