10,826 research outputs found
Structure and Properties of Traces for Functional Programs
The tracer Hat records in a detailed trace the computation of a program written in the lazy functional language Haskell. The trace can then be viewed in various ways to support program comprehension and debugging. The trace was named the augmented redex trail. Its structure was inspired by standard graph rewriting implementations of functional languages. Here we describe a model of the trace that captures its essential properties and allows formal reasoning. The trace is a graph constructed by graph rewriting but goes beyond simple term graphs. Although the trace is a graph whose structure is independent of any rewriting strategy, we define the trace inductively, thus giving us a powerful method for proving its properties
Non-symmetric Jacobi and Wilson type polynomials
Consider a root system of type on the real line with
general positive multiplicities. The Cherednik-Opdam transform defines a
unitary operator from an -space on to a -space of
-valued functions on with the Harish-Chandra measure
|c(\lam)|^{-2}d\lam.
By introducing a weight function of the form \cosh^{-\sig}(t)\tanh^{2k} t
on we find an orthogonal basis for the -space on
consisting of even and odd functions expressed in terms of the Jacobi
polynomials (for each fixed \sig and ). We find a Rodrigues type formula
for the functions in terms of the Cherednik operator. We compute explicitly
their Cherednik-Opdam transforms. We discover thus a new family of -valued orthogonal polynomials. In the special case when the even
polynomials become Wilson polynomials, and the corresponding result was proved
earlier by Koornwinder
Needed Computations Shortcutting Needed Steps
We define a compilation scheme for a constructor-based, strongly-sequential,
graph rewriting system which shortcuts some needed steps. The object code is
another constructor-based graph rewriting system. This system is normalizing
for the original system when using an innermost strategy. Consequently, the
object code can be easily implemented by eager functions in a variety of
programming languages. We modify this object code in a way that avoids total or
partial construction of the contracta of some needed steps of a computation.
When computing normal forms in this way, both memory consumption and execution
time are reduced compared to ordinary rewriting computations in the original
system.Comment: In Proceedings TERMGRAPH 2014, arXiv:1505.0681
Infinitary Combinatory Reduction Systems: Normalising Reduction Strategies
We study normalising reduction strategies for infinitary Combinatory
Reduction Systems (iCRSs). We prove that all fair, outermost-fair, and
needed-fair strategies are normalising for orthogonal, fully-extended iCRSs.
These facts properly generalise a number of results on normalising strategies
in first-order infinitary rewriting and provide the first examples of
normalising strategies for infinitary lambda calculus
The Sigma-Semantics: A Comprehensive Semantics for Functional Programs
A comprehensive semantics for functional programs is presented, which generalizes the well-known call-by-value and call-by-name semantics. By permitting a separate choice between call-by value and call-by-name for every argument position of every function and parameterizing the semantics by this choice we abstract from the parameter-passing mechanism. Thus common and distinguishing features of all instances of the sigma-semantics, especially call-by-value and call-by-name semantics, are highlighted. Furthermore, a property can be validated for all instances of the sigma-semantics by a single proof. This is employed for proving the equivalence of the given denotational (fixed-point based) and two operational (reduction based) definitions of the sigma-semantics. We present and apply means for very simple proofs of equivalence with the denotational sigma-semantics for a large class of reduction-based sigma-semantics. Our basis are simple first-order constructor-based functional programs with patterns
- ā¦