JavaTX Compiler in JavaTX
Go to file
2014-05-07 13:01:14 +02:00
.externalToolBuilders Stand vom 9.11.2013 angefügt 2014-02-05 13:38:34 +01:00
.settings Kopie aus dem CVS 2014-02-04 17:44:03 +01:00
bin Neuimplementierung von automatischer Einsetzung der benötigten Generischen Variablen durch TypeInsertSet 2014-04-23 12:05:57 +02: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 Einsetzen von Generischen Variablen überarbeitet 2014-05-07 13:01:14 +02:00
test Testfiles added. Tests fixed. Operator TypeExpr fixed 2014-05-07 08:10:55 +02:00
tools Neuimplementierung von automatischer Einsetzung der benötigten Generischen Variablen durch TypeInsertSet 2014-04-23 12:05:57 +02:00
.classpath FileOutputStream zu OutputStream geändert 2014-03-24 18:01:26 +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 Stand vom 9.11.2013 angefügt 2014-02-05 13:38:34 +01:00
log4j.xml Kopie aus dem CVS 2014-02-04 17:44:03 +01: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

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