JavaCompilerCore/notizen/bajo1/Fragen_und_Probleme.txt
2014-02-04 17:44:03 +01:00

109 lines
4.1 KiB
Plaintext
Executable File

(X) Typannahme für lokale Variablen
==> Eindeutige Bezeichnung
BLÖCKE WERDEN DURCHNUMMERIERT. BSP.: Block 3.1.1
=====================
(X) Klasse Fresh und Bezeichnung für Typlose Variablen
==> Für was ist die Hashtable?
==> Brauchen wir die "Registry"
JA, ZENTRALE REGISTRY!
=====================
(X) Was macht Fresh.varSubst()?
=====================
(X) makeFC() statisch machen
==> Wie oft muss makeFC() eigentlich aufgerufen werden?
==> Reicht es die generierte FC statisch zu halten?
==> Kann SourceFile Singleton sein, d.h. darf es nur ein einziges Sourcefile geben?
MAKEFC() NICHT STATISCH MACHEN. EINMAL AUFRUFEN UND DANN ERGEBNIS DURCHREICHEN
=====================
(X) Kann ich davon ausgehen, dass beim Aufruf von unify() keine Seiteneffekte auftreten?
==> Manipuliert bspweise Fresh.varSubst() nichts?
WENN KEINE FEHLER DRIN SIND, DANN KEINE SEITENEFFEKTE.
=====================
(X) Was macht Algorithmus sub() in TRStart?
==> Darf nur auf Menge von Typannahmen arbeiten, noch nicht auf Syntaxbaum, oder?
JA, NUR AUF TYPANNAHMEN
=====================
( ) Wie kopiere ich V_j in TRStart so, dass es eine tiefe Kopie ist, aber dennoch die Referenz
auf dasselbe Typ-Objekt hat.
=====================
( ) Wie erzeuge ich einen Typ? Bsp. TRExp für IntLiteral.
Was ist der Name (Attribut) eines IntLiteral?
=====================
( ) Wo und wie wird eigentlich auf den TypeAssumptions gearbeitet?
=====================
(X) Wo kommen eigentlich die Typreferenzen in den CSubstitutions her?
==> Wo die von Pair?
==> Wie greife ich in den Syntaxbaum?
VERBINDUNG ZU SYNTAXBAUM ÜBER DIE EINDEUTIGEN INSTANZEN VON TYPLOSENVARIBALEN
=====================
( ) Was ist UsedID? Wo ist der Unterschied zwischen Type.name und Type.used.name?
=====================
(X) Kann es sein, dass Thomas im jay-File die TyplosenVariablen nur bei Methodenparametern eingeführt hat?
==> Lokale Variablen und Rückgabetyp von Methoden?
==> Shift-Reduce-Konflikte
JA, JAY-FILE IST UNVOLLSTÄNDIG, DIE SHIFT-REDUCE-KONFLIKTE KÖNNEN ABER VORERST NICHT GELÖST WERDEN.
=====================
(X) Müssen noch weitere TypeReplacementListener eingetragen werden?
JA
=====================
(X) In RefType.Equiv2Equal() wird TyploseVariable.setName() aufgerufen.
Was wird dort gemacht und wie soll ich das mit der Registry für die Typlosen Variablen machen?
KOMPLETT NEUE TYPLOSE VARIABLEN ERZEUGEN. SYNTAXBAUM WIRD LAUT MARTIN NICHT VERÄNDERT!!!
=====================
(X) Kann Type.setName() nicht in RefType verschoben werden? Macht doch mehr Sinn...
JAWOLL, WIRD VERSCHOBEN!
=====================
(X) Werden für Methodenparameter auch lokale Variablen im Syntaxbaum angelegt?
NEIN!
=====================
(X) Wie komme ich in NewClass.TRExp() an den Konstruktor des abstrakten Syntaxbaumes?
Gar nicht, es müssen nur die Argumententerme übergeben werden.
=====================
(X) Was bedeutet der Index in Alg. 5.37?
V ohne x
=====================
(X) Ist Epsilon in den Alg. 5.30 ff die leere Menge?
JA!
=====================
(X) Was ist mit TRStatement / TRExpr für Increment / Decrement? Wie AddOp, oder?
JAU!
=====================
(X) IfStmt.TRStatement(): Was ist mit den Sigmas der Conditional Expression im Fall void-void?
Martin überarbeitet den Alg.
=====================
(X) IfStmt.TRStatement(): Warum wird sigma und nicht sigma_i,j angewendet?
==> Implementierung von Martin
=====================
(X) Assign.TRExp(): Warum wird sigma und nicht sigma_i,j angewendet?
==> Implementierung von Martin
=====================
(X) Wann wird jetzt eigentlich void zurückgegeben?
Liefert TRStatement für die Zuweisung "x = 5" Integer als ReturnType zurück?
NEIN! Alle Statements außer return geben "void" zurück. Nur Expressions und return haben einen ReturnType!!!
=====================
( ) Der Ausdruck x = 5; wird immer als Zuweisung gesehen, niemals als Variablendeklaration! Muss das angepasst werden?
==> Unterscheidung beim Parsen zwischen LocalVarDecl und Assign???
=====================
( ) Variablenüberdeckung funktioniert noch nicht richtig! ==> TRExp() für Local Variables Alg. 5.37