Запитання з тегом «type-inference»

2
Контекстно чутливі граматики та типи
1) Який, якщо такий є, зв’язок між статичним набором тексту та формальними граматиками? 2) Зокрема, чи вдасться лінійно обмеженим автоматом перевірити, чи правильно було набрано програму C ++ або SML? Вкладений автомат стеків? 3) Чи існує природний спосіб виразити статичні правила набору тексту у формальній граматиці?

1
Які практичні питання стосуються типів перетину та об'єднання?
Я розробляю просту статичну типову функціональну мову програмування як досвід навчання. Схоже, що типова система, яку я застосувала до цього часу, могла (з невеликою кількістю додаткових робіт) включати типи перетину та з'єднання, наприклад, у вас може бути: <Union String Integer> <Union Integer Foo> Перетин двох типів вище було б рівним …

3
Що насправді має підтверджувати правильність для перевірки набору тексту?
Я займаюся програмуванням кілька років, але мені дуже незнайомий теоретичний КС. Нещодавно я намагався вивчати мови програмування, і як частина цього, введіть перевірку та умовиводи. Моє запитання полягає в тому, що якщо я спробую написати програму виводу і перевірку програми на мову програмування, і я хочу довести, що працює моя …

2
Поліморфізм вищого рангу по відношенню до незмінених типів
У мене є мова, в якій типи за замовчуванням нерозкриваються, з виведенням типу на основі Гіндлі – Мілнера. Я хотів би додати поліморфізм вищого рангу, головним чином для роботи з екзистенційними типами. Думаю, я розумію, як перевірити ці типи, але я не впевнений, що робити при складанні. В даний час …

2
Підтипи як підмножини типів даних SML
Однією з небагатьох речей, які мені не подобаються у книзі Окасакі про суто функціональні структури даних, є те, що його код засмічений невичерпним узгодженням шаблону. Як приклад, я наведу його реалізацію черг у режимі реального часу (відновлено для усунення непотрібних призупинень): infixr 5 ::: datatype 'a stream = Nil | …

3
Введіть умовивід для імперативних висловлювань, крім призначення
У моєму пошуку наукових праць щодо типів систем імперативних мов я знаходжу рішення лише для мови з змінними посиланнями, але без справжніх імперативних структур управління, таких як складові оператори, цикли або умовні умови. Тож незрозуміло, як може бути реалізована імперативна мова з частковим висновком типу, наприклад http://rust-lang.org . У документах …

2
Розбірливість виводу типу та перевірка типу в MLTT
В Інтуїціоністській теорії типів: предикативна частина Мартіна-Льофа доведено, що перевірка типуa:Aa:Aa \colon Aпідлягає вирішеннюaaaвводиться в першу чергу шляхом доведення теореми про нормалізацію для закритих набраних термінів. З іншого боку, я бачив, як написано в багатьох місцях (Wikipedia, Nördstrom тощо), що перевірка типу в (інтенсивній) MLTT вирішувана; вони неявно обмежують терміни …

1
Простий доказ того, що визначальність типізації в системі F (
Припустимо, ми не знаємо результату Джо Б. Веллса з 1994 року про те, що як типізація, так і перевірка типів не можна визначити в системі F (AKA ). У підрахунках Ламбда з типами Барендрегта (1992) я знайшов доказ завдяки Малекі 1989 року, що перевірка типу передбачає типізацію. Це відбувається томуλ …

2
Дослідження щодо виводу типу на основі виклику?
Я намагаюся дізнатися більше про перевірку типу цілої програми та системи набору типів, які використовують інформацію з сайтів функціональних викликів для обчислення інформації про тип (крім стандартного підходу використання функції функції). Наприклад, такий алгоритм може використовувати виклик функції, як foo(1)зробити висновок про те, що функція fooприймає цілі аргументи. Очевидно, це …

1
Яка роль двоколірного обчислення споруд?
Отже, я читаю трохи про розробку, зокрема, алгоритми, засновані на двоколірному обчисленні конструкції, і я трохи розгублений. Я не розумію, яка саме мета цьогоCCbiCCbiCC^{bi}є. Здається, це ідентичноCCCCCCза винятком відмінності між неявними та явними аргументами функцій. Зокрема, я не бачу, як це дозволяє писати(id0)(id0)(id\; 0) замість (idN0)(idN0)(id\; \mathbb{N}\; 0). Якщо припустити …

1
Чи можемо в System F à la Church автоматизувати умовиводи для усунення для всіх?
Питання наступне. Як правило, коли у вас є такий термін, як , ми можемо усунути forall, застосувавши цей термін до типу, наприклад .ΛX.tΛX.t\Lambda X.t(ΛX.t)[T]→t[X:=T](ΛX.t)[T]→t[X:=T](\Lambda X.t)[T]\to t[X:=T] Тепер, припустимо, це стрілка, і ми хочемо надати їй аргумент, тоді нам потрібно було б застосувати цей термін до належного типу, таким, щоб він …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.