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.


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.


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
@ 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 .


Obrigado pelos ótimos recursos. Vou dar uma olhada antes de marcar a pergunta como respondida.
Tim Stewart
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.