Aplicando Semântica Denotacional ao Design de Programas

30

Eu li um pouco sobre semântica denotacional (DS) e estou muito intrigado com o processo de projetar programas de computador em que tipos e funções têm mapeamentos fortes e claros para a matemática.

Existem recursos que discutem a criação de programas baseados no DS em detalhes? Eu já vi alguns tratamentos superficiais do assunto.

Eu conheço Haskell, Scala, Common Lisp e um pouco de Scheme, para que todos os recursos que usam essas linguagens sejam muito apreciados.

Tim Stewart
fonte
7
Você deve conferir o trabalho de Conal Elliott: conal.net
2
Isomorfismo de Curry-Howard é a palavra-chave, se você ainda não sabia.
pedrofurla
2
Eu pensei uma coisa semelhante. Tentei projetar simulação numérica de pontos, corpos rígidos e fluidos. Este ( github.com/takagi/SimulationDSL ) é um dos meus experimentos em que expressei álgebra vetorial e equações parciais no Haskell DSL. Também verifiquei o trabalho de Conal Elliott.
3
Você deve conferir o LtU . Provavelmente existem boas discussões antigas por lá, ou pelo menos sua pergunta seria mais adequada do que em SO
3
Você pode ler "Semântica orientada à implementação dos combinadores de impressão bonita de Wadler". Ele compara abordagens operacionais e denotacionais para implementar um exemplo bem conhecido do mundo real e inclui a defesa de uma abordagem denotacional.
Stephen tetley

Respostas:

13

Design denotacional ( design de programa enraizado e fluindo da semântica denotacional) é minha metodologia principal. Alguns anos atrás, enquanto escrevia sobre FRP, fiquei muito mais claro sobre o que estava fazendo. Consulte Programação reativa funcional push-pull . Para uma descrição mais explícita do paradigma e uma variedade de exemplos, consulte Design denotacional com morfismos de classe de tipo . Quando me tornei consciente do padrão, comecei a procurá-lo em todos os lugares. Onde falha, sei que tenho um vazamento de abstração. Para uma descrição informal e precoce, consulte a publicação do blog de Luke Palmer, Semantic Design .

Estou sempre interessado em aplicativos de design denotacional, por isso gostaria de saber sobre suas explorações.

Conal
fonte
Obrigado pelos ótimos recursos. Vou dar uma olhada antes de marcar a pergunta como respondida.
Tim Stewart
Obrigado por fornecer os links para o seu trabalho! É a segunda vez que eu estudo. Infelizmente, conal.net não responde. Existem outros lugares onde se pode obtê-lo?
imz - Ivan Zakharyaschev 02/12/14
11
Bem, pode-se também ler github.com/conal/talk-2014-bayhac-denotational-design/blob/…
imz - Ivan Zakharyaschev 02 /
11
@ imz - IvanZakharyaschev Desculpe. Meu servidor web caiu. Faça backup agora. Espero que ele seja migrado em breve e seja mais estável.
Conal
7

Aplicamos a semântica denotacional ao próprio design da linguagem, argumentando que o design das linguagens, em particular as linguagens específicas do domínio, deve começar com a definição da semântica. Se você estiver interessado nos detalhes, poderá dar uma olhada no DSL Design Driven Semantics e Semantics First! Repensando o processo de design de idiomas .

Martin Erwig
fonte
Obrigado pelos ótimos recursos. Vou dar uma olhada antes de marcar a pergunta como respondida.
Tim Stewart