Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Vorbemerkungen zu Themen #04 - #06 WS 2002/2003 Univ.-Prof. em. Dr. H.-J. Hoffmann.

Slides:



Advertisements
Ähnliche Präsentationen
ALP II: Objektorientierte Programmierung Sommersemester 2006
Advertisements

der Universität Oldenburg
der Universität Oldenburg
der Universität Oldenburg
Anzahl der ausgefüllten und eingesandten Fragebögen: 211
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
On the Criteria to Be Used in Decomposing Systems into Modules
Gliederung 1. Grundlagen der Bottom-Up-Syntaxanalyse
Zusammenfassung der Vorwoche
PKJ 2005/1 Stefan Dissmann Vorwoche - Klasse public class Studierende { private String name, vorname, studiengang; private int matNr, semester; private.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
(kleine!) Java Einführung Mittwoch, Heute Ziel: erstes Java-Programm erstellen Von der Aufgabenstellung bis zur Lösung Grundlagen Einfache.
Imperative Programmierung -Entwicklungswerkzeuge
Kapitel 4 Syntaktische Analyse: LR Parsing.
Parser generieren Yet Another Compiler – Compiler YACC.
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Grundlagen der Sprache
Java: Referenzen und Zeichenketten
Java: Grundlagen der Objektorientierung
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Parsing regulärer Ausdrücke
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Beispiele für Ausdrucksalgebren
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
Praxis-Repetitorium JAVA zusätzliche, ergänzende Lehrveranstaltung
PKJ 2005/1 Stefan Dissmann Methoden (Motivation) Idee: Identische Programmabschnitte zusammenfassen und mit einem Namen versehen Vorteile: Übersichtlichkeit.
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Ausblick Es fehlen noch: Möglichkeiten zum Strukturieren größerer Programme Umgang mit variabler Zahl von Elementen Umgang mit.
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Programm besteht aus mehreren Bestandteilen: Schlüsselwörter Sonderzeichen Bezeichner Kommentare Texte.
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Zusammenfassung Vorwoche
PKJ 2005/1 Stefan Dissmann Zusammenfassung Vorwoche Methoden sind mit einem Namen versehene Programmabschnitte besitzen Rückgabetyp, Namen, Parameterliste.
Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Vorbemerkungen zu Themen #04 - #06 WS 2002/2003 Univ.-Prof. em. Dr. H.-J. Hoffmann.
Betreuerin: Kathleen Jerchel
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Marcus Haller & René Schulze
Von der Sprache zum Programm
Programmiermethodik SS2007 © 2007 Albert Zündorf, University of Kassel 1 5. Test-First Prinzip Gliederung: 1. Einführung 2. Objektdiagramme zur Analyse.
20:00.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Proseminar an der TU München Martin Levihn
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
TWS/Graph HORIZONT Produktionsüberwachung für “TWS for z/OS”
Syntaxanalyse Bottom-Up und LR(0)
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
NEU! 1 2. Wo kommt diese Art von Rezeptor im Körper vor?
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Symmetrische Blockchiffren DES – der Data Encryption Standard
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
Wilfried Imrich CuP - Java Erste Vorlesung Entspricht ungefähr Kapitel 1.1 des Skriptums Wilfried Imrich Montanuniversität Leoben Freitag, 4. Oktober 2002.
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Programmiervorkurs WS 2014 Referenzdatentypen
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Agenda Motivation und Einordnung Syntaxgerichtete Übersetzung
Java Syntaxdiagramme Buchstabe A B Z a z ... Ziffer
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
 Präsentation transkript:

Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Vorbemerkungen zu Themen #04 - #06 WS 2002/2003 Univ.-Prof. em. Dr. H.-J. Hoffmann (Stand 14. November 2002)

Siehe auch

Vorbemerkungen zu Themen #04 - #06 3 Was wird angesprochen? (I) Wo treten Zeichenreihen auf ? Übersetzer Interpreter / Gliederung Zeichenreihen als Eingabe Grundzeichen und Phrasenzeichen Baumstrukturen als Ausgabe Endliche Automaten Keller zur Aufnahme von Zeichen Strategien der Zerlegung von Zeichenreihen: - zielgericht (top-down) - rückschauend (bottom-up) Semantische Analyse als vorgezogene Interpretation

Vorbemerkungen zu Themen #04 - #06 4 Was wird angesprochen ? (II) Formale Sprachen - ich lasse hier die Formalismen weg, siehe Literaturangaben - Formale Spezifikation und Beschreibung der Sprachen - Grammatiken, siehe Literaturangaben - Automaten Formale Spezifikation und Beschreibung der Verhaltensweise der Automaten - Zerlegungsalgorithmen, siehe Literaturangaben - Diese Vorbemerkungen versuchen, plausibel zu machen, was zur Bearbeitung der Themen #03 - #06 bekannt und verstanden sein sollte

Vorbemerkungen zu Themen #04 - #06 5 Übersetzer Interpreter (I) Analyse / Front end Synthese (Generator) / Back end \_________________/ Übersetzer Ausführende Maschinerie (z.B. Virtual machine) Interpreter Zeichenreihe Baum Befehle Ergebnisse Daten (z.B. Byte code)

Vorbemerkungen zu Themen #04 - #06 6 Übersetzer Interpreter (II) (Sonderfall) Analyse / Front end Synthese (generator) / Back end \_________________/ Übersetzer Ausführende Maschinerie Interpreter Zeichenreihe Baum Befehle Ergebnisse u.U. Daten

Vorbemerkungen zu Themen #04 - #06 7 Gliederung (idealisiert, auf Analyse bezogen) Zeichen- Bezeichner- syntakt. semant.- Gütever- analyse analyse Analyse Analyse besserung sequentiell, unabhängig Zwischensprachen synchronisiert als (orientiert an) Verbraucher/Produzent/Verbraucher, Baumstruktur verschränkt / Koroutinen

Vorbemerkungen zu Themen #04 - #06 8 Zeichenreihen als Eingabe ? public class hello { public static void main (String args []) { System.out.println ("Hello World"); } }...static¤void¤main¤(String¤args¤[])¤{|¤¤¤¤¤¤System.out.prin... Leerzeichen Zeilenwechsel Textende

Vorbemerkungen zu Themen #04 - #06 9 Was ist mit Zeichenreihen zu tun ? Entfernen typographischer Zeichen (z.B. Leerzeichen, Zeilenwechsel - nicht Textende ! -) Abgrenzen der Token Schlüsselworttoken Operatortoken Bezeichertoken (einschl. Konstantentoken) public class hello { public static void main (String args []) { System.out.println ("Hello World"); } }

Vorbemerkungen zu Themen #04 - #06 10 Grundzeichen und Phrasenzeichen Grundzeichen - diese finden Sie auf der Tastatur - Phrasenzeichen - repräsentieren während der Analyse eine zusammengefaßte Reihe von Grundzeichen und/oder Grund- und Phrasenzeichen - Zwei Beispiele: public class hello { public static void main ( ) { ( ) ; } } class-end public class hello class-end

Vorbemerkungen zu Themen #04 - #06 11 Baumstrukturen (als Ausgabe) public class hello class-end Ein ziemlich willkürliches Beispiel (in einer Zwischen- stufe)

Vorbemerkungen zu Themen #04 - #06 12 Endliche Automaten (I) (für Zeichenanalyse) Grund- zustand ? Buchstaben Operator Ziffer Bezeichner bzw. Wortsymbol Bezeichner ? Ziffer Ziffer ? Ganze Zahl Gleitpunktzahl ? Ziffer ? ? ?

Vorbemerkungen zu Themen #04 - #06 13 Endliche Automaten (II) (für Zeichenanayse) Grund- zustand ? Buchstaben Operator Ziffer Bezeichner bzw. Wortsymbol Bezeichner ? Ziffer Ziffer ? Ganze Zahl Gleitpunktzahl ? Ziffer ? ? ? Regeln der Form: alter Zustand anstehendes Zeichen ==> neuer Zustand

Vorbemerkungen zu Themen #04 - #06 14 Endliche Automaten (III) (für Zeichenanaylse) Grund- zustand ? Buchstaben Operator Ziffer Bezeichner bzw. Wortsymbol Bezeichner ? Ziffer Ziffer ? Ganze Zahl Gleitpunktzahl ? Ziffer ? ? ? Fehlerbehandlung ? (siehe Referat #04)

Vorbemerkungen zu Themen #04 - #06 15 Endliche Automaten (IV) (für Zeichenanalyse) Siehe Beispiel (hier nicht gezeigt) Bedeutung des Trennzeichens der Token (häufig das Leerzeichen !) Leistungsfähigkeit der Analyse ? (keine geschachtelten / geklammerten Textstrukturen, warum ?) Tabellensteuerung

Vorbemerkungen zu Themen #04 - #06 16 Bezeichneranalyse Im Seminar nicht behandelt !

Vorbemerkungen zu Themen #04 - #06 17 Keller zur Aufnahme von Zeichen Wie sind geschachtelte / geklammerte Strukturen zu analysieren ? Früheres (von links her) Auftreten bestimmter Zeichen (z.B. von Klammern) muß hinsichtlich Zahl und Stel- lung in die Analyseentscheidungen eingehen können Also müssen früher aufgetretene Zeichen (vorüber- gehend) gespeichert werden können Kellerung dieser Zeichen Grundlage der syntaktischen Analyse

Vorbemerkungen zu Themen #04 - #06 18 Strategien der syntaktischen Analyse - der Dijkstrasche Verschiebebahnhof - (Ende der) Eingabe (Anfang der) Ausgabe Keller ?1?1 Es entsteht Postfix-Notation xxxx xx? Was muß hier stehen ? - Entscheidungen bei ? 1 und ? 2 - Welche Zeichen werden ge- kellert ? Sind hier schließlich wieder alle Zeichen ? Keine Phrasenzeichen ! ?2?2 yyyy yy zzz...zzzz...z Leserichtung

Vorbemerkungen zu Themen #04 - #06 19 Strategien der syntaktischen Analyse - der Dijkstrasche Verschiebebahnhof - Keller ?1?1 Es entsteht Postfix-Notation xxxx xx? Was muß hier stehen ? - Entscheidungen bei ? 1 und ? 2 - Welche Zeichen werden ge- kellert ? ?2?2 yyyy yy zzz...zzzz...z Sind hier schließlich wieder alle Zeichen ? Keine Phrasenzeichen ! Leserichtung (Anfang der) Ausgabe (Ende der) Eingabe Fehlerbehandlung ? (siehe Referat #06)

Vorbemerkungen zu Themen #04 - #06 20 Beispiel zur Postfixnotation A := B + C * ( D [ I + 1 ] - E ) / F ( X, Y + Z ) end A B C D I 1 + [] 1 E - * F X Y Z + f 2 / + := end indizierte Funktions- Variable Aufruf (ein Index) (zwei Parameter) Welche Zeichen fehlen in der Ausgabe, welche könnten dazukommen ? Eingabe (Token nach Zeichenanalyse) Ausgabe neue Operatoren

Vorbemerkungen zu Themen #04 - #06 21 Strategien der syntaktischen Analyse - zielgerichtete Analyse (top-down) (I) - Keller mit noch nicht erfüllten Zielen, hier ? --> Vergleichen und Wegwerfen des erfüll- ten Ziels (falls Grund- zeichen) ? xxxx xxxxxxx xx zzz...zzzz...z Leserichtung (nicht mehr benötigter Anfang der) Eingabe (Ende der) Eingabe Zur Reduktion anstehen- de, das Ende repräsen- tierende Zeichenreihe aus Grund- und Phrasenzei- chen Leserichtung

Vorbemerkungen zu Themen #04 - #06 22 Strategien der syntaktischen Analyse - zielgerichtete Analyse (top-down) (II) - Zur Reduktion anstehen- de, das Ende repräsen- tierende Zeichenreihe aus Grund- und Phrasenzei- chen Keller mit Phrasenzei- chen z an oberster Stelle, hier ? --> Absetzen neuer Ziele z 1 z 2... z n ? xxxx xxxxxxx xx zz::zzzz::zz Leserichtung (nicht mehr benötigter Anfang der) Eingabe z1z2:znz1z2:zn (Ende der) Eingabe Leserichtung

Vorbemerkungen zu Themen #04 - #06 23 Strategien der syntaktischen Analyse - zielgerichtete Analyse (top-down) (III) - Oberstes Ziel, als erstes auf dem Keller abgelegt:. Erfolg, wenn am Schluß Keller leer Aus den Produktionen für ein sich an oberster Stelle des Keller befindliches Ziel z wird durch Vergleich links an erster Stelle der Produktion mit anstehendem (Grund-)Zeichen r 1 entschieden, welche Gabel (d.h. rechte Seite der Produktion z := r 1... r n ) erwartet wird, und diese dann im Keller abgesetzt (stark vereinfacht). Lesen der Gabel, schließlich Ziel z erfüllt. Üblicherweise k = 1 (Anzahl der auf der Eingabe zur Entscheidungsfindung betrachteten Zeichen) (siehe später)

Vorbemerkungen zu Themen #04 - #06 24 Strategien der syntaktischen Analyse - zielgerichtete Analyse (top-down) (IV) - Zeichen (Ziele bzw. Zwischenziele) in Gabeln im Keller werden bei Übereinstimmung von oben nach unten entfernt Ausgabe erfolgt bei einer Reduktion Aufbau des Zerlegungsbaums Dieser entsteht ausgehend von der Wurzel (Knoten ) Realisierung durch rekursiven Abstieg (recursive descent, in Anlehnung an endliche Automaten) Fehlerbehandlung ? (siehe Referat #04)

Vorbemerkungen zu Themen #04 - #06 25 Strategien der syntaktischen Analyse - rückschauende Analyse (bottom-up) (I) - Eine reduzierte / den Anfang reprä- sentierende Zeichen- reihe aus Grund- und Phrasenzeichen ? xxxx xxxxxxx xx zzz...zzzz...z Leserichtung (Ende der) Eingabe Keller mit bis jetzt noch nicht voll gelesenen Gabeln, hier ? --> Weiterlesen (nicht mehr benötigter Anfang der) Eingabe

Vorbemerkungen zu Themen #04 - #06 26 Strategien der syntaktischen Analyse - rückschauende Analyse (bottom-up) (II) - reduzierte / den An- fang repräsentierende Zeichenreihe aus Grund- und Phrasenzeichen Keller an oberster Stel- le mit eingelesener Gabel, hier ? --> Reduzieren und Ab- setzen von z (ein Phrasen- zeichen !) als Repräsentant der eingelesenen Gabel ! ) ? xxxx xxxxxxx xx zzz...zzzz...z Leserichtung (nicht mehr benötigter Anfang der) Eingabe z (Ende der) Eingabe

Vorbemerkungen zu Themen #04 - #06 27 Strategien der syntaktischen Analyse - rückschauende Analyse (bottom-up) (III) - Keller anfänglich leer. Erfolg, wenn am Schluß allein im Keller Reduziert wird, wenn eine vollständige Gabel gelesen ist - d.h. Entscheidung über Zerlegung zum spätmöglichsten Zeitpunkt ! - (stark vereinfacht). shift /reduce Üblicherweise k = 1 (Anzahl der auf der Eingabe zur Entschei- dungsfindung betrachteten Zeichen) (siehe früher)

Vorbemerkungen zu Themen #04 - #06 28 Strategien der syntaktischen Analyse - rückschauende Analyse (bottom-up) (IV) - Ausgabe erfolgt bei einer Reduktion Aufbau des Zerlegungsbaums Dieser entsteht ausgehend von (vielen) Zweigen, die schließlich zur Wurzel (Knoten ) zusam- mengefaßt sind Verschränkung mit semantischer Analyse (für syntheti- sierte Attribute leicht) möglich Realisierung durch LR-Analyse (in Anlehnung an endliche Automaten) Fehlerbehandlung ? (siehe Referat #05)

Vorbemerkungen zu Themen #04 - #06 29 Typische sprachspezifische Aufgaben der seman- tischen Analyse: -Auflösung überladener Operationen (u.ä.) -Typüberprüfung -Umstellungen zur Güteverbesserung (u.ä.) -Speicherabbildung -Adressierung lokales, an Reihung in ursprünglich vorgelegtem Text orientiertes Vorgehen am Zerlegungsbaum orientiert Erweiterung um maschinenspezifische Aufgaben Als Einstieg gezeigt an Interpretation von Postfix- Notation Semantische Analyse als vorgezogene Interpretation

Vorbemerkungen zu Themen #04 - #06 30 Strategien der syntaktischen Analyse - der Dijkstrasche Verschiebebahnhof - (Ende der) Eingabe (Anfang der) Ausgabe Operatorkeller ?1?1 Es entsteht Postfix-Notation xxxx xx? - Entscheidungen bei ? 1 und ? 2 - Welche Zeichen werden ge- kellert ? ?2?2 yyyy yy zzz...zzzz...z Leserichtung Zur Erinnerung !

Vorbemerkungen zu Themen #04 - #06 31 Beispiel zur Postfixnotation A := B + C * ( D [ I + 1 ] - E ) / F ( X, Y + Z ) end A B C D I 1 + [] 1 E - * F X Y Z + f 2 / + := end indizierte Funktions- Variable Aufruf (ein Index) (zwei Parameter) Eingabe (Token nach Zeichenanalyse) Ausgabe neue Operatoren Zur Erinnerung !

Vorbemerkungen zu Themen #04 - #06 32 (Ende der) Eingabe Operandenkeller p p p p p p p p p p p p p ? ooo::ooooo::oo Leserichtung Semantische Analyse als vorgezogene Interpretation - gezeigt an Interpretation von Postfix-Notation - generierte Befehle ? Übernehmen von Operanden, solange bis Operator auftritt, dann ? Operator + zugehörige Operanden entnommen ?

Vorbemerkungen zu Themen #04 - #06 33 A B C D I 1 + [] 1 E - * F X Y Z + f 2 / + := end Eingabe Semantische Analyse als vorgezogene Interpretation - gezeigt an Interpretation von Postfix-Notation - Ausgabe I + 1 ==> H1 D [ H1 ] ==> H2 H2 - E ==> H3 C * H3 ==> H4 Y + Z ==> H5 float ( H5 ) ==> H6 F ( X, H6 ) ==> H7 H4 / H7 ==> H8 B + H8 ==> H9 H9 ==> A Irrtum vorbehalten ! Typüberprüfung beim jeweiligen Generieren ! Einfach gehaltene Speicherabbildung

Vorbemerkungen zu Themen #04 - #06 34 A B C D I 1 + [] 1 E - * F X Y Z + f 2 / + := end Eingabe Semantische Analyse als vorgezogene Interpretation - gezeigt an Interpretation von Postfix-Notation - Ausgabe I + 1 ==> H1 D [ H1 ] ==> H1 H1 - E ==> H1 C * H1 ==> H1 Y + Z ==> H2 float ( H2 ) ==> H2 F ( X, H2 ) ==> H2 H1 / H2 ==> H1 B + H1 ==> A Irrtum vorbehalten ! Typüberprüfung beim jeweiligen Generieren ! Verbesserte Speicherabbildung

Vorbemerkungen zu Themen #04 - #06 35 Semantische Analyse als vorgezogene Interpretation - gezeigt an Interpretation von Postfix-Notation - I + 1 ==> H1 D [ H1 ] ==> H1 H1 - E ==> H1 C * H1 ==> H1 Y + Z ==> H2 float ( H2 ) ==> H2 F ( X, H2 ) ==> H2 H1 / H2 ==> H1 B + H1 ==> A Irrtum vorbehalten ! Befehle könnten sofort ausge- führt werden; keine Befehls- generierung erforderlich Operandenkeller wird zur Lauf- zeit ein Verbesserte Speicherabbildung Wertekeller !

Vorbemerkungen zu Themen #04 - #06 36 Attributierung an den Knoten der Zerlegungsbaums ==> attributierter Baum Beispiele von Attributen: - Typ des durch den Knoten repräsentierten Laufzeit- werts - Speicherbedarf dieses Werts - Speicheradresse dieses Werts - In Programmschleifen Aussage über Art der Wert- änderung (z.B. Eignung für lineare Adreßfortschaltung) ererbte und synthetisierte Attribute Berechnungsregeln für Attribute Baumdurchwanderung zur Berechnung der Attribute / vorab bestimmtes Attributberechnungsprogramm Semantische Analyse

Vorbemerkungen zu Themen #04 - #06 37 Attributierung an den Knoten der Zerlegungsbaums ==> attributierter Baum Beispiele von Attributen: - Typ des durch den Knoten repräsentierten Laufzeit- werts - Speicherbedarf dieses Werts - Speicheradresse dieses Werts - In Programmschleifen Aussage über Art der Wert- änderung (z.B. Eignung für lineare Adreßfortschaltung) Berechnungsregeln für Attribute Baumdurchwanderung zur Berechnung der Attribute / vorab bestimmtes Attributberechnungsprogramm Semantische Analyse Fehlerbehandlung ? (siehe Referat #06)

Vorbemerkungen zu Themen #04 - #06 38 ENDE der Vorbemerkungen Fragen ?

Vorbemerkungen zu Themen #04 - #06 39 Die Literaturangaben dienen als Anleitung zur jeweiligen Thematik. Die Bearbeiter sollten sich um einen darüber hinausgehenden Überblick bemühen. Angaben noch unvollständig !

Vorbemerkungen zu Themen #04 - #06 40 Zu den Referaten #03 - #06 (Allgemeines) A.V. Aho et al.: Compilerbau Teil 1 und 2; Oldenbourg, 1999 U. Kastens: Übersetzerbau; Oldenbourg, 1990 NN: Syntaxanalyse - Parser; oldenburg.de/ai/lehre/veranstaltungen/ws99/ download/syntax1.pdf, 1999 (Zugriff 2. Oktober 2002) NN: Types of errors; (Zugriff 10. Oktober 2002) J. Elder:A Bibliography of Compiler Construction; Bibliography.html#Lexical analysis, (Zugriff 2. Oktober 2002) P.N. van den Bosch: Bibliography on syntax error handling in context-free languages; ACM SIGPLAN Notices, 27 (1992) 4, W. Horwat: JavaScript 2.0 error recovery; 1999 (Zugriff 11. Okt. 2002) recovery.html #03-#06

Vorbemerkungen zu Themen #04 - #06 41 Lexikalische Fehler (bei der Zeichenanalyse; Schreibfehler) I. Durham et al.: Spelling correction in user interfaces; Comm. ACM, 26 (1983) 10, M.A. Bickel: Automatic correction to misspelled names - a fourth- generation language approach; Comm. ACM, 30 (1987) 3, C. McManis: Lexical analysis and Java; 1997 (Zugriff 2. Oktober 2002) indepth_p.html K.A.S. Abdel-Ghaffar: Detecting substitutions and transposition of characters: The Computer Journal 41 (1998)4, LEX bzw. FLEX (u.a.) als Entwicklungswerkzeuge für Übersetzer- programme #

Vorbemerkungen zu Themen #04 - #06 42 Syntaktische Fehler I (bei zielgerichteter Analyse, top-down) R. Völler: Top-Down-Analyse; (Zugriff 2. Oktober 2002) hamburg.de/~voeller/fc/comp/node16.html NN: LL parsing; (Zugriff 2. Oktober 2002) seS.pdf N. Wirth: Coping with syntax errors (Kapitel 7.3 in Compiler Construction); Addison-Wesley, 1996, J. Grosch: Efficient and comfortable error recovery in recursive descent parsers;Structured Programming, 11 (1990) 3, S.O. Anderson et al.: An assessment of locally least-cost error recovery; The Computer Journal, 26 (1983) 1, #

Vorbemerkungen zu Themen #04 - #06 43 Syntaktische Fehler II (bei rückschauender Analyse, bottom-up) NN: Problem bei SR-Parsern...; download/LR_Parser.pdf, 1999 (Zugriff 9. Oktober 2002) R. Völler: Bottom-up-analysis; (Zugriff 2. Oktober2002) S.L. Graham, S.P. Rhodes: Practical syntactic error recovery; ACM Communications, 18 (1975) 11, S. Sippu, ?. Soisalon-Soininen: Practical error recovery in LR parsing; Principles of Programming Languages, 9 (1982), ??? I.-S. Kim, K.-M. Choe: Error repair with validation in LR-based parsing; ACM Transact. Programming Languages & Systems, 23 (2001) 4, C. Cerecke: Repairing syntax errors in LR-based parsers; (Zugriff 9. Okt. 2002) YACC bzw. BISON (u.a.) als Entwicklungswerkzeuge für Übersetzer- programme, ebenso GNU CC #

Vorbemerkungen zu Themen #04 - #06 44 Semantische Fehler F. Hernandez-Campos: Semantic analysis; (Zugr. 11. Okt. 2002) P. Graham: Introduction to compilers - Semantic analysis notes; (11. Okt. 2002) S.A. Edwards: Types and static semantic analysis; 2002 ( ) s.9up.pdf C.W.Johnson, C. Runciman: Semantic errors - diagnosis and repair; ACM SIGPLAN Notices, 17 (1982) 6, F. Tip, T.B. Dinesh: A slicing-based approach for locating type errors; ACM Transact. Software Engineering Methodology, 10 (2001) 1, (hier ) ==> # (I)

Vorbemerkungen zu Themen #04 - #06 45