Вопросы с тегом «type-systems»

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

9
Действительно ли языки с динамической типизацией заслуживают всей критики? [закрыто]
Я прочитал несколько статей в Интернете о выборе языка программирования на предприятии. В последнее время популярными стали многие языки с динамической типизацией, например, Ruby, Python, PHP и Erlang. Но многие предприятия все еще используют статические типизированные языки, такие как C, C ++, C # и Java. И да, одно из …

8
Почему именно Java не допускает числовые условия, такие как if (5) {…}, если C делает?
У меня есть эти две маленькие программы: С #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Джава class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } который сообщает об ошибке: …
33 java  c  type-systems 

7
Является ли система типов Haskell препятствием для понимания функционального программирования? [закрыто]
Я изучаю Haskell с целью понимания функционального программирования, ожидая, что я буду применять полученные знания на других языках (в основном Groovy, Python, JavaScript). Я выбрал Haskell, потому что у меня сложилось впечатление, что он очень чисто функциональный и не допускает никакой зависимости от состояния. Я не выбрал изучение Haskell, потому …

9
Существуют ли шаблоны проектирования, которые возможны только в динамически типизированных языках, таких как Python?
Я прочитал соответствующий вопрос. Существуют ли какие-либо шаблоны проектирования, которые не нужны в динамических языках, таких как Python? и запомнил эту цитату на Wikiquote.org Замечательная вещь о динамической типизации - она ​​позволяет вам выражать все, что можно вычислить. А системы типов - системы типов, как правило, разрешимы, и они ограничивают …

1
Вывод типа в Java 8
Собирается ли введение новой лямбда-нотации (см., Например, эту статью ) в Java 8 какого-либо вывода типа? Если да, то как новая система типов повлияет на язык Java в целом?

3
Хорошая универсальная система типов
Хотите улучшить этот пост? Предоставьте подробные ответы на этот вопрос, включая цитаты и объяснение того, почему ваш ответ правильный. Ответы без достаточной детализации могут быть отредактированы или удалены. Общепринято, что дженерики Java не работают в некоторых важных аспектах. Комбинация подстановочных знаков и границ привела к некоторому серьезно нечитаемому коду. Однако, …

6
Какой компромисс для вывода типа?
Кажется, что все новые языки программирования или, по крайней мере, те, которые стали популярными, используют вывод типов. Даже Javascript получил типы и вывод типов через различные реализации (Acscript, typcript и т. Д.). Это выглядит великолепно для меня, но мне интересно, есть ли какие-то компромиссы или почему, скажем, Java или старые …

8
Использование системы «сильного» типа в реальном мире, скажем, для крупномасштабных веб-приложений?
Я знаю, что это очень широкий, неоднозначный и, возможно, философский вопрос. В той степени, что самое важное ключевое слово в вопросе - «сильная» система типов - само по себе плохо определено . Итак, позвольте мне попытаться объяснить, что я имею в виду. Общий контекст вопроса Мы создавали очень масштабное веб-приложение …

7
Является ли венгерская запись обходным решением для языков с недостаточно выразительной статической типизацией? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . В статье Эрика Липперта Что случилось с венгерской нотацией? Он заявляет, что цель Венгерской …

6
Каковы предостережения от реализации фундаментальных типов (таких как int) как классов?
При проектировании и implenting объектно-ориентированный язык программирования, в какой - то момент один должен сделать выбор о реализации основных типов (как int, float, doubleили их эквиваленты) , как классы или что - то другое. Очевидно, что языки в семействе C имеют тенденцию не определять их как классы (Java имеет специальные …

4
Системы типов: номинальные и структурные, явные и неявные.
Меня немного смущает разница между системами номинального и структурного типов. Может кто-нибудь объяснить, чем они отличаются? Из того, что я понимаю: Номинал: Совместимость типов основана на имени типа. Структурный: Совместимость типов основана на структуре типов, например, в C, если 2 переменные являются типами структур с разными именами, но с одинаковой …

6
Какова общая процедура, используемая, когда компиляторы статически проверяют тип «сложных» выражений?
Примечание: когда я использовал «сложный» в заголовке, я имею в виду, что выражение имеет много операторов и операндов. Не то чтобы само выражение было сложным. Недавно я работал над простым компилятором для сборки x86-64. Я закончил основной внешний интерфейс компилятора - лексер и парсер - и теперь могу генерировать представление …

1
Может ли вывод Хиндли-Милнера работать на языке Go?
Я читал, что Хиндли-Милнер не работает с системами типов, которые имеют подклассы, и есть другие функции системы типов, которые также не работают с ним. Go в настоящее время имеет только очень ограниченный тип вывода в :=операторе. Но Go не имеет подклассов в традиционном смысле, только интерфейсы, которые очень похожи на …

1
Почему на Хаскеле нет лямбда-абстракций на уровне типов?
Существуют ли для этого какие-либо теоретические причины (например, проверка типов или вывод типов стали бы неразрешимыми) или практические причины (слишком трудно осуществить должным образом)? В настоящее время мы можем обернуть вещи newtypeкак newtype Pair a = Pair (a, a) а затем есть Pair :: * -> * но мы не …

2
Проверка типов и рекурсивные типы (Написание Y-комбинатора в Haskell / Ocaml)
При объяснении Y-комбинатора в контексте Haskell обычно отмечается, что прямая реализация не будет проверять тип в Haskell из-за его рекурсивного типа. Например, из Rosettacode : The obvious definition of the Y combinator in Haskell canot be used because it contains an infinite recursive type (a = a -> b). Defining …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.