Каковы пределы вывода типов?

Каковы пределы вывода типов? Какие системы типов не имеют общего алгоритма вывода?


person Community    schedule 09.08.2009    source источник


Ответы (2)


Джо Уэллс показал, что вывод типа для System F неразрешим, который является самым основным полиморфным лямбда-исчислением, независимо открытым Жираром и Рейнольдсом. Это самый важный результат, показывающий пределы вывода типов.

Вот важная проблема, которая все еще остается открытой: как лучше всего интегрировать обобщенные алгебраические типы данных в вывод типа Хиндли-Милнера? Каждый год Саймон Пейтон Джонс предлагает новый ответ, который предположительно лучше, чем ответ предыдущего года. Я не читал версию за март 2009 года и поэтому не могу сказать, верю ли я, что она будет окончательной.

person Norman Ramsey    schedule 09.08.2009
comment
Итак, алгоритм W покрывает максимально возможное разрешимое подмножество системы F? - person ; 09.08.2009
comment
@ott: я не остроумный теоретик типов, но готов поспорить на свой |- символ, что система F имеет несколько несравнимых разрешимых подмножеств. Не говоря уже о возможности расширений (GADT, ограничения равенства, квалифицированные типы). Это полная занятость для остроголовой толпы :-) - person Norman Ramsey; 09.08.2009
comment
@Norman Ramsey: Интересно. Я не знаю, остроумны ли теоретики типов, но статьи, которые я видел, кажутся очень далекими от реальности, и я не знаю, станет ли теория типов общепринятой и общепринятой; вам все еще нужно изучать ML, чтобы даже понять основы. - person ; 09.08.2009

Система зависимого типа (или, короче говоря, система зависимого типа) может описывать типы, которые говорят что-то вроде: «Во время оценки (времени выполнения) значение этой переменной всегда будет равно значению этой переменной, которое равно вычисляется с помощью другого процесса оценки». Автоматический вывод этого типа из кода влечет за собой автоматические доказательства теорем. Если набор теорем, которые вы можете выразить, ограничен автоматически доказуемыми, это не будет проблемой, но в случае языков с зависимой типизацией это, как правило, не так.

Таким образом, зависимо типизированные системы не могут иметь общего (и полного) вывода о типах.

Я уверен, что кто-то может дать моральный формальный и полный ответ...

person Peaker    schedule 09.08.2009