11.3 Verarbeitung von Ausdrücken
Next: 11.4 Aufbau der Netzwerkgleichungen
Up: 11 Die einzelnen Komponenten
Previous: 11.2 Semantikanalyse
Eine wichtige Rolle in einem technisch-wissenschaftlichen Programmsystem zur
Bearbeitung mathematischer Probleme spielt die Darstellung der
mathematischen Ausdrücke.
In JANAP werden unter anderem folgende Arbeiten mit Ausdrücken gemacht:
- Aufbau von Ausdrücken in interner Darstellung während der
Syntaxanalyse
- Einsetzen von konstanten Parametern in Ausdrücke
- Einsetzen von Funktionen in Ausdrücke
- Einsetzen von konstanten Werten für Zweigwerte
- Berechnung von konstanten Ausdrücken oder Teilausdrücken
- Vereinfachung von Ausdrücken
- Überprüfung, ob ein Ausdruck gewisse (kontextabhängige) Bedingungen
erfüllt.
- Berechnung der ersten Ableitung nach einer Unbekannten
im Rahmen des Aufbaus der Jacobi-Matrix
- Erzeugen von Fortran-Programmen zur Berechnung von Ausdrücken
in der Simulationsphase
Wegen der vielfältigen Verwendung von Ausdrücken kommt natürlich der
internen Darstellung von Ausdrücken eine besondere Bedeutung zu.
Im folgenden sind die wichtigsten Aspekte und Details bei der
Darstellung von Ausdrücken in JANAP zusammengefaßt.
- Die interne Speicherung eines Ausdrucks erfolgt in Postfix-Form
(auch verkehrte Polnische Notation genannt [3]).
Diese Darstellungsform ergibt sich ganz natürlich während der
Syntaxanalyse, da die Postfix-Form die Baumstruktur der Grammatik zur
Ableitung eines Ausdrucks widerspiegelt.
- Soweit wie möglich wird bereits beim Aufbau eines Ausdrucks versucht,
Vereinfachungen vorzunehmen und Fehlersituationen zu erkennen (z.B.
Division durch 0).
- Jedes Element eines Ausdrucks (Operand, Operator)
wird durch eine aus 1 bis 3 Worten
bestehende Eintragung dargestellt (siehe 10.5.2).
Diese Eintragungen werden durch die Routine EEEXPR aufgebaut bzw.
dekodiert.
- Die einzelnen Elemente eines Ausdrucks werden mit der Routine
TEEXPR zu einem Ganzen zusammengefügt.
Dabei wird auch eine Klassifizierung des Ausdrucks vorgenommen
(z.B. werden andere Bauelemente referenziert, kommen Funktionen vor),
um Fehlerüberprüfungen zu vereinfachen.
Martin Stiftinger
Fri Jun 9 19:49:39 MET DST 1995