Go to file
2014-11-20 20:20:28 +01:00
.externalToolBuilders Unifyaufruf aufgeteilt in Zusammenhangskomponenten in Sourcefile.java 2014-11-03 10:40:28 +01:00
.settings FC enthält superklassen 2014-10-01 17:12:16 +02:00
antlr Java8 ANTLR-Parser angegfügt 2014-08-22 13:10:48 +02:00
bin Aufteilung Unifikation 2014-11-20 20:20:28 +01:00
doc Kopie aus dem CVS 2014-02-04 17:44:03 +01:00
examples Kopie aus dem CVS 2014-02-04 17:44:03 +01:00
lib Librarys pushen 2014-03-24 15:07:02 +01:00
notizen Kopie aus dem CVS 2014-02-04 17:44:03 +01:00
Papers/FMCO2005 Kopie aus dem CVS 2014-02-04 17:44:03 +01:00
src/de/dhbwstuttgart Aufteilung Unifikation 2014-11-20 20:20:28 +01:00
test Debugausgaben eingeschränkt 2014-11-04 17:01:35 +01:00
tools neu 2014-09-18 16:33:50 +02:00
.classpath Unifyaufruf aufgeteilt in Zusammenhangskomponenten in Sourcefile.java 2014-11-03 10:40:28 +01:00
.cvsignore Stand vom 9.11.2013 angefügt 2014-02-05 13:38:34 +01:00
.gitignore gitignore added. CVS-Ordner ignorieren sowie class und package dateien 2014-02-04 17:42:14 +01:00
.project Einsetzen von Generics geändert. Unvollständiger Zustand 2014-06-25 17:30:31 +02:00
log4j.xml Logger angefügt 2014-10-09 12:01:16 +02:00
Readme.md Einsetzen von Generischen Variablen überarbeitet 2014-05-07 13:01:14 +02:00
README.me Stand vom 9.11.2013 angefügt 2014-02-05 13:38:34 +01:00
TODO.md Parser typename hinzugefügt 2014-08-07 12:11:18 +02:00

Typinferenz

ResultSet

  • Spezifisch für jedes SourceFile (nicht für jede Klasse)

  • mehrere ResultSets pro Klasse

  • Enthält:

    • constraintPairs
    • unifiedConstraints

TypeInsertSet

  • Stellt die Typeinsetzung für eine der generierten Lösungen dar
  • Setzt alle Typen und generischen Variablen ein, welche zu dieser Lösung gehören

Ablauf Typinferenz:

  1. Parsen

    • (Parser postProcessing)
  2. Typinferenz

    • Anfangspunkt SourceFile
    • löst geparste Typen zu richtigen Typen auf (RefTypes, GenericVar)
    • setzt TPHs ein
    • bildet Constraints, welche in ResultSet gesammelt werden. ResultSet wird durch Syntaxbaum gereicht.
    • Assumptions generieren
      • Wird im Syntaxbaum für jeden Knoten ausgeführt und die Assumptions für darunterliegende Knoten gebildet
  3. Unifizierung

    • wird im SourceFile aufgerufen
    • unifiziert Constraints aller im SourceFile vorkommenden Klassen
  4. Erstellen von TypeInsertSet

    • Durchlaufen des Syntaxbaumes
    • Jeder Knoten erstellt TypeInsertSets anhand des ResultSets.
    • Bei Knoten, welche Generische Variablen beinhalten können werden GenericTypeInsertPoints erstellt
  5. Einsetzen eines TypeInsertSet (optional)

    1. Auf allen TypeInsertPoints die getUnresolvedTPHs-Methoden aufrufen
    2. Alle Abhängigkeiten dieser