A domain specific language for the automatic generation of parsers classes for text protocols

  • ABNF is a language for the definition of the formal syntax of technical specifications and is widely used for the definition of textual protocol messages of many internet protocols. The automatic generation of parser classes for ABNF specifications is currently very limited, because ABNF only defines the transfer syntax of the text messages and does not define names for the set of production rules. The lack of name definitions within ABNF rules does not allow to automatically generate expressiveness and meaningful program code for ABNF specifications. In this paper we present X-ABNF, which is a domain-specific language (DSL) for the definition of name-bindings for ABNF rules. The name-bindings with X-ABNF facilitates to generate a concise and meaningful code for an ABNF specification. Additionally, we show that the name-binding can also be used for language extensions through macro programming to dynamically access ABNF encoded text data within source code. We have used Xtext and Xtend for the implementation of the language grammar of ABNF and X-ABNF, which provide good tool support and code generation capabilities.
  • ABNF ist eine Sprache zur Definition einer formalen Syntax für technische Spezifikationen und wird häufig zur Beschreibung textueller Nachrichten von Internetprotokollen eingesetzt. Die Möglichkeiten der automatischen Generierung von Parser-Klassen aus ABNF-Spezifikationen sind derzeit sehr begrenzt, da ABNF lediglich die Transfersyntax und Produktionsregeln von Textnachrichten beschreibt. Die fehlende Definition von Variablennamen innerhalb einer ABNF-Spezifikation ermöglicht es nicht, sinnvollen und ausdrucksstarken Programmcode zu generieren, der von einem Programmierer verwendet werden kann. In diesem Artikel stellen wir X-ABNF vor, eine domänenspezifische Sprache (DSL) zur Definition von Variablennamen für ABNF-Regeln. Dies ermöglicht die Generierung von ausdrucksstarkem und lesbarem Programmcode aus ABNF-Spezifikationen. Des Weiteren zeigen wir, dass dieser Ansatz auch für Spracherweiterungen mithilfe von Makroprogrammierung genutzt werden kann. Dies ermöglicht die dynamische Instanziierung von ABNF-Textnachrichten im Programmcode. Wir verwenden Xtext und Xtend zur Implementierung der Sprachgrammatik von ABNF und XABNF, was eine gute Werkzeugunterstützung gewährleistet und Codegenerierung ermöglicht.

Download full text files

Export metadata

Additional Services

Search Google Scholar Statistics
Metadaten
Author:Thomas Kistel, Ralf Vandenhouten
URN:urn:nbn:de:kobv:526-opus4-3333
DOI:https://doi.org/10.15771/0949-8214_2014_1_6
ISSN:0949-8214
Parent Title (German):Wissenschaftliche Beiträge 2014
Document Type:Article in a Periodical of the TH Wildau
Language:English
Year of Publication:2014
Date of first Publication:2014/10/16
Publishing Institution:Technische Hochschule Wildau
Release Date:2014/10/16
Volume:18
First Page:45
Last Page:51
Faculties an central facilities:Fachbereich Ingenieur- und Naturwissenschaften
Dewey Decimal Classification:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
TH Wildau publications:Wissenschaftliche Beiträge
Licence (German):Creative Commons - CC BY-NC-ND 3.0 DE - Namensnennung - Nicht-kommerziell - Keine Bearbeitung 3.0 Deutschland
Verstanden ✔
Diese Webseite verwendet technisch erforderliche Session-Cookies. Durch die weitere Nutzung der Webseite stimmen Sie diesem zu. Unsere Datenschutzerklärung finden Sie hier.