Вопросы с тегом «pl.programming-languages»

15
Кто-нибудь использовал полиморфную дефункционализацию Поттье и Готье в модульном компиляторе?

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

15
Полная полнота против полной абстракции программного перевода

Усилия по проверке компилятора часто сводятся к тому, чтобы доказать, что компилятор полностью абстрактен: он сохраняет и отражает (контекстуальные) эквивалентности. Вместо того, чтобы предоставлять полные доказательства абстракции, некоторые недавние (основанные на категориях) работы по проверке...

15
Теоремы о неподвижной точке для конструктивных метрических пространств?

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

15
Структуры данных в языке программирования с линейными типами

Предположим, мы имеем дело с языком программирования, который поддерживает линейные типы (термины линейного типа можно использовать не более одного раза, так сказать). Это позволяет обрабатывать некоторые вычислительные эффекты (такие как мутация, даже изменение типа операнда) способом, который...

14
Характеризуя невидимые эквивалентности с помощью правил слияния

В ответ на другой вопрос, « Расширения бета-теории лямбда-исчисления» , Евгений предложил ответ: бета + правило {s = t | s и t закрытые неразрешимые условия} где термин М разрешим , если мы можем найти последовательность терминов , такие , что M приложение «s для них равно I . Ответ Евгения дает...

14
Исключение вырезов для исчисления с помощью nats или другого индуктивного типа данных?

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

14
Логические соотношения для предиктивной системы в предикативной мета-теории

Логические отношения для непредсказуемых языков, таких как Система F, похоже, критически полагаются на непредсказуемость внешней логики. В частности, интерпретация для типа Форалла будет определяться в терминах всех типизированных отношений. В непредсказуемой системе (например, CiC / Coq) это...

14
Можем ли мы различать строго синтаксические и семантические методы в языке программирования?

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

13
Безопасность памяти на основе типов без ручного управления памятью или сборки мусора во время выполнения?

Допустим, мы хотели создать типичный, чисто функциональный язык программирования, такой как Haskell или Idris, который предназначен для системного программирования без сборки мусора и не имеет времени выполнения (или, по крайней мере, не более, чем «среды выполнения» C и Rust). То, что может...

13
Взаимосвязь между анализом сдвига и уменьшением и продолжением с разделителями?

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

13
Каковы эквациональные законы для нулевых типов?

Отказ от ответственности : хотя я забочусь о теории типов, я не считаю себя экспертом по теории типов. В простом типе лямбда-исчисления нулевой тип не имеет конструкторов и уникального элиминатора: Γ⊢M:0Γ⊢initial(M):AΓ⊢M:0Γ⊢initial(M):A\frac{\Gamma \vdash M \colon 0}{\Gamma \vdash initial (M)...

13
Может ли какая-либо программа быть реализована механически?

Можно ли создать единственную (не полную по Тьюрингу) механическую реализацию, скажем, Microsoft Word? Можно ли реализовать такие вещи, как итераторы, функции первого порядка, весь спектр методов программирования? Могут ли шестерни и другие механические части представлять структуры данных или даже...

13
Моделирование объектов (ООП) в теории зависимых типов

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

13
Является ли контекстуальная эквивалентность языка с `quote`-`eval` тривиальной или нет?

В [1] Митчелл Ванд продемонстрировал, что добавление fexprs к чистому лямбда-исчислению упрощает теорию контекстуальной эквивалентности, означая, что два термина контекстуально эквивалентны, если они -конгруэнтны. При изучении соответствующей работы, он пошел «наш результат расширяет старое...

13
Списки различий в функциональном программировании

Вопрос Что нового в чисто функциональных структурах данных со времен Окасаки? и эпический ответ jbapple, упомянутый с использованием списков различий в функциональном программировании (в отличие от логического программирования), что меня недавно интересовало. Это привело меня к поиску реализации...

12
Когда у пространств когерентности есть откаты и отжимания?

\newcommand{\symp}{\Bumpeq} ≎X≎X\symp_XXXX(X,≎X)(X,≎X)(X, \symp_X)f:X→Yf:X→Yf : X \to Yf⊆X×Yf⊆X×Yf \subseteq X \times Y(x,y)∈f(x,y)∈f(x,y) \in f(x′,y′)∈f(x′,y′)∈f(x',y') \in f если то иx≎Xx′x≎Xx′x \symp_X x'y≎Yy′y≎Yy′y \symp_Y y' если и то .x≎Xx′x≎Xx′x \symp_X x'y=y′y=y′y = y'x=x′x=x′x = x'...

12
Пример, где наименьший нормальный лямбда-член не самый быстрый

Пусть о Л -терминов быть определены следующим образом :sizesizesizeλλ\lambda ,size(x)=1size(x)=1size(x) = 1 size(λx.t)=size(t)+1size(λx.t)=size(t)+1size(λx.t) = size(t) + 1 , size(ts)=size(t)+size(s)+1size(ts)=size(t)+size(s)+1size(t s) = size(t) + size(s) + 1 . Пусть сложность -term определяется...

12
Каковы отношения между Альтернативой, MonadPlus (LeftCatch) и MonadPlus (LeftDistributive)?

В продолжение Каков пример Монады, которая является Альтернативой, но не МонадПлюс? : Предположим, является монадой. Каковы отношения betweem м будучи Alternative , а MonadPlusCatch и MonadPlusDistr ? mmmmmmДля каждой из шести возможных пар я хотел бы иметь либо доказательство того, что одно...

12
Функции, которые напечатали лямбда-исчисление, не могут вычислить

Я просто хочу знать некоторые примеры функций, которые могут быть вычислены нетипизированным лямбда-исчислением, но не типизированными лямбда-исчислениями. Поскольку я новичок, некоторые повторение справочной информации будет оценено. Благодарю. Редактировать: набрав лямбда-исчисление, я...