Ich habe ein wenig über die Denotationssemantik (DS) gelesen und bin sehr fasziniert von dem Prozess des Entwurfs von Computerprogrammen, bei denen Typen und Funktionen starke und klare Zuordnungen zur Mathematik aufweisen.
Gibt es Ressourcen, die das Entwerfen von Programmen auf der Basis von DS im Detail erläutern? Ich habe ein paar oberflächliche Behandlungen des Themas gesehen.
Ich kenne mich mit Haskell, Scala, Common Lisp und ein bisschen Scheme aus, daher wären alle Ressourcen, die diese Sprachen verwenden, sehr dankbar.
Antworten:
Denotational Design (Programmdesign, das auf denotationalen Semantiken basiert und aus diesen resultiert) ist meine primäre Methodik. Als ich vor ein paar Jahren über FRP schrieb, wurde mir viel klarer, was ich getan hatte. Siehe Push-Pull-Funktion Reaktive Programmierung . Eine ausführlichere Beschreibung des Paradigmas und eine Vielzahl von Beispielen finden Sie unter Denotational Design with Type Class Morphisms . Als ich mir des Musters bewusst wurde, fing ich an, überall danach zu suchen. Wo es fehlschlägt, weiß ich, dass ich ein Abstraktionsleck habe. Eine frühe, informelle Beschreibung finden Sie in Luke Palmers Blogbeitrag Semantic Design .
Ich bin immer an Anwendungen für denotationales Design interessiert, daher würde ich gerne etwas über Ihre Erkundungen erfahren.
quelle
Wir haben die Denotationssemantik auf das Sprachdesign selbst angewendet und argumentiert, dass das Design von Sprachen, insbesondere domänenspezifischen Sprachen, mit der Definition der Semantik beginnen sollte. Wenn Sie sich für Details interessieren, sollten Sie sich Semantics-Driven DSL Design und Semantics First! Den Sprachentwurfsprozess überdenken .
quelle