Results 11 -
18 of
18
Functional Programming Formalisms for OODB Methods
- IN PROC. OF THE NATO ASI SUMMER SCHOOL ON OODBS, TURKEY
, 1993
"... Two well-studied functional formalisms in the theory of programming languages are (1) applicative program schemas and (2) typed lambda calculi. We relate these programming formalisms to object-oriented databases (OODBs) and in particular to the description of methods. The language of method schemas ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
Two well-studied functional formalisms in the theory of programming languages are (1) applicative program schemas and (2) typed lambda calculi. We relate these programming formalisms to object-oriented databases (OODBs) and in particular to the description of methods. The language of method schemas (MS) is a programming formalism based on applicative program schemas with additional key object-oriented features such as classes, methods, inheritance, name overloading, and late binding. From [4], we present its syntax and semantics and survey the state-of-the-art of consistency checking or signature inference for this language, a problem which can be used in studying database schema evolution. We then relate MS with more conventional database query languages by showing that its expressive power over finite ordered databases is PTIME. Despite its simplicity and applicability, MS does not directly model the tuple, set, and list complex structures that are quite common in databases. Also, it does not treat functions as objects, i.e., methods are different from objects. It is possible to achieve these two capabilities using the typed lambda calculus with equality (TLC=) as a database query language, even without any objectoriented features. From [25], we illustrate how this pure functional language subsumes most conventional database query languages including the relational calculus/algebra, Datalog (with or without negation), and the complex object calculus/algebra (with or without powerset). In conclusion, we argue that the appropriate programming formalism for OODBs must be a functional language that combines the object-oriented MS with the expressive TLC= and facilitates operations on sets of objects.
A calculus of recursive-parallel BSP programs
, 1998
"... . An extension of the -calculus called BS is introduced as a formal basis for functional languages expressing bulk synchronous parallel algorithms. A local confluence result is explained and a call-by-value evaluation strategy is defined. The operational meaning of the calculus is illustrated by two ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
. An extension of the -calculus called BS is introduced as a formal basis for functional languages expressing bulk synchronous parallel algorithms. A local confluence result is explained and a call-by-value evaluation strategy is defined. The operational meaning of the calculus is illustrated by two programs defining the binary fold algorithm, one flat and one parallel-recursive. 1 High-level languages and parallel programming If parallel programming is to become as widespread as sequential programming, the languages supporting it should incorporate all the standard abstraction mechanisms including pure functions and recursion. Yet for such languages to be practical scalable programming tools, abstraction should not come at the price of predictable performance. Unfortunately many parallel languages don't describe data placement so that performance is not predictable as a function of the source program. This is because data placement depends on the language implementation, not its sema...
Decidability of Bounded Higher-Order Unification
, 2002
"... It is shown that unifiability of terms in the simply typed lambda calculus with beta and eta rules becomes decidable if there is a bound on the number of bound variables and lambdas in a unifier in eta-expanded beta-normal form. ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
It is shown that unifiability of terms in the simply typed lambda calculus with beta and eta rules becomes decidable if there is a bound on the number of bound variables and lambdas in a unifier in eta-expanded beta-normal form.
Implementing β-Reduction by Hypergraph Rewriting
, 1995
"... The aim of this paper is to implement the beta-reduction in the lambda-calculus with a hypergraph rewriting mechanism called collapsed lambda-tree rewriting. It turns out that collapsed lambda-tree rewriting is sound with respect to beta-reduction and complete with respect to the Gross-Knuth strateg ..."
Abstract
- Add to MetaCart
The aim of this paper is to implement the beta-reduction in the lambda-calculus with a hypergraph rewriting mechanism called collapsed lambda-tree rewriting. It turns out that collapsed lambda-tree rewriting is sound with respect to beta-reduction and complete with respect to the Gross-Knuth strategy. As a consequence, there exists a normal form for a collapsed lambda-tree if and only if there exists a normal form for the represented lambda-term.
Bracket abstraction in the combinator system Cl(K)
"... Translations from lambda calculi to combinatory logics can be used to avoid some implementational problems of the former systems. However, this scheme can only be efficient if the translation produces short output with a small number of combinators, in order to reduce the time and transient storage ..."
Abstract
- Add to MetaCart
Translations from lambda calculi to combinatory logics can be used to avoid some implementational problems of the former systems. However, this scheme can only be efficient if the translation produces short output with a small number of combinators, in order to reduce the time and transient storage space spent during reduction of combinatory terms. In this paper we present a combinatory system and an abstraction algorithm, based on the original bracket abstraction operator of Schonfinkel [9]. The algorithm introduces at most one combinator for each abstraction in the initial lambda term. This provides the system with quite good properties in terms of memory space as well as in terms of length of evaluations. We prove the correctness of the algorithm and establish some relations between the combinatory system and the lambda calculus. 1 Introduction Combinatory Logic may be regarded as an alternative notation for the Lambda Calculus, but without using bound variables. As such, systems o...
An Interactive Viewpoint on the Role of UML
, 2000
"... The role of the Unified Modeling Language (UML) is to model interactive systems, whose behaviors emerge from the interaction of their components with each other and with the environment. Unlike traditional (algorithmic) computation, interactive computation involves infinite and dynamic (late binding ..."
Abstract
- Add to MetaCart
The role of the Unified Modeling Language (UML) is to model interactive systems, whose behaviors emerge from the interaction of their components with each other and with the environment. Unlike traditional (algorithmic) computation, interactive computation involves infinite and dynamic (late binding) input/output streams. Algorithmic tools and models do not suffice to express the behavior of today's interactive systems, which are capable of self-reconfiguring and adapting to their environment. Whereas procedural languages may express precise designs of closed processes, UML provides support for the inherently open-ended preliminary steps of system analysis and specification, which are becoming increasingly complex. Interactive systems require dynamic models where interaction has first-class status, and where the environment is modeled explicitly, as actors whose roles constrain the input patterns. UML's interaction-based approach to system modeling fits well with the encapsulation-ba...
Calculus Af2@
"... Contents 1 Introduction 3 1.1 History : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 1.2 Overview of lambda calculus : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 2 Lambda Expressions 5 2.1 Syntax of expr ..."
Abstract
- Add to MetaCart
Contents 1 Introduction 3 1.1 History : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 3 1.2 Overview of lambda calculus : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 4 2 Lambda Expressions 5 2.1 Syntax of expressions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.2 Notational conventions : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.3 Binding : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 5 2.4 Lambda abstraction in Lisp and Algol : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 6 3 Equivalence and Substitution 7 3.1 Axioms of Equivalence : : : : : : : : : : : : : : : : : : : : :
Proof-Theoretic Notions for Software Maintenance
, 2000
"... In this report we give an outline how proof-theoretic notions can be useful for questions related to software maintenance. ..."
Abstract
- Add to MetaCart
In this report we give an outline how proof-theoretic notions can be useful for questions related to software maintenance.

