2014-04-04 14 views
10

Ich habe versucht, im Internet zu graben, um meine Frage beantwortet zu bekommen. Ich habe einige Dokumente gefunden, die sich auf Project DaVinci beziehen. Dies ist mit dem JSR 292 markiert, der sich auf die Einbeziehung von Schließungen in der JVM bezieht. Wurde dieses Projekt realisiert und gehört es zu Java 8?Hat Java 8 eine Tail Call Optimierung?

Antwort

9

Soweit ich weiß Java 8 hat keine Tail Call-Optimierung. Afaik ist nicht mit dem eigentlichen Compilertrick verwandt, da dieser einfach ist, aber um aus Sicherheitsgründen einen Callstack zu erhalten. Aber ich denke, es wäre mit einem Bytecode-Rewriter möglich.

4

Java unterstützt TCO nicht auf Compiler-Ebene, aber es ist möglich, es mit Java 8 mithilfe von Lambda-Ausdrücken zu implementieren. Es wird von Venkat Subramaniamin in "Funktionale Programmierung in Java" beschrieben.

+0

Danke wird es überprüfen –

+0

Ich habe es gerade überprüft. Es ist beeindruckend. –

+3

Bitte zitieren Sie den relevanten Auszug aus dem Buch. – toniedzwiedz