Чи можуть такі властивості, як використання функції пам'яті функції, виражатися залежно набраною мовою?


11

Припустимо, хочеться міркувати про властивості коду, що перевищує такі речі, як сукупність та функціональна чистота, а також дбає про споживання пам'яті або алгоритмічну складність функції. Чи можна це зробити за допомогою залежних систем набору тексту та ефектів?


2
У цьому відео Брайан МакКенна наводить приклад кодування часової складності за типами.
Антон Трунов

Відповіді:


8

Так, це може. Хоча концептуально це не так складно, його ще не так багато вивчили. Одним із аспектів галузі є семантика витрат, така як дослідження, проведені Гаєм Блеллохом .

У ролі відео, про який Антон згадується, - робота Даніельсона в аналізі легкої напівформальної часової складності для чисто функціональних структур даних . Це дійсно використовує монаду для покриття витрат за операцію. Подібна монада на семантичному рівні використовується в денотаційній семантиці витрат для функціональних мов з індуктивними типами . Ось документ про 2016 рік, який робить щось подібне в Coq, бібліотеці Coq для внутрішньої перевірки часу роботи .

Люди NuPRL також давно зацікавлені в таких діях. У вираженні обчислювальної складності в теорії конструктивних типів , яка в основному дорівнює обчисленню за структурованою оперативною семантикою. Де стає цікавіше, що ви можете відобразити мовну семантику в мові. Приклад в останньому розділі, розділ 12, теорії наївних обчислювальних типів ілюструє та обговорює подібні речі.

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