termine:ss16:160705

05.07.2016 - Fabian Kreis

Time 10:00
Room 34-420

Title

Master thesis: Syntax-Safe Template-Based Generation Using Modular Grammar Declarations

Abstract

The increased size and complexity of today’s software products result in a progressive application of generation approaches. Due to its simplicity and the wide range of available template evaluators for different programming languages, template based generation is a well accepted and often used technique. The major disadvantage of this technique is that its application can lead to syntactical incorrect output code. In many cases, syntactical errors in the output code are caused by incorrect templates. This thesis presents an approach that achieves an early and efficient detection of syntactical errors in templates and even can guarantee syntactically correct output code. Therefore, this thesis proposes to perform static analysis of the templates at template development time and analysis of the input data at template evaluation time. The approach is founded on a template language grammar which can automatically be obtained by transforming an object language grammar. An evaluation with real world programming languages provides evidence that this approach is applicable for many object languages but also reveals limitations with respect to practical applicability.

Abstract (deutsch):

Die wachsende Größe und Komplexität von heutigen Softwareprodukten führt immer häufiger zum Einsatz von Generatoren. Ein häufig genutzter Ansatz zur Generierung ist die sogenannte Template-basierte Generierung. Dies ist durch seine einfache Benutzung und die vielen verfügbaren Template Evaluatoren in verschiedenen Programmiersprachen bedingt. Der zentrale Nachteil dieses Ansatzes ist, dass der generierte Code syntaktische Fehler enthalten kann. Oftmals liegt die Ursache für diese Fehler bereits in den genutzten Templates. Die vorliegende Arbeit stellt einen Ansatz vor, der syntaktische Fehler in den Templates frühzeitig und effizient findet. Darüber hinaus garantiert der Ansatz, dass der generierte Code frei von syntaktischen Fehlern ist. Hierzu schlägt die Arbeit die Durchführung von einer statischen Analyse zur Entwicklungszeit und eine Analyse der Input Daten vor der Instanziierung des Templates vor. Der vorgestellte Ansatz basiert auf einer Template-Grammatik, welche automatisch durch die Transformation der Zielsprache erzeugt werden kann. Eine Evaluierung mit realen Programmiersprachen belegt die Anwendbarkeit des vorgestellten Ansatzes für eine Vielzahl von Sprachen, offenbart jedoch auch Einschränkungen im Hinblick auf einen Praxiseinsatz.

termine/ss16/160705.txt · Last modified: 04.07.2016 19:52 by peter