Probabilistic predicate transformers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Stochastic lambda calculus and monads of probability distributions
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algorithm Animation - Introduction
Revised Lectures on Software Visualization, International Seminar
Advances in dataflow programming languages
ACM Computing Surveys (CSUR)
Estimating the Numbers of End Users and End User Programmers
VLHCC '05 Proceedings of the 2005 IEEE Symposium on Visual Languages and Human-Centric Computing
FUNCTIONAL PEARLS: Probabilistic functional programming in Haskell
Journal of Functional Programming
Narrative algorithm visualization
SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
Taxonomy of algorithm animation languages
SoftVis '06 Proceedings of the 2006 ACM symposium on Software visualization
GoalDebug: A Spreadsheet Debugger for End Users
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Debugging reinvented: asking and answering why and why not questions about program behavior
Proceedings of the 30th international conference on Software engineering
A visual language for representing and explaining strategies in game theory
VLHCC '08 Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing
A DSL for Explaining Probabilistic Reasoning
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Embedded Probabilistic Programming
DSL '09 Proceedings of the IFIP TC 2 Working Conference on Domain-Specific Languages
Causality: Models, Reasoning and Inference
Causality: Models, Reasoning and Inference
Visual explanations of probabilistic reasoning
VLHCC '09 Proceedings of the 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC)
Causal Reasoning with Neuron Diagrams
VLHCC '10 Proceedings of the 2010 IEEE Symposium on Visual Languages and Human-Centric Computing
Hi-index | 0.00 |
We present an explanation-oriented, domain-specific, visual language for explaining probabilistic reasoning. Explanation-oriented programming is a new paradigm that shifts the focus of programming from the computation of results to explanations of how those results were computed. Programs in this language therefore describe explanations of probabilistic reasoning problems. The language relies on a story-telling metaphor of explanation, where the reader is guided through a series of well-understood steps from some initial state to the final result. Programs can also be manipulated according to a set of laws to automatically generate equivalent explanations from one explanation instance. This increases the explanatory value of the language by allowing readers to cheaply derive alternative explanations if they do not understand the first. The language is composed of two parts: a formal textual notation for specifying explanation-producing programs and the more elaborate visual notation for presenting those explanations. We formally define the abstract syntax of explanations and define the semantics of the textual notation in terms of the explanations that are produced.