Results 1  10
of
134
Church: A language for generative models
 In UAI
, 2008
"... Formal languages for probabilistic modeling enable reuse, modularity, and descriptive clarity, and can foster generic inference techniques. We introduce Church, a universal language for describing stochastic generative processes. Church is based on the Lisp model of lambda calculus, containing a pu ..."
Abstract

Cited by 129 (26 self)
 Add to MetaCart
(Show Context)
Formal languages for probabilistic modeling enable reuse, modularity, and descriptive clarity, and can foster generic inference techniques. We introduce Church, a universal language for describing stochastic generative processes. Church is based on the Lisp model of lambda calculus, containing a pure Lisp as its deterministic subset. The semantics of Church is defined in terms of evaluation histories and conditional distributions on such histories. Church also includes a novel language construct, the stochastic memoizer, which enables simple description of many complex nonparametric models. We illustrate language features through several examples, including: a generalized Bayes net in which parameters cluster over trials, infinite PCFGs, planning by inference, and various nonparametric clustering models. Finally, we show how to implement query on any Church program, exactly and approximately, using Monte Carlo techniques. 1
On The Algebraic Models Of Lambda Calculus
 Theoretical Computer Science
, 1997
"... . The variety (equational class) of lambda abstraction algebras was introduced to algebraize the untyped lambda calculus in the same way Boolean algebras algebraize the classical propositional calculus. The equational theory of lambda abstraction algebras is intended as an alternative to combinatory ..."
Abstract

Cited by 24 (11 self)
 Add to MetaCart
(Show Context)
. The variety (equational class) of lambda abstraction algebras was introduced to algebraize the untyped lambda calculus in the same way Boolean algebras algebraize the classical propositional calculus. The equational theory of lambda abstraction algebras is intended as an alternative to combinatory logic in this regard since it is a firstorder algebraic description of lambda calculus, which allows to keep the lambda notation and hence all the functional intuitions. In this paper we show that the lattice of the subvarieties of lambda abstraction algebras is isomorphic to the lattice of lambda theories of the lambda calculus; for every variety of lambda abstraction algebras there exists exactly one lambda theory whose term algebra generates the variety. For example, the variety generated by the term algebra of the minimal lambda theory is the variety of all lambda abstraction algebras. This result is applied to obtain a generalization of the genericity lemma of finitary lambda calculus...
Graph lambda theories
 Journal of Logic and Computation
, 2004
"... Lambda theories are equational extensions of the untyped lambda calculus that are closed under derivation. The set of lambda theories is naturally equipped with a structure of complete lattice, where the meet of a family of lambda theories is their intersection, and the join is the least lambda theo ..."
Abstract

Cited by 22 (13 self)
 Add to MetaCart
(Show Context)
Lambda theories are equational extensions of the untyped lambda calculus that are closed under derivation. The set of lambda theories is naturally equipped with a structure of complete lattice, where the meet of a family of lambda theories is their intersection, and the join is the least lambda theory containing their union. In this paper we study the structure of the lattice of lambda theories by universal algebraic methods. We show that nontrivial quasiidentities in the language of lattices hold in the lattice of lambda theories, while every nontrivial lattice identity fails in the lattice of lambda theories if the language of lambda calculus is enriched by a suitable finite number of constants. We also show that there exists a sublattice of the lattice of lambda theories which satisfies: (i) a restricted form of distributivity, called meet semidistributivity; and (ii) a nontrivial identity in the language of lattices enriched by the relative product of binary relations.
Finite Family Developments
"... Associate to a rewrite system R having rules l → r, its labelled version R ω having rules l ◦ m+1 → r • , for any natural number m m ∈ ω. These rules roughly express that a lefthand side l carrying labels all larger than m can be replaced by its righthand side r carrying labels all smaller than o ..."
Abstract

Cited by 15 (6 self)
 Add to MetaCart
Associate to a rewrite system R having rules l → r, its labelled version R ω having rules l ◦ m+1 → r • , for any natural number m m ∈ ω. These rules roughly express that a lefthand side l carrying labels all larger than m can be replaced by its righthand side r carrying labels all smaller than or equal to m. A rewrite system R enjoys finite family developments (FFD) if R ω is terminating. We show that the class of higher order pattern rewrite systems enjoys FFD, extending earlier results for the lambda calculus and first order term rewrite systems.
Callbyvalue is dual to callbyname reloaded
 In Term rewriting and applications. Lecture Notes in Comput. Sci
, 2005
"... Abstract. We consider the relation of the dual calculus of Wadler (2003) to the λµcalculus of Parigot (1992). We give translations from the λµcalculus into the dual calculus and back again. The translations form an equational correspondence as defined by Sabry and Felleisen (1993). In particular, ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
Abstract. We consider the relation of the dual calculus of Wadler (2003) to the λµcalculus of Parigot (1992). We give translations from the λµcalculus into the dual calculus and back again. The translations form an equational correspondence as defined by Sabry and Felleisen (1993). In particular, translating from λµ to dual and then ‘reloading ’ from dual back into λµ yields a term equal to the original term. Composing the translations with duality on the dual calculus yields an involutive notion of duality on the λµcalculus. A previous notion of duality on the λµcalculus has been suggested by Selinger (2001), but it is not involutive. Note This paper uses color to clarify the relation of types and terms, and of source and target calculi. If the URL below is not in blue please download the color version from
Nonmodularity Results for Lambda Calculus
 Fundamenta Informaticae
