Diplomná práce se zabývá problematikou paralelismu v moderních programovacích jazycích. První kapitola definuje jednotlivé odborné pojmy. Kapitoly dva až pět zkoumají techniky paralelismu, asynchronismu a souběhu v různých programovacích jazycích. Každý z jazyků uvedených v této práci implementuje jiné programovací paradigma. Patří mezi ně Java, JavaScript, Clojure a Go. Závěr práce provádí srovnávací analýzu uvažovaných technik, jejich vyhody a nevyhody, podobností a rozdílů.
Anotace v angličtině
The diploma thesis deals with the issue of parallelism in modern programming languages. The first chapter defines the specific terminology. Chapters two through five examine the techniques of parallelism, asynchronism, and concurrency in different programming languages. Each of the languages mentioned in this work implements a different programming paradigm. They are Java, JavaScript, Clojure and Go. The conclusion of the thesis performs a comparative analysis of the considered techniques, their advantages and disadvantages, similarities and differences.
Diplomná práce se zabývá problematikou paralelismu v moderních programovacích jazycích. První kapitola definuje jednotlivé odborné pojmy. Kapitoly dva až pět zkoumají techniky paralelismu, asynchronismu a souběhu v různých programovacích jazycích. Každý z jazyků uvedených v této práci implementuje jiné programovací paradigma. Patří mezi ně Java, JavaScript, Clojure a Go. Závěr práce provádí srovnávací analýzu uvažovaných technik, jejich vyhody a nevyhody, podobností a rozdílů.
Anotace v angličtině
The diploma thesis deals with the issue of parallelism in modern programming languages. The first chapter defines the specific terminology. Chapters two through five examine the techniques of parallelism, asynchronism, and concurrency in different programming languages. Each of the languages mentioned in this work implements a different programming paradigm. They are Java, JavaScript, Clojure and Go. The conclusion of the thesis performs a comparative analysis of the considered techniques, their advantages and disadvantages, similarities and differences.
Cílem diplomové práce je provést rešerši a popis principů asynchronního programování v různých moderních programovacích jazycích. V praktické části budou připraveny ukázky různých technik v jednotlivých jazycích.
Teoretická část se bude zaobírat rešerší pojmů paralelismus, asynchronismus a souběh, vysvětlením rozdílů a implementací ve vybraných programovacích jazycích. Bude popsána základní koncepce přístupu k souběhu, způsob synchronizace a komunikace úloh. Dále budou popsány prostředky vybraných programovacích jazyků a jejich knihoven (zahrnující koncepty async/await, promise/future).
V praktické části budou implementovány vybrané ukázkové úlohy využívající paralelismus/souběh v popsaných jazycích. Hodnocené jazyky (min. 4) budou např. zahrnovat: OOP jazyky (Java, C#), jazyk využívající techniku CSP, funkcionální jazyk, dynamický (skriptovací) jazyk.
Zásady pro vypracování
Cílem diplomové práce je provést rešerši a popis principů asynchronního programování v různých moderních programovacích jazycích. V praktické části budou připraveny ukázky různých technik v jednotlivých jazycích.
Teoretická část se bude zaobírat rešerší pojmů paralelismus, asynchronismus a souběh, vysvětlením rozdílů a implementací ve vybraných programovacích jazycích. Bude popsána základní koncepce přístupu k souběhu, způsob synchronizace a komunikace úloh. Dále budou popsány prostředky vybraných programovacích jazyků a jejich knihoven (zahrnující koncepty async/await, promise/future).
V praktické části budou implementovány vybrané ukázkové úlohy využívající paralelismus/souběh v popsaných jazycích. Hodnocené jazyky (min. 4) budou např. zahrnovat: OOP jazyky (Java, C#), jazyk využívající techniku CSP, funkcionální jazyk, dynamický (skriptovací) jazyk.
Seznam doporučené literatury
*BUTCHER, Paul, 2014. Seven Concurrency Models in Seven Weeks: When Threads Unravel. Pragmatic Bookshelf. ISBN 9781937785659.
*MCCOOL, Michael, James REINDERS a Arch ROBINSON. Structured Parallel Programming: Patterns for Efficient Computation. Waltham, USA: Elsevier, 2012. ISBN 9780123914439.
Seznam doporučené literatury
*BUTCHER, Paul, 2014. Seven Concurrency Models in Seven Weeks: When Threads Unravel. Pragmatic Bookshelf. ISBN 9781937785659.
*MCCOOL, Michael, James REINDERS a Arch ROBINSON. Structured Parallel Programming: Patterns for Efficient Computation. Waltham, USA: Elsevier, 2012. ISBN 9780123914439.
Přílohy volně vložené
-
Přílohy vázané v práci
-
Převzato z knihovny
Ne
Plný text práce
Přílohy
Posudek(y) oponenta
Hodnocení vedoucího
Záznam průběhu obhajoby
Cílem diplomové práce bylo provést rešerši a popis principů asnchronního programování v různých moderních programovacích jazycích. V praktické části připravil student ukázky různých technik v jednotlivých jazycích.
Dle vedoucího je práce po formální stránce dobře strukturována. V práci se na několika místech vyskytují drobné jazykové chyby a obtížněji pochopitelné formulace. Vytvořené příklady je možné zkompilovat, spustit a otestovat.
Dle oponenta je text zpracován přehledně, z pohledu struktury, srozumitelnosti a typorafické stránky, na dobré úrovni.
Student přehledně prezentoval výsledky své diplomové práce. Prezentaci obohatil o praktické ukázky.
Student se snažil reagovat na dotazy a připomínky vedoucího, oponenta i členů komise.