Recentemente, Dana Scott propôs o cálculo lambda estocástico, uma tentativa de introduzir elementos probabilísticos no cálculo lambda (sem tipo) com base em uma semântica chamada modelo gráfico. Você pode encontrar seus slides on-line, por exemplo, aqui e seu artigo no Journal of Applied Logic , vol. 12 (2014).
No entanto, em uma rápida pesquisa na Web, encontrei pesquisas anteriores semelhantes, por exemplo, as do sistema do tipo Hindley-Milner . A maneira como eles introduzem a semântica probabilística é semelhante à de Scott (no primeiro, eles usam mônadas, enquanto no segundo Scott usa o estilo de passagem de continuação).
De que maneira o trabalho de Scott é diferente do trabalho anterior disponível, em termos das próprias teorias ou de suas possíveis aplicações?
Respostas:
Uma força aparente de sua abordagem é que ela permite que funções de ordem superior (ou seja, termos lambda) sejam resultados observáveis, o que geralmente mede a teoria que é bastante complicada. (O problema básico é que espaços de funções mensuráveis geralmente não possuem álgebra de Borel para o qual a função de aplicativo - às vezes chamada de "eval" - é mensurável; veja a introdução ao artigo sobre estruturas de Borel para espaços de função .) Scott faz isso usando um Gödel que codifica de termos lambda para números naturais e trabalha diretamente com os termos codificados. Um ponto fraco dessa abordagem pode ser que a codificação pode ser difícil de ser estendida com números reais como valores de programa. (Editar: isso não é uma fraqueza - veja o comentário de Andrej abaixo.)σ
O uso do CPS parece ser principalmente para impor uma ordem total nos cálculos, impor uma ordem total ao acesso à fonte aleatória. A mônada estadual deve fazer o mesmo.
As "variáveis aleatórias" de Scott parecem ser as mesmas que as "funções de amostragem" de Park em sua semântica operacional . A técnica de transformar valores uniformes padrão em valores com qualquer distribuição é mais amplamente conhecida como amostragem por transformação inversa .
Acredito que há apenas uma diferença fundamental entre a semântica de Ramsey e Scott. Ramsey interpreta programas como cálculos que constroem uma medida nas saídas do programa. Scott assume uma medida uniforme existente sobre insumos e interpreta os programas como transformações desses insumos. (A medida de saída pode, em princípio, ser calculada usando pré-imagens .) Scott é análogo ao uso da mônada aleatória em Haskell.
Em sua abordagem geral, a semântica de Scott parece mais semelhante à segunda metade da minha dissertação sobre linguagens probabilísticas - exceto que eu permaneci com valores de primeira ordem em vez de usar uma codificação inteligente, usei árvores infinitas de números aleatórios em vez de fluxos e interpretou programas como cálculos de flechas. (Uma das setas calcula a transformação do espaço de probabilidade fixo em saídas do programa; as outras calculam pré-imagens e pré-imagens aproximadas.) O capítulo 7 da minha dissertação explica por que acho que interpretar programas como transformações de um espaço de probabilidade fixo é melhor do que interpretá-los como cálculos que constroem uma medida. Basicamente, tudo se resume a "pontos de fixação de medidas são muito complicados, mas entendemos muito bem os pontos de fixação de programas".
fonte