Оптимизация хвостовых вызовов у Java 8?
Я попытался копать в Интернете, чтобы ответить на мой вопрос. Я нашел несколько документов, связанных с Project DaVinci. Это помечено JSR 292, которое связано с включением замыканий в JVM. Был ли реализован этот проект и является ли он частью Java 8?
Ответы
Ответ 1
Насколько я знаю, Java 8 не имеет оптимизации хвостового вызова. Afaik это не связано с фактическим трюком компилятора, потому что это просто, но для сохранения вызова в целях безопасности. Но я предполагаю, что это возможно с перезаписью байт-кода.
Ответ 2
Java не поддерживает TCO на уровне компилятора, но его можно реализовать с помощью Java 8 с использованием лямбда-выражений.
Он описывается Venkat Subramaniamin в "Функциональное программирование на Java".