Ing. Tomáš Pecka

Závěrečné práce

Bakalářské práce

Automatová knihovna - Komprese dat

Autor
Jan Parma
Rok
2017
Typ
Bakalářská práce
Vedoucí
Ing. Tomáš Pecka
Oponenti
Ing. Jan Trávníček, Ph.D.
Anotace
Tato bakalářská práce se zabývá implementací kompresních algoritmů LZ77, LZ78 a implementací Huffmanova kódování. Dále analyzuje současné řešení testování již existující Automatové knihovny, které je prováděno pomocí shellových skriptů. Zároveň bylo přidáno testování i na nově vytvořené algoritmy. Kompresní algoritmy jsou naprogramovány v jazyce C++, jelikož dosavadní verze knihovny je v témže jazyce, a testování je nově řešeno ve skriptovacím jazyce Python. Hlavním výsledkem práce je funkční rozšíření knihovny o již zmíněné algoritmy a metody. Dále prvotní návrh a implementace sjednoceného testovacího programu pro všechny části Automatové knihovny.

Knihovna algoritmů ALT - webové rozhraní

Autor
Michael Vrána
Rok
2020
Typ
Bakalářská práce
Vedoucí
Ing. Tomáš Pecka
Oponenti
Ing. Jan Trávníček, Ph.D.
Anotace
Tato práce se zabývá návrhem a implementací webového GUI pro knihovnu Algorithms Library Toolkit. Toto GUI v podobě webové aplikace znázorňuje jednotlivé algoritmy jako boxy, jejichž výstupy lze dál řetězit do dalších algoritmů. Těmto algoritmům uživatel může specifikovat vstupy a následně je může vyhodnotit. Tato webová aplikace zároveň integruje již existující React aplikaci Statemaker, která zjednodušuje vytváření a zobrazování konečných automatů. Výsledná webová aplikace je implementována jakožto fork Statemakeru. Pro zpřístupnění ALT webové aplikaci bylo vytvořeno webové API.

Slovníkové kompresní metody

Autor
Matěj Javorka
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Tomáš Pecka
Anotace
Náplní této bakalářské práce je analýza, návrh a implementace slovníkových kompresních metod LZ77, LZ78, LZSS a LZW. V literární rešerši jsou popsány základní pojmy, principy a metody komprese dat. Podrobně se literární rešerše věnuje slovníkovým metodám komprese dat, konkrétně analýzou algoritmů LZ77, LZ78, LZSS a LZW, společně s popisem vhodných datových struktur používaných v těchto algoritmech. Praktická část práce se zaobírá návrhem a implementací těchto algoritmů v programovacím jazyce C++. Implementace umožňuje, aby bylo možné volit mezi komprimovaným a výukovým výstupem, tj. zda výstupem komprese mají být komprimovaná nečitelná binární data, nebo textová data čitelná pro člověka, která reprezentují běh algoritmu a usnadňují tak jeho pochopení. Dále jsou navrženy a implementovány testy těchto algoritmů a jsou zvoleny vhodné datové korpusy, na kterých je změřena doba běhu komprese, dekomprese a kompresní poměr implementovaných algoritmů. Výsledky detailních měření jsou uvedeny v příloze této práce. Hlavním výstupem práce je implementace kompresních algoritmů v podobě konzolových aplikací, které lze použít pro reálnou kompresi dat i jako pomocný nástroj pro výuku kompresních algoritmů v předmětech zabývajících se kompresí dat, jako je magisterský předmět NI-KOD na FIT ČVUT.

Otevřená data Pražské integrované dopravy s historií

Autor
Alexander Žibrita
Rok
2023
Typ
Bakalářská práce
Vedoucí
Ing. Tomáš Pecka
Anotace
Tato bakalářská práce se zabývá vývojem softwaru sloužícího k zpracovávání a uchovávání otevřených dat Pražské integrované dopravy a následnému poskytování statistických přehledů nad těmito daty. Analýza řeší způsoby poskytování dat hromadné dopravy a některé aplikace postavené nad nimi. Praktická část je zaměřena na návrh a implementaci samotné aplikace s použitím vybraných technologií a je založena na mikroservisní architektuře. Hlavním výstupem práce je webová stránka umožňující přehledové dotazy. V závěru práce jsou nastíněny možnosti dalšího rozšíření.

Frontend překladače pro podmnožinu programovacího jazyka C++

Autor
Daniel Král
Rok
2024
Typ
Bakalářská práce
Vedoucí
Ing. Tomáš Pecka
Oponenti
Ing. Štěpán Plachý
Anotace
Překladače pro programovací jazyky jsou nezbytnou součástí vývoje moderního software. Tato práce se zabývá návrhem přední části překladače pro (skoro) podmnožinu jazyka C++ nazvanou C+-. Nejprve je specifikován rozsah C+-. Poté je popsáno využití ANTLR4 pro lexikální a syntaktickou analýzu a vytvoření abstraktního syntaktického stromu. Následuje sémantická analýza a generování mezikódu LLVM IR pomocí LLVM C++ API. Implementace překladače je otestována sadou ukázkových kódů.