, 2001
"... The variety (equational class) of lambda abstraction algebras was introduced to algebraize the untyped lambda calculus in the same way cylindric and polyadic algebras algebraize the firstorder predicate logic. In this paper we prove that the lattice of lambda theories is not modular and that the va ..."
Abstract

Cited by 10 (6 self)
 Add to MetaCart
(Show Context)
The variety (equational class) of lambda abstraction algebras was introduced to algebraize the untyped lambda calculus in the same way cylindric and polyadic algebras algebraize the firstorder predicate logic. In this paper we prove that the lattice of lambda theories is not modular and that the variety generated by the term algebra of a semisensible lambda theory is not congruence modular. Another result of the paper is that the Mal'cev condition for congruence modularity is inconsistent with the lambda theory generated by equating all the unsolvable lambdaterms.
An Analysis of the Impact of Functional Programming Techniques on Genetic Programming
, 1999
"... Genetic Programming (GP) automatically generates computer programs to solve specified problems. It develops programs through the process of a “createtestmodify ” cycle which is similar to the way a human writes programs. There are various functional programming techniques that human programmers c ..."
Abstract

Cited by 9 (0 self)
 Add to MetaCart
Genetic Programming (GP) automatically generates computer programs to solve specified problems. It develops programs through the process of a “createtestmodify ” cycle which is similar to the way a human writes programs. There are various functional programming techniques that human programmers can use to accelerate the program development process. This research investigated the applicability of some of the functional techniques to GP and analyzed their impact on GP performance. Among many important functional techniques, three were chosen to be included in this research, due to their relevance to GP. They are polymorphism, implicit recursion and higherorder functions. To demonstrate their applicability, a GP system was developed with those techniques incorporated. Furthermore, a number of experiments were conducted using the system. The results were then compared to those generated by other GP systems which do not support these functional features. Finally, the program search space of the general evenparity problem was analyzed to explain how these techniques impact GP performance. The experimental results showed that the investigated functional techniques have made GP more powerful in the following ways: 1) polymorphism has enabled GP to solve problems that are very difficult for standard GP to solve, i.e. nth and map programs; 2) higherorder functions and implicit recursion have enhanced GP’s ability in solving the general evenparity problem to a greater degree than with any other known methods. Moreover, the analysis showed that these techniques directed GP to generate program solutions in a way that has never been previously reported. Finally, we provide the guidelines for the application of these techniques to other problems.
Applying Universal Algebra to Lambda Calculus
, 2008
"... The aim of this paper is double. From one side we survey the knowledge we have acquired these last ten years about the lattice of all λtheories ( = equational extensions of untyped λcalculus) and the models of lambda calculus via universal algebra. This includes positive or negative answers to s ..."
Abstract

Cited by 9 (3 self)
 Add to MetaCart
(Show Context)
The aim of this paper is double. From one side we survey the knowledge we have acquired these last ten years about the lattice of all λtheories ( = equational extensions of untyped λcalculus) and the models of lambda calculus via universal algebra. This includes positive or negative answers to several questions raised in these years as well as several independent results, the state of the art about the longstanding open questions concerning the representability of λtheories as theories of models, and 26 open problems. On the other side, against the common belief, we show that lambda calculus and combinatory logic satisfy interesting algebraic properties. In fact the Stone representation theorem for Boolean algebras can be generalized to combinatory algebras and λabstraction algebras. In every combinatory and λabstraction algebra there is a Boolean algebra of central elements (playing the role of idempotent elements in rings). Central elements are used to represent any combinatory and λabstraction algebra as a weak Boolean product of directly indecomposable algebras (i.e., algebras which cannot be decomposed as the Cartesian product of two other nontrivial algebras). Central elements are also used to provide applications of the representation theorem to lambda calculus. We show that the indecomposable semantics (i.e., the semantics of lambda calculus given in terms of models of lambda calculus, which are directly indecomposable as combinatory algebras) includes the continuous, stable and strongly stable semantics, and the term models of all semisensible λtheories. In one of the main results of the paper we show that the indecomposable semantics is equationally incomplete, and this incompleteness is as wide as possible.
Closure Joinpoints: Block Joinpoints without Surprises
"... Block joinpoints allow programmers to explicitly mark regions of base code as “to be advised”, thus avoiding the need to extract the block into a method just for the sake of creating a joinpoint. Block joinpoints appear simple to define and implement. After all, regular block statements in Javalike ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
(Show Context)
Block joinpoints allow programmers to explicitly mark regions of base code as “to be advised”, thus avoiding the need to extract the block into a method just for the sake of creating a joinpoint. Block joinpoints appear simple to define and implement. After all, regular block statements in Javalike languages are constructs wellknown to the programmer and have simple controlflow and dataflow semantics. Our major insight is, however, that by exposing a block of code as a joinpoint, the code is no longer only called in its declaring static context but also from within aspect code. The block effectively becomes a closure, i.e., an anonymous function that may capture values from the enclosing lexical scope. We discuss research on closures that reveals several important design questions that any semantic definition of closures or block joinpoints must answer. In this paper we show that all existing proposals for block joinpoints answer these questions insufficiently, and hence exhibit a semantics either undefined or likely surprising to Java programmers. As a solution, we propose a syntax, semantics, and implementation of Closure Joinpoints, block joinpoints based on closures. As we show, our design decisions yield a semantics that follows the principle of least surprise.