1,347 research outputs found
Monadic parser combinators
In functional programming, a popular approach to building recursive descent parsers is to model parsers as functions, and to define higher-order functions (or combinators) that implement grammar constructions such as sequencing, choice, and repetition. Such parsers form an instance of a monad, an algebraic structure from mathematics that has proved useful for addressing a number of computational problems. The purpose of this report is to provide a step-by-step tutorial on the monadic approach to building functional parsers, and to explain some of the benefits that result from exploiting monads. No prior knowledge of parser combinators or of monads is assumed. Indeed, this report can also be viewed as a first introduction to the use of monads in programming
A direct proof of the confluence of combinatory strong reduction
I give a proof of the confluence of combinatory strong reduction that does
not use the one of lambda-calculus. I also give simple and direct proofs of a
standardization theorem for this reduction and the strong normalization of
simply typed terms.Comment: To appear in TC
Observational Equivalence and Full Abstraction in the Symmetric Interaction Combinators
The symmetric interaction combinators are an equally expressive variant of
Lafont's interaction combinators. They are a graph-rewriting model of
deterministic computation. We define two notions of observational equivalence
for them, analogous to normal form and head normal form equivalence in the
lambda-calculus. Then, we prove a full abstraction result for each of the two
equivalences. This is obtained by interpreting nets as certain subsets of the
Cantor space, called edifices, which play the same role as Boehm trees in the
theory of the lambda-calculus
Programs as Polypeptides
We describe a visual programming language for defining behaviors manifested
by reified actors in a 2D virtual world that can be compiled into programs
comprised of sequences of combinators that are themselves reified as actors.
This makes it possible to build programs that build programs from components of
a few fixed types delivered by diffusion using processes that resemble
chemistry as much as computation.Comment: in European Conference on Artificial Life (ECAL '15), York, UK, 201
Action semantics in retrospect
This paper is a themed account of the action semantics project, which Peter Mosses has led since the 1980s. It explains his motivations for developing action semantics, the inspirations behind its design, and the foundations of action semantics based on unified algebras. It goes on to outline some applications of action semantics to describe real programming languages, and some efforts to implement programming languages using action semantics directed compiler generation. It concludes by outlining more recent developments and reflecting on the success of the action semantics project
- …