Generátor parserů binárních dat
Název práce v češtině: | Generátor parserů binárních dat |
---|---|
Název v anglickém jazyce: | Generator of binary data parsers |
Klíčová slova: | generátor|parser |
Klíčová slova anglicky: | generátor|parser |
Akademický rok vypsání: | 2021/2022 |
Typ práce: | bakalářská práce |
Jazyk práce: | čeština |
Ústav: | Katedra distribuovaných a spolehlivých systémů (32-KDSS) |
Vedoucí / školitel: | Mgr. Vojtěch Horký, Ph.D. |
Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 27.09.2022 |
Datum zadání: | 27.09.2022 |
Datum potvrzení stud. oddělením: | 27.09.2022 |
Zásady pro vypracování |
Cílem práce je navrhnout a implementovat generátor parserů binárních dat. Uživatel popíše binární datovou strukturu (třeba deskriptory hardwarových zařízení) pomocí DSL jazyka a aplikace vygeneruje konkrétní parser pro danou strukturu.
Součástí práce je jednak návrh vhodného doménově specifického jazyka pro popis struktur a pak vlastní generátor parseru pro zvolený programovací jazyk. Jazyk musí umět popsat základní obraty obvyklé v binárních strukturách: pevné struktury; opakování podčástí ať už pomocí předem určeného počtu (typicky uloženého v hlavičce dat) nebo do nalezení ukončovací sekvence či volitelné části. Vygenerovaný parser pak musí být schopen rozpoznat neplatná data a nabídnout API pro registraci obslužných rutin (tj. uživatelský kód, který reaguje na přítomnost určité hodnoty apod.). Parser nemusí ve vlastní režii řešit dokomprimaci dat. Součástí práce bude analýza návrhu jazyka, popis implementace a demonstrace na reálně používaných strukturách (např. IP datagram, GIF obrázek nebo USB deskriptor). Důraz bude kladen na použitelnost zvoleného DSL a rozšiřitelnost generátoru pro různé programovací jazyky (prostředí). Předběžně navrhovaní oponenti: Lubomír Bulej, David Bednárek, Jakub Yaghob |
Seznam odborné literatury |
* Grune, Dick; Jacobs, Ceriel J.H.: Parsing Techniques - A Practical Guide, Vrije Universiteit Amsterdam, Amsterdam, The Netherlands. 1990; ISBN 0-13-651431-6
* Kolektiv autorů: Express Learning: Principles of Compiler Design, Pearson Education, 2012; ISBN 8131761266 * https://www.usb.org/document-library/usb-20-specification |