TY - GEN A1 - Herder, Jens T1 - Konzeption, Implementierung und Integration einer Komponente zur inkrementellen Bezeichner- und Operatoranalyse innerhalb des PSGs N2 - Der Programmier System Generator - PSG - des Fachgebiets Praktische Informatik in Darmstadt erzeugt aus einer Sprachdefinition eine sprachspezifische Programmierumgebung. Diese besteht u. a. aus einem Editor, welcher syntaktische und semantische Fehler von Programmfragmenten, die nicht vollständig sein müssen, erkennen kann. Dem Benutzer werden per Menü Fehlerkorrekturen angeboten. Neben der freien Texteingabe besteht die Möglichkeit, den Text nur mit Hilfe von Menüs zu verfeinern. Teil dieses Editors ist die Bezeichneranalyse. Sie dient als Hilfsmittel für den Benutzer, indem für jede Stelle eines Programmfragmentes die gültigen Bezeichner ausgegeben werden können. Die Kontextanalyse setzt die Berechnung auf den von der Bezeichneranalyse erzeugten Daten auf, um semantische Fehler zu erkennen. Die bis zu dieser Arbeit verwendete Bezeichneranalyse im PSG unterstützt nur einfache Sprachkonzepte (z. B. Fortran und Pascal). Die Gültigkeitskonzepte der Bezeichner von weiterentwickelten Sprachen (z. B. Modula-2, CHILL, Ada oder Pascal-XT) sind nicht vollständig modellierbar. Wir stellen ein neues Konzept zur Definition und Berechnung der Bezeichneranalyse vor, das alle uns bekannten Sprachen mit statischer Typbindung unterstützt. Hierfür haben wir die Sprache BIS - Bezeichneridentifikationssprache - definiert. Die Methode ist verwandt mid dem Zwischencode für geordnete Attributierte Grammatiken. Für jeden Knoten des Abstrakten Syntaxbaumes wird mit Hilfe von BIS ein Code für eine abstrakte Maschine, welche die Bezeichneranalyse durchführt, geschrieben. Im Gegensatz zu herkömlichen Methoden (verkettete Symboltabellen) wird für jeden Punkt innerhalb eines Programmes for der Anfrage durch den Benutzer oder der Kontextanalyse die Menge der gültigen Bezeichner berechnet. Die Kosten für eine Anfrage sind dadurch minimal. Diese abstrakte Maschine teilt sich in zwei unabhängige Maschinen auf, zum einen in die S-Maschine, die die speziellen Operationen der Bezeichneranalyse durchführt, und zum anderen in die G-Maschine, die den Datenfluss und die Auswertung steuert. Diese Aufteilung ermöglicht den Austausch der S-Maschine durch eine andere, welche neue Anwendungsgebiete erschliesst, z. B. die eines Praeprozessors. Die G-Maschine arbeitet inkrementell; es werden nur die Codeschablonen neu ausgewertet, deren geerbten Attribute sich geändert haben. Dazu müssen die Daten, die in einer Codeschablone hinein- und hinausfliessen, abgelegt werden. Dies ergibt bei grossen Programmfragmenten eine immense Rechenzeiteinsparung auf Kosten des Speicherplatzes. Die Funktionsweise wird an einer kleinen Beispielsprache demonstriert, die zu Pascal ähnlich ist. Diese besitzt Konstrukte zum Import und Export von Daten und Datentypen zwischen Programmfragmenten. Im Prototyp kann die inkrementelle Arbeitsweise abgeschaltet werden und ermöglicht einen guten Vergleich der Verfahren. KW - Februar Y1 - 1992 UR - https://opus4.kobv.de/opus4-hs-duesseldorf/frontdoor/index/index/docId/1726 CY - Darmstadt ER -