2009-12-19 2 views

ответ

5

См. Anton van Straaten's post на Lambda the Ultimate. Он описывает скрытую типизацию в контексте Схемы.

Манифест типизации будет использоваться в статически типизированном языке, где тип термина объявляется синтаксически или может быть выведен во время компиляции из других таких терминов.

2

Скрытый ввод: стиль ввода, который не требует явных деклараций типа. Он связан с duck typing, dynamic typing и type inference. Вы можете видеть их на таких языках, как Python, Lisp, Haskell и т. Д.

Манифест ввода: тип всех объявленных переменных явно идентифицирован. Такие языки, как C, C++ и Java, следуют этому.

9

Иногда эта же концепция придумывается независимо в разных областях информатики. Это один из тех случаев. Что Схема сообщество вызывает латентных и манифест печатать, остальная часть мира называет неявное и явных печатать. Смысл в точности то же самое:

В явно/манифеста типирование, программист должен явно записать типы, таким образом, типы становятся манифеста в исходном коде.

В неявное/латентный типирование, программист не записывает типы. Таким образом, типы неявные или скрытые.

Обратите внимание, что вопрос о неявной и явной типизации полностью ортогонален, например, динамическое и статическое типирование, сильное против слабого набора текста, звук против неправильной типизации, безопасная и небезопасная типизация и номинальная или структурная и утиная типизация.

Haskell, например, неявно, сильно, статически, звучит, безопасно, структурно типизирован.

+0

Я не знаю, haskell, не могли бы вы проиллюстрировать каждый из этих характерных признаков в haskell? – unj2

+0

плюс 1! но как Haskell структурно набирается? –

1

Часть причины, на которую трудно ответить на ваш вопрос, заключается в том, что это активная область исследований. В частности, существует целая группа людей, которые хотели бы смешивать типизированные и нетипизированные языки и разрешать программы, где определенные части печатаются, а некоторые части - нет.

Я утверждаю, что пока еще нет широкого соглашения о том, какое значение, наконец, будет придано термину «скрытый тип».

Однако проблема с скрытыми и манифестными типами не является той же проблемой, что и проблема вывода типа.

Тип вывода, на языке статически типизированного языка, относится к системе, которая может выводить типы для условий программы без помощи программистов, как правило, используя систему типа унифицированного стиля и унификации. Haskell и OCaml имеют типовой вывод.

Смежные вопросы