2014-07-16 18:38:55 +02:00
2014-02-04 17:44:03 +01:00
2014-02-04 17:44:03 +01:00
2014-02-04 17:44:03 +01:00
2014-03-24 15:07:02 +01:00
2014-02-04 17:44:03 +01:00
2014-02-04 17:44:03 +01:00
2014-07-16 18:38:55 +02:00
2014-07-09 15:07:40 +02:00
2014-02-05 13:38:34 +01:00
2014-02-04 17:44:03 +01:00
2014-02-05 13:38:34 +01: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
Description
Languages
Java 97.9%
ANTLR 2.1%