Да, выразительность системы типов Java с generics позволяет моделировать вычисления машины Тьюринга. Из этого следует неразрешимость проверки подтипизации в общем случае, а не полезность таких конструкций в обычном коде.
Являются ли дженерики Java по Тьюрингу полными?
Да, выразительность системы типов Java с generics позволяет моделировать вычисления машины Тьюринга. Из этого следует неразрешимость проверки подтипизации в общем случае, а не полезность таких конструкций в обычном коде.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Да, выразительность системы типов Java с generics позволяет моделировать вычисления машины Тьюринга. Из этого следует неразрешимость проверки подтипизации в общем случае, а не полезность таких конструкций в обычном коде.
Работа Radu Grigore показывает сведение проблемы остановки к проверке подтипов Java. Это теоретическое свойство языка типов, не утверждение о выполнении произвольных задач в runtime через type erasure. Практические компиляторы ограничены ресурсами и могут не завершить обработку специально построенного случая. Для прикладного кода вывод простой: чрезмерно сложные generic-конструкции ухудшают диагностику и сопровождение.
Источник: arxiv.org.