| Compilerbau
2 Sommersemester 2000 |
Lastenheft
$Author: lammers $
$Log: Lastenheft.html,v $
Revision 1.2 2000/04/11 12:33:33 lammers
Kleinigkeiten ergänzt
Revision 1.1 2000/04/11 10:46:50 lammers
Initial revision
Zielsetzung
Es soll ein Compiler-Baukastensystem erstellt werden, das die
syntaktische Analyse, die Analyse der statischen Semantik und
die Codeerzeugung für eine LR(1)-Sprache auf ein gegebenes
Zielsystem durchführt. Als Anwendung und Test wird eine
LR(1)-Sprache entworfen und ein Compiler dafür mit dem System
generiert. Programme in dieser Sprache werden dann mit dem
erzeugten System kompiliert und auf dem Zielsystem getestet.
Die lexikalische Analyse wird dabei von einem existierende
System (flex
) übernommen.
Zielsystem
Das Zielsystem ist der am Fachbereich entwicklete
von-Neumann-Rechner-Simulator (
file:/share/info-3/)
Zielsprache
Die
Zielsprache ist die am FB
entworfenen MMS, allerdings werden noch Modifikationen notwendig
sein. Wir setzen auf einen 3-Phasen Compiler, müssen also die
Tokenklassen bzw. die zugehörigen regulären Ausdrücke und die
darauf basierende Grammatik festlegen.
Funktionen
- /LH10/
- Generierung eines Syntaxanalysators aus einer
LR(1)-Grammatik
- /LH20/
- Generierung von Simulatorcode aus der Ausgabe eines mit
/LH10/ generierten Syntaxanalysators.
- /LH25/
- Analyse der Korrektheit der
statischen Semantik.
- /LH30opt/
- Laufzeitsystem bereitstellen
Daten
- /LD10/
-
reguläre Ausdrücke der Tokenklassen
der MMS
- /LD20/
-
LR(1)-Grammatik der MMS in
systemlesbarer Form
- /LD30/
-
Festlegung der informellen Semantik
der MMS, soweit notwendig, in textueller Form
Benutzeroberfläche
Es reicht eine einfache, textuell zu bedienende Oberfläche.
Die Compilerphasen der MMS sollten dann aber in einem Schritt
durchlaufen werden können.
Tests / Einsatz
- Generierung des MMS-Compilers
- Einsatz des Compilers für mehrere Programme
- Test der erzeugten Programme auf dem Simulator
- Test des Verhaltens bei syntaktischen Fehlern
- Test des Verhaltens bei semantischen Fehlern
Qualitätsziele
Ziel |
++ |
+ |
+- |
- |
Funktionalität |
|
x |
|
|
Zuverlässigkeit |
|
|
X |
|
Benutzbarkeit |
|
|
x |
|
Effizienz |
|
|
X |
|
Änderbarkeit |
|
|
X |
|
Ergänzungen
Dietmar Lammers
Last modified: Wed May 3 11:42:47 MET DST 2000