JavaCompilerCore/notizen/bajo1/Fragen_und_Probleme.txt

109 lines
4.1 KiB
Plaintext
Raw Normal View History

2014-02-04 16:44:03 +00:00
(X) Typannahme f<>r lokale Variablen
==> Eindeutige Bezeichnung
BL<42>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 <20>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<65>hrt hat?
==> Lokale Variablen und R<>ckgabetyp von Methoden?
==> Shift-Reduce-Konflikte
JA, JAY-FILE IST UNVOLLST<53>NDIG, DIE SHIFT-REDUCE-KONFLIKTE K<>NNEN ABER VORERST NICHT GEL<45>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<45>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 <20>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 <20>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<75>ckgegeben?
Liefert TRStatement f<>r die Zuweisung "x = 5" Integer als ReturnType zur<75>ck?
NEIN! Alle Statements au<61>er return geben "void" zur<75>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<65>berdeckung funktioniert noch nicht richtig! ==> TRExp() f<>r Local Variables Alg. 5.37