Speedup Versus Efficiency in Parallel Systems
IEEE Transactions on Computers
The semantics of lazy functional languages
Theoretical Computer Science
The semantics of programming languages: an elementary introduction using structural operational semantics
Research topics in functional programming
A semantics for ML concurrency primitives
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An adequate operational semantics of sharing in lazy evaluation
ESOP'92 Symposium proceedings on 4th European symposium on programming
A natural semantics for lazy evaluation
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The semantics of future and its use in program optimization
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A call-by-need lambda calculus
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
GUM: a portable parallel implementation of Haskell
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
The semantics of Scheme with future
Proceedings of the first ACM SIGPLAN international conference on Functional programming
A provable time and space efficient implementation of NESL
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Space-efficient scheduling of parallelism with synchronization variables
Proceedings of the ninth annual ACM symposium on Parallel algorithms and architectures
Space-Efficient Scheduling of Multithreaded Computations
SIAM Journal on Computing
GOFFIN: higher-order functions meet concurrent constraints
Science of Computer Programming - Special issue on concurrent constraint programming
Improvement in a lazy context: an operational theory for call-by-need
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A provably time-efficient parallel implementation of full speculation
ACM Transactions on Programming Languages and Systems (TOPLAS)
ESOP '94 Proceedings of the 5th European Symposium on Programming: Programming Languages and Systems
An Abstract Machine for Memory Management
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
An Abstract Machine for Parallel Lazy Evaluation
SFP '99 Selected papers from the 1st Scottish Functional Programming Workshop (SFP99)
A distributed operational semantics for a parallel functional language
Selected papers from the 2nd Scottish Functional Programming Workshop (SFP00)
Algorithm + strategy = parallelism
Journal of Functional Programming
Deriving a lazy abstract machine
Journal of Functional Programming
Parallel and Distributed Haskells
Journal of Functional Programming
Parallel functional programming in Eden
Journal of Functional Programming
Using Maude and Its Strategies for Defining a Framework for Analyzing Eden Semantics
Electronic Notes in Theoretical Computer Science (ENTCS)
Observing intermediate structures in a parallel lazy functional language
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
A dynamically customizable process-centered evaluation model
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
To be or not to be ...lazy (In a Parallel Context)
Electronic Notes in Theoretical Computer Science (ENTCS)
NiMoToons: a Totally Graphic Workbench for Program Tuning and Experimentation
Electronic Notes in Theoretical Computer Science (ENTCS)
Similarity implies equivalence in a class of non-deterministic call-by-need lambda calculi
Information and Computation
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Relating function spaces to resourced function spaces
Proceedings of the 2011 ACM Symposium on Applied Computing
A contextual semantics for concurrent Haskell with futures
Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming
A monad for deterministic parallelism
Proceedings of the 4th ACM symposium on Haskell
Proceedings of the fifth international workshop on High-level parallel programming and applications
Proof tool support for explicit strictness
IFL'05 Proceedings of the 17th international conference on Implementation and Application of Functional Languages
Trends in Trends in Functional Programming 1999/2000 versus 2007/2008
Higher-Order and Symbolic Computation
A locally nameless representation for a natural semantics for lazy evaluation
ICTAC'12 Proceedings of the 9th international conference on Theoretical Aspects of Computing
Hi-index | 0.00 |
We present an operational semantics for parallel lazy evaluation that accurately models the parallel behaviour of the non-strict parallel functional language GpH. Parallelism is modelled synchronously, that is, single reductions are carried out separately then combined before proceeding to the next set of reductions. Consequently the semantics has two levels, with transition rules for individual threads at one level and combining rules at the other. Each parallel thread is modelled by a binding labelled with an indication of its activity status. To the best of our knowledge this is the first semantics that models such thread states. A set of labelled bindings corresponds to a heap and is used to model sharing.The semantics is set at a higher level of abstraction than an abstract machine and is therefore more manageable for proofs about programs rather than implementations. At the same time, it is sufficiently low level to allow us to reason about programs in terms of parallelism (i.e. the number of processors used) as well as work and run-time with different numbers of processors.The framework used by the semantics is sufficiently flexible and general that it can easily be adapted to express other evaluation models such as sequential call-by-need, speculative evaluation, non-deterministic choice and others.