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

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

10
Должны ли мы определить типы для всего?
Недавно у меня возникла проблема с читабельностью моего кода. У меня была функция, которая выполняла операцию и возвращала строку, представляющую идентификатор этой операции, для дальнейшего использования (немного похоже на OpenFile в Windows, возвращающий дескриптор). Пользователь будет использовать этот идентификатор позже, чтобы начать операцию и контролировать ее завершение. Идентификатор должен был …
141 type-systems 

7
Динамически против статически типизированных языков изучения [закрыто]
Существуют ли исследования эффективности языков со статической и динамической типизацией? В частности: Измерения производительности программиста Коэффициент дефектности Также включая эффекты от того, используется ли юнит-тестирование. Я видел много дискуссий о достоинствах любой из сторон, но мне интересно, проводил ли кто-нибудь исследование по этому вопросу.

4
Является ли система типов Haskell формально эквивалентной системе Java? [закрыто]
Я понимаю, что некоторые вещи проще / сложнее в одном языке, чем в другом, но меня интересуют только функции, связанные с типами, которые возможны в одном и невозможны / неактуальны в другом. Чтобы сделать его более конкретным, давайте проигнорируем расширения типов на Haskell, поскольку их так много, которые делают разные …

16
Как хранить «неизвестные» и «отсутствующие» значения в переменной, сохраняя при этом разницу между «неизвестными» и «отсутствующими»?
Считайте это «академическим» вопросом. Мне было интересно время от времени избегать значений NULL, и это пример, когда я не могу найти удовлетворительное решение. Давайте предположим, что я храню измерения там, где в некоторых случаях измерение, как известно, невозможно (или отсутствует). Я хотел бы сохранить это «пустое» значение в переменной, избегая …

10
Почему основные сильные статические ООП-языки препятствуют наследованию примитивов?
Почему это нормально и в основном ожидается: abstract type Shape { abstract number Area(); } concrete type Triangle : Shape { concrete number Area() { //... } } ... пока это не нормально и никто не жалуется concrete type Name : string { } concrete type Index : int { …

14
Когда типовые испытания в порядке?
Предполагая язык с некоторой присущей безопасности типов (например, не JavaScript): Учитывая метод, который принимает a SuperType, мы знаем, что в большинстве случаев, когда у нас может возникнуть искушение выполнить тестирование типа для выбора действия: public void DoSomethingTo(SuperType o) { if (o isa SubTypeA) { o.doSomethingA() } else { o.doSomethingB(); } …

5
Как языки с типами Maybe вместо NULL обрабатывают краевые условия?
Эрик Липперт высказал очень интересную мысль в своем обсуждении того, почему C # использует тип, nullа не Maybe<T>тип : Согласованность системы типов важна; можем ли мы всегда знать, что необнуляемая ссылка ни при каких обстоятельствах не считается недействительной? Как насчет конструктора объекта с ненулевым полем ссылочного типа? Как насчет финализатора …

3
Что такое система типов?
Фон Я проектирую язык, как побочный проект. У меня есть рабочий ассемблер, статический анализатор и виртуальная машина для него. Поскольку я уже могу компилировать и запускать нетривиальные программы, используя созданную мной инфраструктуру, я подумал о том, чтобы выступить с презентацией в моем университете. Во время моего выступления я упомянул, что …

8
Есть ли причина иметь нижний тип в языке программирования?
Тип дна - это конструкция, которая в основном появляется в математической теории типов. Он также называется пустым типом. Это тип, который не имеет значений, но является подтипом всех типов. Если тип возвращаемого значения функции является нижним, это означает, что он не возвращает. Период. Может быть, это зацикливается навсегда, или, может …

8
Каковы преимущества безопасности системы типов?
В JavaScript: Хорошие части Дугласа Крокфорда он упоминает в своей главе о наследовании: Другое преимущество классического наследования заключается в том, что оно включает в себя спецификацию системы типов. Это в основном освобождает программиста от необходимости писать явные операции приведения, что очень хорошо, потому что при приведении в действие преимущества безопасности …

7
Переменные приведения типов в PHP, какова практическая причина для этого?
PHP, как большинство из нас знает, имеет слабую типизацию . Для тех, кто этого не делает, PHP.net говорит: PHP не требует (или не поддерживает) явного определения типа в объявлении переменной; тип переменной определяется контекстом, в котором используется переменная. Нравится вам это или нет, PHP на лету перебрасывает переменные. Итак, следующий …

5
Почему Java не делает вывод типов?
Я всегда удивлялся, почему Java не делает вывод типов, учитывая, что язык такой, какой он есть, и его виртуальная машина очень зрелая. Google Go - это пример языка с превосходным выводом типов, который уменьшает количество набираемых текстов. Есть ли какая-то особая причина того, что эта функция не является частью Java?

2
Почему (или почему нет) экзистенциальные типы считаются плохой практикой в ​​функциональном программировании?
Какие методы я мог бы использовать для последовательного рефакторинга кода, удаляя зависимость от экзистенциальных типов? Как правило, они используются, чтобы дисквалифицировать нежелательные конструкции вашего типа, а также разрешить потребление с минимальными знаниями о данном типе (или мое понимание таково). Кто-нибудь придумал простой последовательный способ убрать зависимость от них в коде, …


6
Почему вывод типа полезен?
Я читаю код гораздо чаще, чем пишу код, и я предполагаю, что большинство программистов, работающих над промышленным программным обеспечением, делают это. Я предполагаю, что преимущество вывода типов заключается в меньшей детализации и меньшем количестве написанного кода. Но с другой стороны, если вы будете читать код чаще, вам, вероятно, понадобится читаемый …

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