Interaktivní generátor syntaxe heterogenních datových struktur

Loading...
Thumbnail Image
Date
ORCID
Mark
B
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
V dnešní době jsou softwarové systémy často skládány z několika komponent předávající si data různými komunikačními kanály. I přes to, že existuje řada standardizovaných formátů kódování dat, vývojáři stále vytváří své vlastní většinou s ohledem na specifické použití jimi vytvářeného softwaru. Jednou ze zásadních částí ověření kvality nebo minimalizace chyb z přenosu dat je validace vstupních dat. Prvním krokem k validaci je formalizace jazyka popisující datové struktury. Nejobecnějším formalismem pro tyto účely je gramatika jazyka ve standardním popisu, např. BNF, ABNF, nebo EBNF. Tvorba gramatiky specifického jazyka však může být krok, který je citlivý na vznik chyby pro nezkušeného vývojáře. Cílem tohoto projektu je jednoduchá aplikace pro tvorbu gramatiky ze vzorku dat. V práci je řešeno generování gramatiky a následných validačních kousků kódu z nahraného ukázkového řetězce jazyka, např. zdrojového kódu programovacího jazyka. Problém řeší uživatel aplikace postupným označováním částí nahraného řetězce, jejich pojmenováním a přiřazováním vlastností. K tomu mu dopomáhají nástroje na rozdělování pravidel, slučování prefixů a/nebo sufixů pravidla, vytváření seznamů a optimalizaci výsledných pravidel. V rámci práce vznikla jednostránková webová aplikace, která při testování na jazycích JSON a XML dokázala poměrně dobře obstát a bylo možné tak vytvořit obecnější gramatiku i přes problémy se slabým syntaktickým analyzátorem. Díky této práci tak mohou i méně zkušení uživatelé vytvářet obecnější gramatiky jejich řetězců a používat je pro validaci. Práce navíc dává základ pro další zkoumání v této oblasti a je otevřená pro další vylepšení.
Today, software systems are often composed of several components that transmit data through various communication channels. Despite the fact that there are a number of standardized data encoding formats, developers still create their own mostly with regard to the specific use of the software they create. One of the essential parts of quality verification or minimization of data transmission errors is the validation of input data. The first step to validation is to formalize a language describing data structures. The most general formalism for these purposes is the grammar of the language in the standard description, e.g. BNF, ABNF, or EBNF. However, creating a language-specific grammar can be a step that is sensitive to error for an inexperienced developer. The aim of this project is a simple application for creating grammar from a sample of data. The work solves the generation of grammar and validation code snippets from the sample string of the language, e.g. the source code of the programming language. The user solves the problem by sequentially marking parts of the uploaded string, naming them, and assigning properties to them. This is aided by tools for splitting rules, merging rule prefixes and/or suffixes, creating lists, and optimizing the resulting rules. As part of the work, a single-page web application was created, which was able to pass relatively well when tested on JSON and XML, and it was possible to create a more general grammar despite the problems with a weak parser. Thanks to this work, even less experienced users can create more general grammars of their strings and use them for validation purposes. In addition, the work provides a basis for further research in this area and is open to further improvement.
Description
Citation
KOTRAŠ, M. Interaktivní generátor syntaxe heterogenních datových struktur [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2020.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
doc. Ing. Ondřej Ryšavý, Ph.D. (předseda) doc. Dr. Ing. Otto Fučík (místopředseda) Ing. Michal Bidlo, Ph.D. (člen) Ing. Ondřej Lengál, Ph.D. (člen) Ing. Igor Szőke, Ph.D. (člen)
Date of acceptance
2020-07-08
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B. Otázky u obhajoby: Na základě čeho jste zvolil formu popisu, kterou uživatel specifikuje? Jakého typu je výsledná gramatika? Uvažoval jste možnost automatizovaného generování gramatiky? Jak je možné, že gramatika generuje nedosažitelná pravidla Jaký syntaktický analyzátor používáte? Je možnost z gramatiky vygenerovat parser? Je vnitřně specifikovaná gramatika cílového jazyka nebo ji dodává uživatel?
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení
DOI
Collections
Citace PRO