logo of the SSW institute ;)
Computer Science
System Software

Home

General
Staff
Contact
Partners
Alumni

Research
Areas
Projects
Papers
Books
Reports
Awards

Teaching
Lectures
Exams
B.Projects
M.Theses
PhD Theses
Go Abroad

Misc
Talks
Library
Gallery
Links
Search

Webmaster


VisualBasic.NET-Grammatik für Coco/R


Coco/R ist ein Compilergenerator, der eine attributierte EBNF-Grammatik in einen Scanner und einen Parser übersetzt. Die in der VB-Sprachspezifikation angegebene Grammatik [1] ist nicht im EBNF-Format und weist auch zahlreiche LL(1)-Konflikte auf. Ziel dieser Bakkalaureatsarbeit ist es, die VB-Grammatik nach EBNF zu transformieren und so viele LL(1)-Konflikte wie möglich durch Faktorisierung und Beseitigung von Linksrekursion zu eliminieren. Jene LL(1)-Konflikte, die sich nicht beseitigen lassen, sollen mittels der Konfliktlöser-Technik von Coco/R eliminiert werden [2]. Als Vorlage kann die an der Abteilung SSW erstellte C#-Grammatik verwendet werden.

Die transformierte VB-Grammatik soll so gestaltet sein, daß Coco/R daraus einen vollständigen Scanner und Parser für VB.NET erzeugen kann. Diese Teile stellen dann ein VB-Frontend dar, aus dem mittels semantischer Aktionen diverse Werkzeuge wie Pretty Printer oder Komplexitätsanalysatoren erstellt werden können. Um die VB-Grammatik zu testen, soll ein Komplexitätsanalysator implementiert werden, der Komplexitätsmaße nach der von Rechenberg beschriebenen Methode [3] berechnet.

Hinweise: Das Projekt soll in einzelnen Stufen bearbeitet werden:

  • Die Problemanalyse soll mit einem kurzen Pflichtenheft (2-4 Seiten) abgeschlossen werden.
  • An die Analyse soll sich die Implementierung anschließen.
  • Als Abschluss des Bakkalaureatsprojekts ist ein schriftlicher Bericht von 30-40 Seiten abzugeben, der zumindest die folgenden Kapitel enthalten soll: Beschreibung der Aufgabe und ihres Umfeldes (d.h. wichtige Begriffe, bestehende Lösungen, etc.), Benutzerdokumentation, Implementierungsbeschreibung, Kritische Beurteilung und Ausblick.

Betreuung: Nach der intensiveren Anfangsphase (kurze Besprechungen im Wochenabstand), die zur Absteckung des Problemfeldes und zur Klärung von Problemen dient, sollen im Zweiwochen-Rhythmus kurze Besprechungen stattfinden, um einen zügigen Fortgang des Projekts zu gewährleisten.

Programmiersprache: C#
Betreuer: Prof. Dr. H. Mössenböck / Dipl.-Ing. Markus Löberbauer
Bearbeiter: Peter Zehetner (0355200)