Left Up Right RAMS Konzepte

Objektklassen drücken abstrakte Syntax aus

Grundidee

Prozedurale Programmiersprache haben meist viele Sprachkonstrukte gemeinsam, die aber in verschiedener Form notiert werden, beispielsweise Bedingungen, Zählschleifen, Solange-Schleife usw.

Ein Programmierer, der eine prozedurale Sprache beherrscht, kann sich daher auch nach einiger Umgewöhnungszeit auch in anderen prozeduralen Sprachen programmieren.

Ein Sprachkonzept ist also eine Art Abstraktion. Daher kann man sich eine abstrakte Syntax vorstellen.

Ein Compiler hat interne Strukturen, in denen der erkannte Quelltext semantisch repräsentiert wird. Da verschiedene Programmiersprachen Sprachkonstrukte gemeinsam haben, also sich in einer abstrakten Syntax gleichen, können auch die internen Strukturen verallgemeinert werden.

Diese internen Strukturen, die nun eine abstrakte Syntax repräsentieren, werden durch Objektklassen aufgebaut.

Damit entsteht eine Bibliothek für die internen Strukturen von Compilern.

Anwendungen der Objektklassenbibliothek für internene Compilerstrukturen

Wiederverwendung für Compiler verschiedener Programmiersprachen
Dies folgt direkt aus der Grundidee
Optimierer und Codegeneratoren können auch wiederverwendet werden.
Dies ist auch eine triviale Konsequenz der Grundidee,

Optimierer könnten mit Computeralgebrasystemen verbunden werden ! (Idee entstanden aus der Vorlesung :"Algorithmische Grundlagen regelbasierter Systeme")

So kann man die Fähigkeiten von 4-GL-Sprachen, logischen Programmiersprachen wie Prolog mit den Objektorientierten verbinden.

Dieser Ansatz deckt auch Ansätze zur automatischen Parallelisierungen im technisch-wissenschaftlichen Bereich ein.

Einfache Crosscompiler
Crosscompiler parsen einen Programmtext und füllen damit die internen Strukturen. Dann werden die internen Strukturen in die Zielsprache umgesetzt.
CASE-Tools
Auch Case-Tools wie C++-Class-Bowser, die die Vererbungshierachie visulaliseren, müssen C++-Klassendefinitionen einlesen können. Grafische Entwicklungswerkzeuge müssen C++-Code schreiben können. Das gleiche gibt auch für Datenbeschreibungssprachen. So können z.B. lochkartenartige DDS auf der AS400 so in SQL-Tables umsetzt werden und umgekehrt.

Rudolf Weber