내가 읽은 것에서 : 그 이유는 상속을 받았을 때 실제로 어떤 메소드가 호출 될지를 결정하는 것이 쉽지 않기 때문입니다.
그러나 왜 Java가 정적 메소드에 대해 꼬리 재귀 최적화를 가지고 있지 않고 컴파일러로 정적 메소드를 호출하는 적절한 방법을 시행하지 않는 이유는 무엇입니까?
왜 Java는 꼬리 재귀를 전혀 지원하지 않습니까?
여기에 어려움이 있는지 확실하지 않습니다.
대하여 제안 된 중복 하여 설명한 바와 같이, 르그 W MITTAG 1 :
- 다른 질문은 TCO에 관한 것입니다.이 질문은 TRE에 관한 것입니다. TRE는 TCO보다 훨씬 간단합니다.
- 또한 다른 질문은 JVM으로 컴파일하려는 언어 구현에 대해 JVM이 부과하는 제한 사항에 대해 묻습니다.이 질문은 JVM 사양에 의해 변경 될 수 있기 때문에 JVM에 의해 제한되지 않는 언어 인 Java에 대해 묻습니다. Java를 디자인하는 사람들과 동일합니다.
- 마지막으로, JVM에는 TRE에 필요한 모든 메소드 내 GOTO가 있기 때문에 TRE에 대한 JVM에는 제한이 없습니다.
1 콜 아웃 포인트에 포맷이 추가되었습니다.