Fundamentals of data structures in PASCAL
Fundamentals of data structures in PASCAL
Structure handling in data-flow systems
IEEE Transactions on Computers - The MIT Press scientific computation series
4th Annual Symposium on Theoretical Aspects of Computer Sciences on STACS 87
SDE 3 Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments
I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Conception, evolution, and application of functional programming languages
ACM Computing Surveys (CSUR)
Token Relabeling in a Tagged Token Data-Flow Architecture
IEEE Transactions on Computers
Introduction to the theory of programming languages
Introduction to the theory of programming languages
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Accumulators: new logic variable abstractions for functional languages
Theoretical Computer Science
The essence of functional programming
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Imperative functional programming
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Highly parallel computing (2nd ed.)
Highly parallel computing (2nd ed.)
ICS '90 Proceedings of the 4th international conference on Supercomputing
The Definition of Standard ML
Computer Architecture and Parallel Processing
Computer Architecture and Parallel Processing
Revised Report on the Algorithmic Language Scheme
Higher-Order and Symbolic Computation
M-Structures: Extending a Parallel, Non-strict, Functional Language with State
Proceedings of the 5th ACM Conference on Functional Programming Languages and Computer Architecture
Exploring the Stream Data Type in SISAL and Other Languages
PACT '93 Proceedings of the IFIP WG10.3. Working Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism
Extending Functional Languages with Stateful Computations
SPDP '96 Proceedings of the 8th IEEE Symposium on Parallel and Distributed Processing (SPDP '96)
Non-strict execution in parallel and distributed computing
International Journal of Parallel Programming
Hi-index | 0.01 |
We describe an approach in which stateful computations can be expressed within the framework of a functional language. We consider algorithms with nondeterministic intermediate results and a deterministic final result which is obtained for any series of intermediate values of some variable shared among parallel tasks or, in other words, the ordering of updates to the variable does not matter. Functional languages normally abstract away from explicit synchronization and exploit parallelism between separate uses of a variable. But in some cases we can relax that requirement with both parallelism and determinate computation. To increase its expressiveness and efficiency for this important class of problems, we propose to extend the Sisal language with state variables encapsulated within stateful functions. We have used Centaur to specify and construct a semantic-based environment. We illustrate the proposed language extension with analysis of several examples, and comparison with other languages.