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

33
Типы классов против объектных интерфейсов

Я не думаю, что понимаю классы типов. Я где-то читал, что думать о классах типов как о «интерфейсах» (из ОО), которые реализует тип, неправильно и вводит в заблуждение. Проблема в том, что я испытываю проблемы, видя их как нечто иное, и как это неправильно. Например, если у меня есть класс типов (в...

21
Как вы получаете исчисление конструкций из других точек в лямбда-кубе?

Говорят, что КО является кульминацией всех трех измерений лямбда-куба. Это не очевидно для меня вообще. Я думаю, что я понимаю отдельные измерения, и комбинация любых двух, кажется, приводит к относительно простому объединению (возможно, я что-то упускаю?). Но когда я смотрю на CoC, вместо того,...

16
Какие части теории гомотопического типа невозможны в Agda или Coq?

Когда мы смотрим на книгу «Гомотопическая теория типов» - мы видим следующие темы: Homotopy type theory 2.1 Types are higher groupoids 2.2 Functions are functors 2.3 Type families are fibrations 2.4 Homotopies and equivalences 2.5 The higher groupoid structure of type formers 2.6 Cartesian product...

15
Одинарная параметричность против двоичной параметричности

Недавно я очень заинтересовался параметричностью после просмотра статьи LICS Бернарди и Мулена 2012 года ( https://dl.acm.org/citation.cfm?id=2359499 ). В этой статье они усваивают унарную параметричность в системе чистого типа с зависимыми типами и подсказывают, как можно расширить конструкцию до...

14
Математическое (категориальное) описание классов типов

Функциональный язык можно рассматривать как категорию, где его объектами являются типы и функции морфизмов между ними. Как классы типов вписываются в эту модель? Я предполагаю, что мы должны рассматривать только те реализации, которые удовлетворяют ограничению, которое имеет большинство классов...

11
Система типов на основе теории наивных множеств

Как я понимаю, в компьютерных науках типы данных не основаны на теории множеств из-за таких вещей, как парадокс Рассела, но, как и в реальных языках программирования, мы не можем выразить такие сложные типы данных, как «множество, которое не содержит себя», можем ли мы Скажите, что на практике тип...

11
Компилятор для зависимого типа намного сложнее, чем интерпретатор?

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

11
Зависимые типы от церковно-закодированного типа в PTS / CoC

Я экспериментирую с системами чистого типа в лямбда-кубе Барендрегта, особенно с наиболее мощным, исчислением конструкций. Эта система имеет сорта *и BOX. Для справки ниже я использую конкретный синтаксис Morteинструмента https://github.com/Gabriel439/Haskell-Morte-Library, который близок к...

10
Типы собственности и логика разделения

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

10
Можно ли сортировать `sort` по элементарной аффинной логике?

Следующий λ-член здесь в нормальной форме: sort = (λabc.(a(λdefg.(f(d(λhij.(j(λkl.(k(λmn.(mhi))l)) (h(λkl.l)i)))(λhi.(i(λjk.(bd(jhk)))(bd(h(λjk.(j (λlm.m)k))c)))))e))(λde.e)(λde.(d(λfg.g)e))c)) Реализует алгоритм сортировки для церковно-закодированных списков. То есть результат: sort (λ c n . (c 3...

10
Интуиция за строгой позитивностью?

Мне интересно, может ли кто-нибудь подсказать мне, почему строгая положительность индуктивных типов данных гарантирует строгую нормализацию. Чтобы было ясно, я вижу, как наличие отрицательных явлений приводит к расхождению, то есть путем определения: data X where Intro : (X->X) -> X мы можем...

9
Исследования по выводу типа вызовов?

Я пытаюсь узнать больше о проверке типов в целых программах и системах вывода типов, которые используют информацию с сайтов вызова функций для вычисления информации о типах (в дополнение к стандартному подходу использования тела функции). Например, такой алгоритм может использовать вызов функции,...

9
Каковы возможные реализации классов типов Haskell и каковы их (не) преимущества?

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