Counting Successes: Effects and Transformations for Non-deterministic Programs

We give a simple effect system for non-deterministic programs, tracking static approximations to the number of results that may be produced by each computation. A relational semantics for the effect system establishes the soundness of both the analysis and its use in effect-based program transformations.

[1]  Nick Benton,et al.  Reading, Writing and Relations Towards Extensional Semantics for Effect Analyses , 2006 .

[2]  Martin Hofmann,et al.  Relational semantics for effect-based program transformations with dynamic allocation , 2007, PPDP '07.

[3]  David K. Gifford,et al.  Integrating functional and imperative programming , 1986, LFP '86.

[4]  Nick Benton,et al.  Monads and Effects , 2000, APPSEM.

[5]  Ohad Kammar,et al.  Algebraic foundations for effect-dependent optimisations , 2012, POPL '12.

[6]  Tom Schrijvers,et al.  From monoids to near-semirings: the essence of MonadPlus and alternative , 2015, PPDP.

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[8]  Manuel V. Hermenegildo,et al.  Determinacy Analysis for Logic Programs Using Mode and Type Information , 2004, LOPSTR.

[9]  David K. Gifford,et al.  Polymorphic effect systems , 1988, POPL '88.

[10]  Martin Hofmann,et al.  Effect-dependent transformations for concurrent programs , 2015, PPDP.

[11]  John C. Reynolds,et al.  The Meaning of Types From Intrinsic to Extrinsic Semantics , 2000 .

[12]  Nick Benton,et al.  Simple relational correctness proofs for static analyses and program transformations , 2004, POPL.

[13]  Ralf Hinze,et al.  Deriving backtracking monad transformers , 2000, ICFP '00.

[14]  Fergus Henderson,et al.  Determinism analysis in the Mercury compiler , 1996 .

[15]  Saumya K. Debray,et al.  Functional computations in logic programs , 1989, TOPL.

[16]  Philip Wadler,et al.  The marriage of effects and monads , 1998, ICFP '98.

[17]  Eugenio Moggi,et al.  Computational lambda-calculus and monads , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[18]  Nick Benton,et al.  Compiling standard ML to Java bytecodes , 1998, ICFP '98.

[19]  Andrew P. Tolmach,et al.  Optimizing ML Using a Hierarchy of Monadic Types , 1998, Types in Compilation.

[20]  Philip Wadler,et al.  Packrat parsing:: simple, powerful, lazy, linear time, functional pearl , 2002, ICFP '02.

[21]  Tarmo Uustalu A divertimento on MonadPlus and nondeterminism , 2016, J. Log. Algebraic Methods Program..

[22]  Martin Hofmann,et al.  Abstract effects and proof-relevant logical relations , 2014, POPL.

[23]  Shin-ya Katsumata,et al.  Parametric effect monads and semantics of effect systems , 2014, POPL.

[24]  Nick Benton,et al.  Semantics of an effect analysis for exceptions , 2007, TLDI '07.

[25]  Pascal Van Hentenryck,et al.  Cardinality Analysis of Prolog , 1994, ILPS.

[26]  Philip Wadler,et al.  Theorems for free! , 1989, FPCA.

[27]  Sebastian Fischer,et al.  Purely functional lazy nondeterministic programming , 2011, J. Funct. Program..

[28]  Simon L. Peyton Jones,et al.  Comprehensive comprehensions , 2007, Haskell '07.