bersetzerbau : Virtuelle Maschinen

Bok av Reinhard Wilhelm
Ubersetzer fur hohere Programmiersprachensind grosse komplexeSoftwaresysteme. Sie habenabereinigebesondereEigenschaften, diesie vordenmeistenanderenSo- waresystemen auszeichnen. Ihre Funktionalitat ist (fast) wohlde?niert. Idealerweise existieren vollstandige formale oder zumindest prazise Beschreibungen der Quellsprache und der Zielsp- che. Hau?g gibt es dazu noch Beschreibungen von Schnittstellen zum Betriebs- stem, zum Programmiersystem und zu Programmierumgebungen, zu anderen Ub- setzern und zu Programmbibliotheken. Die Ubersetzungsaufgabe lasst sich auf naturliche Weise in Teilaufgaben z- legen. Diese Zerlegung ergibt eine modulare Struktur, welche ubrigens auch eine kanonische Struktur der ublichen Ubersetzerbaubucherinduziert. IndenfunfzigerJahrenwurdebereitserkannt, dass die Implementierungvon- wendungssystemendirekt in der Maschinensprachesowohl muhsam als auch fehl- anfallig ist und zu Programmen fuhrt, die genauso schnell veralten wie die Rechner, fur die sie entwickelt wurden. Mit der Er?ndung hoherer maschinenunabhangiger Programmiersprachenergabsich aber auch sofort die Notwendigkeit, Ubersetzer - reitzustellen, die in der Lage sind, Programme dieser hoheren Programmiersprachen in Maschinensprache zu ubersetzen. Aufgrund dieser grundlegenden Herausforderung sind deshalb seit den funf- ger Jahren die verschiedenen Teilaufgaben der Ubersetzung Gegenstand intensiver Forschung. Fur die Teilaufgabe der syntaktischen Analyse von Programmen w- den etwa Konzepte aus dem Bereich der formalen Sprachen wie endliche Auto- ten und kontextfreie Grammatiken ubernommen und im Hinblick auf die gegebene Anwendung weiterentwickelt. Die theoretische Durchdringung der Problemstellung war dabei so erfolgreich, dass die Realisierung der fur syntaktische Analyse be- tigten Komponenten(fast) vollstandig automatisiert werden konnte: anstatt zu Fuss implementiertzu werden, werden diese Komponentenheute weitgehendaus Spez- kationen, in diesem Fall kontextfreie Grammatiken, generiert. Solche Generierun- verfahren werden auch fur andere Komponenten eines Ubersetzers angestrebt und sind zum Teil bereits realisiert."