Generierung von Übersetzern nach XML aus annotierten EBNF-Grammatiken

von Daniel Scholz

Bei XML handelt es sich um eine Metasprache, in der beliebige, hierarchisch strukturierte (Text-)Dokumente notiert werden können. Moderne Werkzeuge basieren häufig auf XML-basierten Eingabesprachen, wobei die XML-Eingaben teilweise von Hand geschrieben werden müssen.

XML ist zwar maschinell gut zu verarbeiten aber für den menschlichen Benutzer oft unübersichtlich und umständlich zu schreiben. In dieser Studienarbeit wurde ein Werkzeug entwickelt, um Eingaben für XML-basierte Werkzeuge in einer besser lesbaren Sprache schreiben und dann einfach in ein XML-basiertes Format überführen zu können. Die nachfolgende Abbildung zeigt ein "menschenlesbares" Dokument und eine entsprechende XML-Kodierung.

int sum(int n) {
result = 0;
i = 1;
while (i<=n) {
result = result + i;
i = i + 1;
}
return result;
}


(A)
<function name="sum">
<param name="n" type="int" />
<assign dest="result">0</assign>
<assign dest="i">1</assign>
<while>
<condition>i<=n</condition>
<body>
<assign dest="result">result+1</assign>
<assign dest="i">i+1</assign>
</body>
</while>
<return>result</result>
</function>

(B)

Wie ein Dokument vom Typ (A) in das XML-Format (B) übersetzt wird, ist beim entwickelten System flexibel spezifizierbar. Eine solche Spezifikation besteht im Wesentlichen aus einer EBNF-Grammatik der Sprache (A). Zusätzliche Annotationen geben an, auf welche Tags bzw. Attribute die Teilstrukturen abzubilden sind.

Genauere Informationen zu dieser Studienarbeit finden Sie in der Ausarbeitung.

Impressum | Webmaster | Letzte Änderungen am : 16.10.2013