Results 21 - 30
of
98
The Impact of the Lambda Calculus in Logic and Computer Science
- Bulletin of Symbolic Logic
, 1997
"... One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the represent ..."
Abstract
-
Cited by 17 (0 self)
- Add to MetaCart
One of the most important contributions of A. Church to logic is his invention of the lambda calculus. We present the genesis of this theory and its two major areas of application: the representation of computations and the resulting functional programming languages on the one hand and the representation of reasoning and the resulting systems of computer mathematics on the other hand. Acknowledgement. The following persons provided help in various ways. Erik Barendsen, Jon Barwise, Johan van Benthem, Andreas Blass, Olivier Danvy, Wil Dekkers, Marko van Eekelen, Sol Feferman, Andrzej Filinski, Twan Laan, Jan Kuper, Pierre Lescanne, Hans Mooij, Robert Maron, Rinus Plasmeijer, Randy Pollack, Kristoffer Rose, Richard Shore, Rick Statman and Simon Thompson. Partial support came from the European HCM project Typed lambda calculus (CHRXCT-92-0046), the Esprit Working Group Types (21900) and the Dutch NWO project WINST (612-316-607). 1. Introduction This paper is written to honor Church's gr...
Functional Languages and Graphical User Interfaces -- a review and a case study
, 1994
"... At first sight, I/O in a pure functional language is not as straightforward as in imperative languages. For some years work has been going on to alleviate these problems, and there are now a number of different approaches. The purpose of this report is twofold --- firstly we shall review the problem ..."
Abstract
-
Cited by 15 (1 self)
- Add to MetaCart
At first sight, I/O in a pure functional language is not as straightforward as in imperative languages. For some years work has been going on to alleviate these problems, and there are now a number of different approaches. The purpose of this report is twofold --- firstly we shall review the problems encountered in performing I/O in a functional language and look at some of the ways these might be conquered, and secondly we shall look at some more recent solutions to I/O which encompass graphical interfaces.
Specialization of Functional Logic Programs Based on Needed Narrowing
- Proc. of ICFP'99
, 1999
"... Functional logic languages with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal narrowing strategy and th ..."
Abstract
-
Cited by 14 (9 self)
- Add to MetaCart
Functional logic languages with a complete operational semantics are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction principle of functional languages and the resolution principle of logic languages. Needed narrowing is an optimal narrowing strategy and the basis of several recent functional logic languages. In this paper, we define a partial evaluator for functional logic programs based on needed narrowing. We prove strong correctness of this partial evaluator and show that the nice properties of needed narrowing carry over to the specialization process and the specialized programs. In particular, the structure of the specialized programs provides for the application of optimal evaluation strategies. This is in contrast to other partial evaluation methods for functional logic programs which can change the original program structure in a negative way. Finally, we present some experiments which highlight the practical advantages of our approach.
Abstract Diagnosis of Functional Programs
- LOGIC BASED PROGRAM SYNTHESIS AND TRANSFORMATION – 12TH INTERNATIONAL WORKSHOP, LOPSTR 2002, REVISED SELECTED PAPERS, VOLUME 2664 OF LECTURE NOTES IN COMPUTER SCIENCE
, 2002
"... We present a generic scheme for the declarative debugging of functional programs modeled as term rewriting systems. We associate to our programs a semantics based on a (continuous) immediate consequence operator, T R, which models the (values/normal forms) semantics of R. Then, we develop an effec ..."
Abstract
-
Cited by 14 (6 self)
- Add to MetaCart
We present a generic scheme for the declarative debugging of functional programs modeled as term rewriting systems. We associate to our programs a semantics based on a (continuous) immediate consequence operator, T R, which models the (values/normal forms) semantics of R. Then, we develop an effective debugging methodology which is based on abstract interpretation: by approximating the intended specification of the semantics of R we derive a finitely terminating bottom-up diagnosis method, which can be used statically. Our debugging framework does not require the user to either provide error symptoms in advance or answer questions concerning program correctness. We have made available a prototypical implementation in Haskell and have tested it on some non trivial examples.
Efficient Distributed Memory Implementation of a Data Parallel Functional Language
- in Proceedings of PARLE '94, LNCS 817
, 1994
"... . We discuss why existing implementations of functional languages on MIMD-machines with distributed memory are slow. This is done by comparing the behavior of a functional program with a corresponding Occam program. The main reason is that functional languages give insufficient means to control para ..."
Abstract
-
Cited by 13 (11 self)
- Add to MetaCart
. We discuss why existing implementations of functional languages on MIMD-machines with distributed memory are slow. This is done by comparing the behavior of a functional program with a corresponding Occam program. The main reason is that functional languages give insufficient means to control parallelism and communication. Our approach is to support data parallelism by providing a set of primitives on arrays which allow the user to control the parallelism and communication on a high level, disabling problems like deadlocks. Only one unique version of an array may be referenced at a time. This restriction allows arrays to be updated in place and enables the user to control the space requirements of the program. The uniqueness of arrays is checked by the compiler. Experimental results demonstrate the efficiency of our data parallel functional language. 1 Introduction MIMD machines with distributed memory offer high computation power at relatively low costs. On the other hand, the corr...
Linear Behaviour Of Term Graph Rewriting Programs
- Proc. ACM SAC `95
"... The generalised term graph rewriting computational model is exploited to implement concurrent languages based on Girard's Linear Logic (LL). In particular a fragment of LL is identified which is able to serve as a "process calculus" and on which the design of a number of languages can be based. It i ..."
Abstract
-
Cited by 12 (12 self)
- Add to MetaCart
The generalised term graph rewriting computational model is exploited to implement concurrent languages based on Girard's Linear Logic (LL). In particular a fragment of LL is identified which is able to serve as a "process calculus" and on which the design of a number of languages can be based. It is then shown how this fragment can be mapped onto equivalent sets of graph rewriting rules that both preserve the functionality of the LL connectives and also exploit the properties of linearity for efficient implementation on a distributed architecture. Notions such as channels, production and consumption of messages, and N-to-N communication between agents, are interpreted in the world of (term) graph rewriting. This work serves two purposes: i) to extend the notion of Term Graph Rewriting as a generalised computational model for the case of linear concurrent languages, and ii) to act as an initial investigation towards a fully linear term graph rewriting model of computation able to be im...
Functional Skeletons Generate Process Topologies in Eden
- In: Int. Symp. on Programming Languages, Implementations Logics and Programs PLILP’96
, 1996
"... . We present a collection of skeletons that are appropriate to instantiate process systems in the functional-concurrent language Eden [BLOM96]. Eden is a functional language providing facilities for the explicit definition and instantiation of processes. Skeletons in this language are just highe ..."
Abstract
-
Cited by 12 (2 self)
- Add to MetaCart
. We present a collection of skeletons that are appropriate to instantiate process systems in the functional-concurrent language Eden [BLOM96]. Eden is a functional language providing facilities for the explicit definition and instantiation of processes. Skeletons in this language are just higher order functions having process definitions as parameters. We introduce skeletons for both transformational (i.e. deterministic) and reactive (usually non deterministic) process topologies and illustrate their use by applying them to several examples. Some pointers to the skeletons literature are also given. Keywords: Functional programming, concurrent programming, parallel programming, skeletons, higher order functions. 1 Introduction Functional languages are often said to be amenable for implicit parallelism because referential transparency allows evaluating expressions in any order, or even in parallel, without changing the denotational meaning of programs. However, to exploit pa...
Single Assignment C - Entwurf und Implementierung einer C-Variante mit spezieller Unterstützung shape-invarianter Array-Operationen
, 1996
"... ..."
Information Disclosure in Evolving Information Systems: Taking a Shot at a Moving Target
, 1998
"... In this paper, we introduce a query language for evolving information systems. Evolving information systems go beyond the capacity of conventional database systems, not only as they incorporate a time dimension, but also since they allow all aspects of the system to evolve. The introduced languag ..."
Abstract
-
Cited by 11 (10 self)
- Add to MetaCart
In this paper, we introduce a query language for evolving information systems. Evolving information systems go beyond the capacity of conventional database systems, not only as they incorporate a time dimension, but also since they allow all aspects of the system to evolve. The introduced language is related to the philosophy underlying NIAM (Natural language Information Analysis Method). This method investigates the grammar of the communication in the Universe of Discourse. Usually this grammar is depicted as an information structure diagram (NIAM or ER schema). This paper describes the language Elisa-D, which is based on this grammar. As a result, expressions in this language have a direct meaning in the universe of discourse, while natural language expressions are easily formalised in this language. keywords: Evolving Information System, Conceptual Query Language EVORM ER, PSM, Elisa-D 1 Introduction Flexible behaviour of an organisation may entail a rapidly changing info...
Program Transformations using ASF+SDF
, 1995
"... . This paper describes the ongoing work in the design and implementation of a program transformation system for educational purposes. The system is based on Asf+Sdf for the implementation of the application of transformation rules and on Seal for the implementation of the user interface. The transfo ..."
Abstract
-
Cited by 11 (4 self)
- Add to MetaCart
. This paper describes the ongoing work in the design and implementation of a program transformation system for educational purposes. The system is based on Asf+Sdf for the implementation of the application of transformation rules and on Seal for the implementation of the user interface. The transformation rules are given in a mixture of CIP-L and Clean: Disciplean. The Disciplean transformation rules are not `hard-wired' in the system but they are stored in a kind of data base and they are available via an editor. This allows a flexible way of extending the set of transformation rules. 1 Introduction The research area of Software Engineering studies the methods and tools applicable to the development of correct and efficient programs from problem specifications. In this paper the problem specification is assumed to be the formal outcome of a requirements engineering process [Par91] applied to an informal request from some customer. There are many ways to obtain a correct and efficien...

