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


Erzeugung von CodeDOM-Syntaxbäumen aus C#-Quellcode

Dieses Projekt ist als Bakkalaureatsprojekt (Studienkennzahl 521) gedacht (mit zusätzlicher Erfolgsprämie!).


Im Rahmen eines Projektes [1] mit der Shared Source Implementierung der Common Language Infrastructure (CLI) (Codename Rotor) [2] wurde der Compilergenerator Coco/R [3] dahingehend erweitert, dass er nun nicht mehr nur LL(1)-Grammatiken verwenden, sondern auch Schritte zur Auflösung von LL(1)-Konflikten setzen kann.

Für diese Version von Coco/R wurde auch eine attributierte Grammatik (ATG) für die Programmiersprache C# [4] entwickelt, aus der Coco/R einen vollständigen Top-Down-Parser für C#-Programme erzeugt. Durch Einfügen zusätzlicher semantischer Aktionen in diese Vorlage können nun beliebige Analyse- bzw. Compilerwerkzeuge für C#-Quellcode erzeugt werden.

CodeDOM

CodeDOM (Code Document Object Model) [6][7][8] ist eine Technologie von Microsoft, die dazu dient, die Struktur von Quellcodeprogrammen im Speicher darzustellen. In der Klassenbibliothek des Microsoft .NET Frameworks [5] gibt es eigene Namensräume, die CodeDOM unterstützen (System.CodeDom, System.CodeDom.Compiler, siehe Online-Dokumentation).

Ziel

Das Ziel dieser Arbeit ist es, die C#-Grammatik-Vorlage so zu attributieren und mit semantischen Aktion zu versehen, dass der daraus generierte Parser aus C#-Programmen eine CodeDOM-Repräsentation erzeugt (Der Parser soll das Interface System.CodeDom.Compiler.ICodeParser implementieren). Als Testapplikation soll der CodeDOM-Baum aus dem Speicher mit bereits in der .NET-Klassenbibliothek vorhandenen Codegeneratoren als VB-Quellcode ausgegeben und in einer Datei gespeichert werden.

Außerdem soll in der schriftlichen Arbeit CodeDOM genau beschrieben und eventuell mit ähnlichen Technologien verglichen werden.

Referenzen

[1] SSCLI-Project: Compiler Generation Tools for C#
[2] .NET Rotor (SSCLI)
[3] Compiler Generator Coco/R
[4] C# Language Specification
[5] Microsoft .NET Development
[6] Steinert, A.: Bring the Power of Templates to Your .NET Applications with CodeDOM NamespaceCodeDOM
[7] Korzeniowski, B.J.: Microsoft .NET CodeDom Technology – Part 1, 2, 3.
[8] Perry, N.: A Definition of the CodeDOM Abstract Language

Betreuer: Dipl.-Ing. Albrecht Wöß
Beginn der Arbeit: 17. März 2003
Abgabe: 1. Juli 2003
Bearbeiter: Peter Niederwieser

Weil dieses Projekt eine Demoapplikation unseres SSCLI-Projektes [1] ist, können wir für die erfolgreiche und termingerechte Abwicklung auch eine Prämie auszahlen!!!