Results 1 - 10
of
13
Pattern matching with dependent types
- In Proceedings of the Workshop on Types for Proofs and Programs
, 1992
"... ..."
Inductively defined types in the calculus of constructions
, 1990
"... We define the notion of an inductively defined type in the Calculus of Constructions and show how inductively defined types can be represented by closed types. We show that all primitive recursive functionals over these inductively defined types are also representable. This generalizes work by Böhm ..."
Abstract
-
Cited by 39 (2 self)
- Add to MetaCart
We define the notion of an inductively defined type in the Calculus of Constructions and show how inductively defined types can be represented by closed types. We show that all primitive recursive functionals over these inductively defined types are also representable. This generalizes work by Böhm & Berarducci on synthesis of functions on term algebras in the second-order polymorphic λ-calculus (F2). We give several applications of this generalization, including a representation of F2-programs in F3, along with a definition of functions reify, reflect, and eval for F2 in F3. We also show how to define induction over inductively defined types and sketch some results that show that the extension of the Calculus of Construction by induction principles does not alter the set of functions in its computational fragment, Fω. This is because a proof by induction can be realized by primitive recursion, which is already definable in Fω. 1
On Two Forms of Structural Recursion
- in "LNCS 893: Proceedings of 5th International Conference on Database Theory," 111--124
, 1995
"... . We investigate and compare two forms of recursion on sets for querying nested collections. The first one is called sri and it corresponds to sequential processing of data. The second one is called sru and it corresponds to data-parallel processing. A uniform first-order translation from sru into s ..."
Abstract
-
Cited by 16 (11 self)
- Add to MetaCart
. We investigate and compare two forms of recursion on sets for querying nested collections. The first one is called sri and it corresponds to sequential processing of data. The second one is called sru and it corresponds to data-parallel processing. A uniform first-order translation from sru into sri was known from previous work. The converse translation is by necessity more difficult and we have obtained three main results concerning it. First, we exhibit a uniform translation of sri queries into sru queries over the nested relational algebra. We observe that this translation maps PTIME algorithms into exponential-space queries. The second result proves that any uniform translation of sri queries into sru queries over the nested relational algebra must map some PTIME queries into exponential-space ones. In fact, in the presence of certain external functions, we provide a PTIME sri query for which any equivalent sru query requires exponential space. Thus, as a mechanism for implemen...
Continuous Functions and Parallel Algorithms on Concrete Data Structures
- IN MFPS'91, L.N.C.S
, 1991
"... We report progress in two closely related lines of research: the semantic study of sequentiality and parallelism, and the development of a theory of intensional semantics. We generalize Kahn and Plotkin's concrete data structures to obtain a cartesian closed category of generalized concrete data str ..."
Abstract
-
Cited by 12 (2 self)
- Add to MetaCart
We report progress in two closely related lines of research: the semantic study of sequentiality and parallelism, and the development of a theory of intensional semantics. We generalize Kahn and Plotkin's concrete data structures to obtain a cartesian closed category of generalized concrete data structures and continuous functions. The generalized framework continues to support a definition of sequential functions. Using this ccc as an extensional framework, we define an intensional framework --- a ccc of generalized concrete data structures and parallel algorithms. This construction is an instance of a more general and more widely applicable category-theoretic approach to intensional semantics, encapsulating a notion of intensional behavior as a computational comonad, and employing the co-Kleisli category as an intensional framework. We discuss the relationship between parallel algorithms and continuous functions, and supply some operational intuition for the parallel algorithms. We s...
Towards a theory of parallel algorithms on concrete data structures
- In Semantics for Concurrency, Leicester
, 1990
"... The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of DARPA or the U.S. government. Building on Kahn and Plotkin’s theory of concrete data structures and sequential functions, ..."
Abstract
-
Cited by 11 (6 self)
- Add to MetaCart
The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of DARPA or the U.S. government. Building on Kahn and Plotkin’s theory of concrete data structures and sequential functions, Berry and Curien defined an intensional model of sequential algorithms between concrete data structures. In this paper we report on an attempt to develop a similar intensional model of concurrent computation. We present a notion of parallel algorithm between concrete data structures, together with suitable application and currying operations. We define an intensional strictness ordering on parallel algorithms, with respect to which application is well behaved (at first order types). We define the input-output function computed by a parallel algorithm, and we show that every parallel algorithm computes a continuous function. Thus, a parallel algorithm may be viewed as a continuous function together with a parallel computation strategy. In contrast, a Berry-
Sequential Algorithms, Deterministic Parallelism, and Intensional Expressiveness
- Proc. ACM Symposium on Principles of Programming Languages
, 1995
"... We call language L 1 intensionally more expressive than L 2 if there are functions which can be computed faster in L 1 than in L 2 . We study the intensional expressiveness of several languages: the Berry-Curien programming language of sequential algorithms, CDS0, a deterministic parallel extension ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
We call language L 1 intensionally more expressive than L 2 if there are functions which can be computed faster in L 1 than in L 2 . We study the intensional expressiveness of several languages: the Berry-Curien programming language of sequential algorithms, CDS0, a deterministic parallel extension to it, named CDSP, and various parallel extensions to the functional programming language PCF. The paper consists of two parts. In the first part, we show that CDS0 can compute the minimum of two numbers n and p in unary representation in time O(min(n; p)). However, it cannot compute a "natural" version of this function. CDSP allows us to compute this function, as well as functions like parallel-or. This work can be seen as an extension of the work of Colson [7, 8] with primitive recursive algorithms to the setting of sequential algorithms. In the second part, we show that deterministic parallelism adds intensional expressiveness, settling a "folk" conjecture from the literature in the nega...
Extending the Loop Language with Higher-Order Procedural Variables
, 2007
"... We extend Meyer and Ritchie’s Loop language with higher-order procedures and procedural variables and we show that the resulting programming language (called Loop ω) is a natural imperative counterpart of Gödel System T. The argument is two-fold: 1. we define a translation of the Loop ω language int ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
We extend Meyer and Ritchie’s Loop language with higher-order procedures and procedural variables and we show that the resulting programming language (called Loop ω) is a natural imperative counterpart of Gödel System T. The argument is two-fold: 1. we define a translation of the Loop ω language into System T and we prove that this translation actually provides a lock-step simulation, 2. using a converse translation, we show that Loop ω is expressive enough to encode any term of System T. Moreover, we define the “iteration rank ” of a Loop ω program, which corresponds to the classical notion of “recursion rank ” in System T, and we show that both translations preserve ranks. Two applications of these results in the area of implicit complexity are described. 1
On Primitive Recursive Algorithms And The Greatest Common Divisor Function
, 2003
"... We establish linear lower bounds for the complexity of non-trivial, primitive recursive algorithms from piecewise linear given functions. The main corollary is that logtime algorithms for the greatest common divisor from such givens (such as Stein's) cannot be matched in e#ciency by primitive recurs ..."
Abstract
-
Cited by 4 (2 self)
- Add to MetaCart
We establish linear lower bounds for the complexity of non-trivial, primitive recursive algorithms from piecewise linear given functions. The main corollary is that logtime algorithms for the greatest common divisor from such givens (such as Stein's) cannot be matched in e#ciency by primitive recursive algorithms from the same given functions. The question is left open for the Euclidean algorithm, which assumes the remainder function. In 1991, Colson [3] proved a remarkable theorem about the limitations of primitive recursive algorithms, which has the following consequence: Colson's Corollary. If a primitive recursive derivation of min(x, y) is expressed faithfully in a programming language, then one of the two computations min(1, 1000) and min(1000, 1) will take at least 1000 steps.
Theorems of Péter and Parsons in Computer Programming
- Proceedings of CSL'98, number 1584 in LNCS
, 1999
"... This paper describes principles behind a declarative programming language CL (Clausal Language) which comes with its own proof system for proving properties of defined functions and predicates. We use our own implementation of CL in three courses in the first and second years of undergraduate study. ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper describes principles behind a declarative programming language CL (Clausal Language) which comes with its own proof system for proving properties of defined functions and predicates. We use our own implementation of CL in three courses in the first and second years of undergraduate study. By unifying the domain of LISP's S-expressions with the domain N of natural numbers we have combined the LISP-like simplicity of coding with the simplicity of semantics. We deal just with functions over N within the framework of formal Peano arithmetic. We believe that most of the time this is as much as is needed. CL is thus an extremely simple language which is completely based in mathematics.
On the Expressive Power of the Loop Language
- Nordic Journal of Computing
, 2006
"... imperative programming language similar to the Loop language described by Meyer and Ritchie ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
imperative programming language similar to the Loop language described by Meyer and Ritchie

