Застосування денотаційної семантики до проектування програм


30

Я читав трохи про денотаційну семантику (DS) і мене дуже заінтригував процес проектування комп’ютерних програм, де типи та функції мають чіткі та чіткі відображення математики.

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

Я розмовляю в Haskell, Scala, Common Lisp і трохи Scheme, тому будь-які ресурси, які використовують ці мови, будуть дуже вдячні.


7
Ви повинні ознайомитись із роботою Conal Elliott: conal.net

2
Ізоморфізм Кері-Говарда - це ключове слово, якщо ви цього ще не знали.
pedrofurla

2
Я думав подібне. Я спробував сконструювати чисельне моделювання точок, жорстких тіл і рідини. Це ( github.com/takagi/SimulationDSL ) - один із моїх експериментів, в якому я висловив векторну алгебру та часткові рівняння в Haskell DSL. Я також перевірив роботу Конала Елліотта.

3
Ви повинні перевірити LtU . Там, мабуть, є якісь добрі старі добрі дискусії, або, принаймні, ваше питання було б краще підходити там, ніж на SO

3
Ви можете прочитати "Семантику, орієнтовану на реалізацію симпатичних друкарських комбінаторів Вадлера" Семюеля Каміна. Він порівнює операційний та денотаційний підходи до впровадження відомого прикладу в реальному світі та включає адвокацію денотаційного підходу.
Стівен Тетлі

Відповіді:


13

Денотаційний дизайн ( дизайн програми, коріння якого походить від денотаційної семантики) - моя основна методологія. Кілька років тому, пишучи про FRP, я зрозумів, що я роблю. Див. Функціональне реактивне програмування Push-pull . Більш чіткий опис парадигми та різноманітні приклади див. Денотаційне проектування з морфізмами класу типів . Як тільки я усвідомив цей зразок, я почав його шукати всюди. Там, де це не вдається, я знаю, що у мене витік абстракції. Для раннього, неформального опису дивіться в блозі Луки Палмера « Семантичний дизайн» .

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


Дякую за великі ресурси. Я збираюся їх перевірити, перш ніж позначу запитання як відповідь.
Тім Стюарт

Дякуємо, що надали посилання на вашу роботу! Вже вдруге я звертаюся до вивчення цього. На жаль, conal.net не відповідає. Чи є інші місця, де їх можна дістати?
imz - Іван Захарящев


1
@ imz - ІванЗахарящев Вибачте. Мій веб-сервер знизився. Створіть резервну копію зараз. Сподіваюся, незабаром він мігрує, і він буде стабільнішим.
Конал

7

Ми застосували денотаційну семантику до самого дизайну мови, стверджуючи, що дизайн мов, зокрема мов, що стосуються домену, повинен починатися з визначення семантики. Якщо вас цікавлять деталі, ви можете спочатку поглянути на Дизайн DSL та Semantics, керований Semantics! Переосмислення процесу дизайну мови .


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