ZLATO (analyzátor) - GOLD (parser)
![]() | Téma tohoto článku nemusí splňovat požadavky Wikipedie pokyny k pozoruhodnosti produktů a služeb.Srpna 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | tento článek potřebuje další citace pro ověření.Srpna 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | |
![]() | |
Vývojáři | Devin Cook a 54 dalších přispěvatelů[1] |
---|---|
Stabilní uvolnění | 5.2.0 / 18. srpna 2012 |
Operační systém | Okna |
Typ | Analyzátor LALR |
Licence | licence zlib (svobodný software ) |
webová stránka | zlatý parser![]() |
ZLATO je volný, uvolnit analýza systém, který je navržen tak, aby podporoval více programovacích jazyků.
Design
Systém používá a DFA pro lexikální analýzu a LALR algoritmus pro analýzu. Oba tyto algoritmy jsou stavové stroje, které k určení akcí používají tabulky. GOLD je navržen na principu logického oddělení procesu generování LALR a DFA analyzovat tabulky ze skutečné implementace samotných algoritmů syntaktické analýzy. To umožňuje implementaci analyzátorů v různých programovacích jazycích při zachování stejné gramatiky a vývojového procesu.
Systém GOLD se skládá ze tří logických komponent, „Builder“, „Engine“ a definice souboru „Compiled Grammar Table“, která funguje jako prostředník mezi Builderem a Engine.
Stavitel

Builder je primární komponenta a hlavní aplikace systému. Builder se používá k analýze syntaxe jazyka (zadaného jako gramatika) a konstrukce LALR a DFA tabulky. Během tohoto procesu budou nahlášeny jakékoli nejasnosti v gramatice. Jedná se v podstatě o stejný úkol, který provádějí kompilátoři-kompilátoři, jako je YACC a ANTLR.
Jednou LALR a DFA analyzované tabulky jsou úspěšně vytvořeny, Tvůrce může tato data uložit do souboru kompilované gramatické tabulky. To umožňuje, aby byly informace později znovu otevřeny Tvůrcem nebo použity v jednom z motorů. V současné době je komponenta Builder k dispozici pouze pro Okna 32bitové operační systémy.
Některé z funkcí Builderu jsou:
- Freeware licence
- Stát procházení
- Integrované testování
- Průvodce testováním více souborů
- Generovat webové stránky (včetně hypertextových odkazů na grafy syntaxe)
- Generujte kostrové programy pomocí šablon
- Exportovat gramatiky do YACC
- Exportujte tabulky do XML nebo formátovaného textu
Zkompilovaný soubor tabulky gramatiky
Soubor Zkompilovaná tabulka gramatiky se používá k ukládání informací o tabulce vygenerovaných Tvůrcem.
Motory
Na rozdíl od Builderu, který běží pouze na jedné platformě, je komponenta Engine napsána pro konkrétní programovací jazyk nebo vývojovou platformu. Motor implementuje LALR a DFA algoritmy. Jelikož různé programovací jazyky používají různé přístupy k navrhování programů, bude se každá implementace Engine lišit. Výsledkem je implementace Engine napsaná pro Visual Basic 6 se bude značně lišit od jednoho napsaného pro ANSI C..
V současné době byly Engines for GOLD implementovány pro následující programovací jazyky / platformy. Nové motory lze implementovat pomocí zdrojového kódu pro stávající motory jako výchozí bod.
Gramatiky
Zlaté gramatiky jsou založeny přímo na Backus – Naurova forma, regulární výrazy a nastavit notaci.
Následující gramatika definuje syntaxi minimálního univerzálního programovacího jazyka s názvem „Simple“.
"Name" = 'Simple' "Autor" = 'Devin Cook' "Verze" = '2.1' "About" = 'Jedná se o velmi jednoduchou gramatiku určenou pro použití v příkladech "" Rozlišovat velká a malá písmena "= Falešný" Počáteční symbol "={String Ch 1} = {Printable} - [''] {String Ch 2} = {Printable} - ["] Identifier = {Letter} {AlphaNumeric} *! String allows either single or double quotesStringLiteral = '' {String Ch 1} * '' | '"' {String Ch 2} * '"' NumberLiteral = {Number} + ('.' {Number} +)? Komentář Začátek = '/ *' Komentář Konec = '* / 'Comment Line =' // '
<Prohlášení> ::= <Prohlášení> <Tvrzení> | <Tvrzení><Tvrzení> ::= Zobrazit <Výraz> | Zobrazit <Výraz> číst ID | přiřadit ID '=' <Výraz> | zatímco <Výraz> dělat <Prohlášení> konec | -li <Výraz> pak <Prohlášení> konec | -li <Výraz> pak <Prohlášení> jiný <Prohlášení> konec <Výraz> ::= <Výraz> '>' <Přidat exp> | <Výraz> '<' <Přidat exp> | <Výraz> '<=' <Přidat exp> | <Výraz> '>=' <Přidat exp> | <Výraz> '==' <Přidat exp> | <Výraz> '<>' <Přidat exp> | <Přidat exp><Přidat exp> ::= <Přidat exp> '+' <Mult Exp> | <Přidat exp> '-' <Mult Exp> | <Přidat exp> '&' <Mult Exp> | <Mult Exp><Mult Exp> ::= <Mult Exp> '*' <Negativní exp> | <Mult Exp> '/' <Negativní exp> | <Negativní exp><Negativní exp> ::= '-' <Hodnota> | <Hodnota><Hodnota> ::= Identifikátor | StringLiteral | NumberLiteral | '(' <Výraz> ')'
Přehled vývoje

První krok spočívá v psaní a testování gramatiky analyzovaného jazyka. Gramatiku lze psát pomocí libovolného textového editoru - například Poznámkového bloku nebo editoru zabudovaného do Tvůrce. V této fázi není nutné žádné kódování.
Jakmile je gramatika kompletní, analyzuje ji Tvůrce, LALR a DFA jsou sestaveny syntaktické tabulky a jsou nahlášeny jakékoli nejasnosti nebo problémy s gramatikou. Poté se tabulky uloží do souboru zkompilované tabulky gramatiky, který se později použije při analýze. V tomto okamžiku již není GOLD Parser Builder potřeba.
V závěrečné fázi čte tabulky stroj. V tomto okamžiku je vývojový proces závislý na vybraném implementačním jazyce.
Reference
- ^ „Přispěvatelé“. goldparser.org. Citováno 28. srpna 2017.