Závěrečná práce: Václav Vacek, učo 172426: Generický BNF parser
Bakalářská práce
Generický BNF parser
Generic BNF-driven parser
Václav Vacek, učo 172426
Abstract
This thesis describes the bnfparser2 C++ library. It is a generic runtime-generated parser capable of parsing any context-free language. The parser is primarily meant for verification and diagnosis of telecommunication protocols, but the usage is not restricted to that. First, the possibility of using tools already available is discussed. The rest of the thesis is then fully devoted to bnfparser2. …více
Zadání práce
Úkolem diplomové práce bude vytvoření za běhu generovatelného parseru. Řešení bude realizováno jako C++ knihovna. Hlavní komponentou bude třída Parser, realizující vlastní parser.
Odhalení chyb:
- oznámení chyby při pokusu o vytvoření parseru pro nesprávnou gramatiku a metasyntax
- oznámení chyby při parsování nekorektní zprávy a lokalizace chyby
Předpokládané použití:
- Knihovna se přilinkuje.
- Vytvoří se instance třídy BnfParser2 pro potřebné gramatiky s příslušnými parametry.
- Parsování bude spočívat ve volání metody parse_word a bude vracet instance vhodně definované třídy se strukturálními daty.
Obecné:
- Důraz spíše na robustnost než na rychlost.
- Předpokládáme, že parser bude zpracovávat ("míra robustnosti") libovolné CFL gramatiky včetně nejednoznačných. V případě, že gramatika není jednoznačná, nelze hlásit warning, neboť tento problém je nerozhodnutelný.
- Parser by měl podporovat načtení konkrétní specifikace syntaxe z několika souborů.
- Na vstupu budou pouze BNF gramatiky
- Metasyntaxe (ABNF, EBNF, ...) definována pomocí základních pravidel a metaoperátorů.
- Gramatiky vkládány read-only. Všechny potřebné změny externě v konfiguračních souborech gramatik.
- Konfigurační soubory obsahují úpravy gramatiky a odkazy do externích namespaces.
- Namespaces: implicitně má každá gramatika vlastní namespace a odkazuje se pouze interně. Externí odkazy jsou definovány v konfiguračním souboru.
- Vzorový popis notace gramatiky v meta notaci by měl být vytvořen pro ABNF definovanou v [RFC2234] a rozšíření ABNF definované v [RFC 2616].
- Parser by měl být otestován pomocí SIP zpráv. V tomto případě bude parser řízen třemi soubory: specifikací ABNF notace, základními pravidly ABNF vykopírovanými z [RFC2234] a syntaxí SIP zpráv vykopírované z [RFC 3261].
- Návrh a implementace parseru by měla být plně dokumentovaná.
Práce zkontrolována:
11. 10. 2008 12:58, (IS automaticky)
11. 10. 2008 12:58, (IS automaticky)
- Zadáno/změněno 5. 2. 2008 16:43, Helena Kryštofová
- Záznam založen 22. 11. 2007 14:53, Eva Drštková
- Zveřejnit od 7. 1. 2008 10:34, Eva Drštková
- Práce převzata 7. 1. 2008 10:34, Eva Drštková
Jazyk práce
Termín obhajoby
5. 2. 2008
Práce byla úspěšně obhájena
Vedoucí
Oponenti
Autor posudku dosud neidentifikován.
Autor posudku dosud neidentifikován.
Studijní program
Informatika
Obor
Práce na příbuzné téma
Seznam prací, které mají shodná klíčová slova.
-
Generátor parserů v jazyce C#
Mgr. Richard Sirný, učo 256640 -
Návrh a implementace překladače pro převod SQL příkazů ze syntaxe Oracle do PostgreSQL
Mgr. Miroslav Sedlák -
Implementace LR analyzátorů v prostředí JGAF
Bc. Martin Gavora -
Interaktivní typová kontrola XML a ladění XML transformací
Mgr. Marek Posolda, učo 60575 -
Parser pro převod scén z POV-Ray do ESG
Bc. Michal Navrátil -
Parser pro převod scén z Inventoru do ESG
Mgr. Vítězslav Papiež -
Příprava hypertextových dat pro využití v elektronické výuce
Mgr. Jiří Sotona -
Rozbor chyb syntaktické analýzy češtiny
Bc. Pavel Ondruš, učo 324506
Název
Vložil
Vloženo
Práva




