[targetBytecode] Tph4 #94

Closed
opened 2022-11-28 14:11:10 +00:00 by dholle · 4 comments
Owner

Schritt zwei im Paper INSIGHTS:

Neue konstruierte Paare T1 < T2 der Methode m die in der transitiven Hülle

T1 < R1 <= R2 < T2 mit R1 <= R2 in der Methode m2 die in m aufgerufen wird.

Die Constraints von tph4 lauten:
[(TPH O < TPH X), (TPH X < TPH P), (TPH P < TPH X), (TPH X < TPH M)]

Die reflexive und transitive Hülle von m2 ist [(TPH X < TPH X)]

Also werden logischerweise die Constraints
O < X < P, P < X < M und O < X < M hinzugefügt.
(Meine Implementierung stimmt also)

Da nun allerdings O < P, P < X und O < M in den Constraints stehen kommt der Cycle und Infima Detektor durcheinander da O zwei Bounds hat.

Also komme ich zu dem Schluss, dass O < M schon bei diesem Schritt aussortiert werden muss. Ich bräuchte also einen Algortihmus dafür.

Schritt zwei im Paper INSIGHTS: Neue konstruierte Paare T1 < T2 der Methode m die in der transitiven Hülle T1 < R1 <= R2 < T2 mit R1 <= R2 in der Methode m2 die in m aufgerufen wird. Die Constraints von tph4 lauten: [(TPH O < TPH X), (TPH X < TPH P), (TPH P < TPH X), (TPH X < TPH M)] Die reflexive und transitive Hülle von m2 ist [(TPH X < TPH X)] Also werden logischerweise die Constraints O < X < P, P < X < M und O < X < M hinzugefügt. (Meine Implementierung stimmt also) Da nun allerdings O < P, P < X und O < M in den Constraints stehen kommt der Cycle und Infima Detektor durcheinander da O zwei Bounds hat. Also komme ich zu dem Schluss, dass O < M schon bei diesem Schritt aussortiert werden muss. Ich bräuchte also einen Algortihmus dafür.
Author
Owner

Die Typvariablen von m sind [TPH P, TPH M, TPH N, TPH O]

class Tph4 {

Tph4()({
super(());
})::TPH AI
TPH M m(TPH N a, TPH O b)({
TPH P c;
(c)::TPH P = ((this)::TPH Q.m2((b)::TPH O))::TPH S;
TPH M d;
(d)::TPH M = ((this)::TPH V.m2((c)::TPH P))::TPH X;
return (d)::TPH M;
})::TPH Z

TPH X m2(TPH X b)({
return (b)::TPH X;
})::TPH AC

Tph4()({
super(());
})::TPH AF

}

Die Typvariablen von m sind [TPH P, TPH M, TPH N, TPH O] class Tph4 { Tph4()({ super(()); })::TPH AI TPH M m(TPH N a, TPH O b)({ TPH P c; (c)::TPH P = ((this)::TPH Q.m2((b)::TPH O))::TPH S; TPH M d; (d)::TPH M = ((this)::TPH V.m2((c)::TPH P))::TPH X; return (d)::TPH M; })::TPH Z TPH X m2(TPH X b)({ return (b)::TPH X; })::TPH AC Tph4()({ super(()); })::TPH AF }
Owner

Branch: targetBytecode

commit: 0c9612a2ea

class UseTph4 {
public static void main(String[] args) {
System.out.println(new Tph4().m2("s"));
System.out.println(new Tph4().m(1,2));
}
}

liefert den Fehler

Exception in thread "main" java.lang.ClassFormatError: Extra bytes at the end of class file Tph4
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at UseTph4.main(UseTph4.java:4)

Branch: targetBytecode commit: 0c9612a2ea114d11567ff77a8e2eb1f89bc40484 class UseTph4 { public static void main(String[] args) { System.out.println(new Tph4().m2("s")); System.out.println(new Tph4().m(1,2)); } } liefert den Fehler Exception in thread "main" java.lang.ClassFormatError: Extra bytes at the end of class file Tph4 at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1013) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:862) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:639) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) at UseTph4.main(UseTph4.java:4)
Owner

branch targetBytecode
commit 239698c8d6

Fehler ist nicht gelöst

FEIM extends FEIK fehlt in m

siehe unten:

javac UseTph4.java
UseTph4.java:3: Fehler: Kein Zugriff auf Tph4
System.out.println(new Tph4().m2("s"));
^
Ungültige Klassendatei: ./Tph4.class
Nicht deklarierte Typvariable: FEIM
Entfernen Sie die Datei, oder stellen Sie sicher, dass sie im richtigen Unterverzeichnis des Classpath vorhanden ist.
1 Fehler
pl@MacBook-Air% javap Tph4.class
public class Tph4 {
public Tph4();
public <FEIL, FEIK> FEIK m(FEIL, FEIM);
public FEIX m2(FEIX);
}

branch targetBytecode commit 239698c8d6f356e01b552957289d3cfcd04391da Fehler ist nicht gelöst FEIM extends FEIK fehlt in m siehe unten: javac UseTph4.java UseTph4.java:3: Fehler: Kein Zugriff auf Tph4 System.out.println(new Tph4().m2("s")); ^ Ungültige Klassendatei: ./Tph4.class Nicht deklarierte Typvariable: FEIM Entfernen Sie die Datei, oder stellen Sie sicher, dass sie im richtigen Unterverzeichnis des Classpath vorhanden ist. 1 Fehler pl@MacBook-Air% javap Tph4.class public class Tph4 { public Tph4(); public <FEIL, FEIK> FEIK m(FEIL, FEIM); public <FEIX> FEIX m2(FEIX); }
Author
Owner

Es sollte jetzt funktionieren. Vorausgesetzt der Test testet richtig ;)

Es sollte jetzt funktionieren. Vorausgesetzt der Test testet richtig ;)
Sign in to join this conversation.
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: JavaTX/JavaCompilerCore#94
No description provided.