Applicazione della semantica denotazionale alla progettazione di programmi


30

Ho letto un po 'di semantica denotazionale (DS) e sono molto incuriosito dal processo di progettazione di programmi per computer in cui tipi e funzioni hanno mappature forti e chiare alla matematica.

Ci sono risorse che trattano in dettaglio la progettazione di programmi basati su DS? Ho visto alcuni trattamenti superficiali del soggetto.

Sono esperto in Haskell, Scala, Common Lisp e un po 'di Scheme, quindi qualsiasi risorsa che usi queste lingue sarebbe molto apprezzata.


7
Dovresti dare un'occhiata al lavoro di Conal Elliott: conal.net

2
L'isomorfismo di Curry-Howard è la parola chiave, se non lo sapevi già.
pedrofurla,

2
Ho pensato una cosa simile. Ho cercato di progettare la simulazione numerica di punti, corpi rigidi e fluido. Questo ( github.com/takagi/SimulationDSL ) è uno dei miei esperimenti in cui ho espresso algebra vettoriale ed equazioni parziali in Haskell DSL. Ho anche controllato il lavoro di Conal Elliott.

3
Dovresti dare un'occhiata a LtU . Probabilmente ci sono alcune buone vecchie discussioni lì, o almeno la tua domanda sarebbe più adatta lì rispetto a SO

3
Potresti voler leggere "Una semantica orientata all'implementazione degli accattivanti combinatori di Wadler". Confronta gli approcci operativi e denotazionali all'implementazione di un noto esempio del mondo reale e include la difesa di un approccio denotazionale.
Stephen Tetley,

Risposte:


13

La progettazione denotazionale ( progettazione del programma radicata e derivante dalla semantica denotazionale) è la mia metodologia principale. Qualche anno fa, mentre scrivevo di FRP, sono diventato molto più chiaro di quello che stavo facendo. Vedi Programmazione reattiva funzionale Push-pull . Per una descrizione più esplicita del paradigma e una varietà di esempi, vedere Design denotazionale con morfismi di classe di tipo . Una volta preso coscienza del modello, ho iniziato a cercarlo ovunque. Dove non riesce, so di avere una perdita di astrazione. Per una descrizione iniziale e informale, vedi il post sul blog di Luke Palmer Semantic Design .

Sono sempre interessato alle applicazioni del design denotazionale, quindi mi piacerebbe conoscere le tue esplorazioni.


Grazie per le grandi risorse. Li controllerò prima di contrassegnare la domanda come risposta.
Tim Stewart,

Grazie per aver dato i link al tuo lavoro! È la seconda volta che mi giro a studiarlo. Sfortunatamente, conal.net non risponde. Ci sono altri posti dove è possibile ottenerlo?
imz - Ivan Zakharyaschev,


1
@ imz - IvanZakharyaschev Siamo spiacenti. Il mio server web non funziona. Esegui il backup ora. Spero di farlo migrare presto e sarà più stabile.
Conal,

7

Abbiamo applicato la semantica denotazionale al design del linguaggio stesso, sostenendo che il design delle lingue, in particolare le lingue specifiche del dominio, dovrebbe iniziare con la definizione della semantica. Se sei interessato ai dettagli, potresti dare un'occhiata a Semantics-Driven DSL Design and Semantics First! Ripensare il processo di progettazione del linguaggio .


Grazie per le grandi risorse. Li controllerò prima di contrassegnare la domanda come risposta.
Tim Stewart,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.