Чи існує ієрархія виразності для систем типів?


23

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

Я знайшов два приклади - куб Ламбда та концепція k-рангового поліморфізму . Перший - це контрольний список з трьома варіантами, другий - реальна ієрархія (хоча я вважаю, що k-ранжирування за конкретними значеннями k є рідкістю). Усі інші системні функції, про які я знаю, є переважно ортогональними.

Мені цікаві ці поняття, оскільки я розробляю власну мову і мені дуже цікаво, як вона входить до існуючих на даний момент типів систем (моя тип типу дещо нетрадиційна, наскільки я знаю).

Я розумію, що поняття «виразність» може бути трохи розпливчастим, що може пояснити, чому системи типів мені здаються контрольними списками.


4
Я впевнений, що порівняння жорстких та швидких виразностей можна здійснити лише між більш теоретичними системами. Якщо ви розробляєте повноцінну мову програмування, то ви можете зробити порівняння за характеристиками за існуючими мовами / формалізмом. На жаль, оскільки багато можливостей можна закодувати за допомогою інших функцій, це не буде тривіальним завданням. Якщо у вас є такі вигадливі типи, як Скала або Хаскелл, тоді ви будете добре робити в плані виразності.
Дейв Кларк

3
Я дійсно повинен закінчити написання мого блогу на темі "Як порівняти мови програмування" ...
Андрій Бауер

@Andrej Bauer: Це було б цікавим доповненням до відповідей та зауважень, які вже є тут. Я вже досить багато дізнався про те, як можна визначити «виразність» - можливо, я мав би просити це замість цього…
Алекс десять Бринк

Я впевнений, що бачив поліморфізм 2-го рангу, який використовується в кількох місцях. Я пам’ятаю зараз Ламмель, Пейтон-Джонс, Scrap Your Boilerplate, 2003.
Radu GRIGore

2
@Radu GRIGore: Поліморфізм рангу-2 є важливим, оскільки дозволяє аргументи типів з'являтися у подвійно-противаріантному положенні, що за звичайної подвійності дозволяє моделювати екзистенційні типи за допомогою кодування Церкви. Ранг-3 просто знову дає універсальне кількісне визначення, і воно чергується звідти, тому мало порівняно вираженої сили в порівнянні.
CA McCann

Відповіді:


22

Існує декілька почуттів "виразності", які вам можуть знадобитися для типової системи.

  1. Які математичні функції ви можете виразити в певній системі типу. Наприклад, в просто набраному лямбдальному обчисленні можуть бути виражені не всі обчислювані функції. Те саме стосується системи , але строго більше функцій можна виразити. Це не дуже цікаво, коли ви перейдете на введення систем для мов, що закінчують Тьюрінг.F

  2. Може система typecheck кожну програму , написану в системі B . Це в основному те, що перше поняття про силу коді стосується ПТС. Знову ж , система F сильніше STLC в такому порядку, так як кожен типів STLC програми в System F . Так само система з підтипом буде сильнішою, ніж система без.ABFF

  3. Чи існують локальні перетворення (у значенні статті Феллейзена Про виразну силу мов програмування ), які дозволяють програмі, що вводиться в системі вводити систему B , але не навпаки. AB

  4. Чи гарантує одна система систем міцніші властивості, ніж інша. Наприклад, системи лінійного типу просто відхиляють більше програм, але це дозволяє їм робити більш сильні заяви щодо програм, які вони приймають.

На жаль, я не вірю, що там працювали над категоризацією чи формалізацією цих понять, за винятком лямбда-кубика Барендрегта, як @cody обговорює.


3
Гадаю, під «документом про виразність Феллейсена» ви маєте на увазі його « Про виразну силу мов програмування» .
Мартін Бергер

Так, саме. Я уточнив цю частину відповіді.
Сем Тобін-Хохштадт

13

Я не впевнений, що я маю задовільну відповідь на ваше запитання, але якщо ви вважаєте Системи чистого типу, які є узагальненням систем, знайдених у кубі лямбда (ретельний, якщо дещо датований огляд можна знайти в класичному тексті Барендрегта ) то є пара природних понять ієрархії:

  1. ΓA t:TΓB t:TΓ,tT:(,,)PTS в тому сенсі, що існує морфізм від будь-якого іншого ПТС до нього. Це можна розглядати як міру виразності типової системи, де кінцева PTS є найбільш експресивною системою.

  2. ABAFωECC

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.