Scotts stochastische Lambda-Steine


19

Vor kurzem schlug Dana Scott den stochastischen Lambda-Kalkül vor, einen Versuch, probabilistische Elemente in den (untypisierten) Lambda-Kalkül einzuführen, der auf einer Semantik basiert, die als Graph-Modell bezeichnet wird. Sie finden seine Folien online zum Beispiel hier und seinen Artikel im Journal of Applied Logic , vol. 12 (2014).

Durch eine schnelle Suche im Internet fand ich jedoch ähnliche frühere Forschungsergebnisse, zum Beispiel für das Hindley-Milner-Typ-System . Die Art und Weise, wie sie probabilistische Semantik einführen, ähnelt der von Scott (im ersten Fall werden Monaden verwendet, im zweiten Fall wird ein Continuation-Passing-Stil verwendet).

Inwiefern unterscheidet sich die Arbeit von Scott von früheren Arbeiten in Bezug auf die Theorien selbst oder ihre möglichen Anwendungen?


Da ich eine Weile
gebraucht habe

Antworten:


15

σ

Die Verwendung von CPS scheint in erster Linie dazu zu dienen, Berechnungen eine Gesamtreihenfolge aufzuerlegen, und dem Zugriff auf die Zufallsquelle eine Gesamtreihenfolge aufzuerlegen. Die Staatsmonade sollte es genauso gut machen.

Scotts "Zufallsvariablen" scheinen den "Stichprobenfunktionen" von Park in seiner operativen Semantik zu entsprechen . Die Technik der Transformation standardeinheitlicher Werte in Werte mit beliebiger Verteilung ist allgemein als inverse Transformationsabtastung bekannt .

Ich glaube, es gibt nur einen grundlegenden Unterschied zwischen Ramseys und Scotts Semantik. Ramsey interpretiert Programme als Berechnungen, die ein Maß für die Programmausgaben bilden. Scott's geht von einem einheitlichen Maß für Eingaben aus und interpretiert Programme als Transformationen dieser Eingaben. (Das Ausgabemaß kann im Prinzip unter Verwendung von Vorabbildern berechnet werden .) Scotts entspricht der Verwendung der Zufallsmonade in Haskell.

In seinem Gesamtansatz scheint Scotts Semantik der zweiten Hälfte meiner Dissertation über probabilistische Sprachen am ähnlichsten zu sein - mit der Ausnahme, dass ich mich an Werte erster Ordnung gehalten habe, anstatt eine clevere Codierung zu verwenden, unendliche Bäume von Zufallszahlen anstelle von Strömen verwendet und Programme als interpretiert habe Pfeilberechnungen. (Einer der Pfeile berechnet die Transformation vom festen Wahrscheinlichkeitsraum zu Programmausgaben; die anderen berechnen Vorbilder und ungefähre Vorbilder.) In Kapitel 7 meiner Dissertation wird erklärt, warum ich Programme als Transformationen eines festen Wahrscheinlichkeitsraums besser interpretiere als sie als Berechnungen zu interpretieren dass eine Maßnahme bauen. Im Grunde kommt es darauf an, "Fixpunkte von Maßnahmen sind viel komplizierter, aber wir verstehen Fixpunkte von Programmen ziemlich gut."


3
λλλ

1
@Martin: Ich kann wirklich nicht so schnell antworten, weil ich nicht viel über Prozesskalküle weiß, aber es scheint, als wäre es einen Blick wert. Ich wäre gespannt, wie die Eigenschaften der Prozesskalküle nach der Übertragung aussehen und ob die übertragenen Eigenschaften in irgendeiner Weise genutzt werden können.
Neil Toronto

2
T0λ

@Andrej: Also sollte es kein Problem sein, die Kodierung um reelle Zahlen zu erweitern?
Neil Toronto

1
λλ
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.