MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Parallel logic programming in PARLOG: the language and its implementation
Parallel logic programming in PARLOG: the language and its implementation
Programming in Prolog
Parallel program design: a foundation
Parallel program design: a foundation
Parallel logic programming techniques
Parallel logic programming techniques
An abstract machine for the implementation of PARLOG on uniprocessors
New Generation Computing
The composition of concurrent programs
Proceedings of the 1989 ACM/IEEE conference on Supercomputing
How to write parallel programs: a first course
How to write parallel programs: a first course
Parallel programming with coordination structures
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Strand: new concepts in parallel programming
Strand: new concepts in parallel programming
Concurrency: simple concepts and powerful tools
The Computer Journal - On concurrent logic programming
Parallel-program transformation using a metalanguage
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Examples in program composition
Beauty is our business
Tools and techniques for performance measurement and performance improvement in parallel programs
Tools and techniques for performance measurement and performance improvement in parallel programs
Algorithmic skeletons: structured management of parallel computation
Algorithmic skeletons: structured management of parallel computation
An introduction to parallel programming
An introduction to parallel programming
Parallel ocean general circulation modeling
Proceedings of the eleventh annual international conference of the Center for Nonlinear Studies on Experimental mathematics : computational issues in nonlinear science: computational issues in nonlinear science
Garbage Collection of Linked Data Structures
ACM Computing Surveys (CSUR)
Communications of the ACM
Communicating sequential processes
Communications of the ACM
Guarded commands, nondeterminacy and formal derivation of programs
Communications of the ACM
Functional Programming for Loosely-Coupled Multiprocessors
Functional Programming for Loosely-Coupled Multiprocessors
Functional Programming
Portable Programs for Parallel Processors
Portable Programs for Parallel Processors
Automatic Generation of Self-Scheduling Programs
IEEE Transactions on Parallel and Distributed Systems
A relational language for parallel programming
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
Rabbit: A Compiler for Scheme
Generalized Communicators in the Message Passing Interface
IEEE Transactions on Parallel and Distributed Systems
Logic Channels: A Coordination Approach to Distributed Programming
IPPS '97 Proceedings of the 11th International Symposium on Parallel Processing
Algorithm + strategy = parallelism
Journal of Functional Programming
Hi-index | 0.00 |
We describe a compilation system for the concurrent programming language Program Composition Notation (PCN). This notation provides a single-assignment programming model that permits concurrent-programming concerns such as decomposition, communication, synchronization, mapping, granularity, and load balancing to be addressed separately in a design. PCN is also extensible with programmer-defined operators, allowing common abstractions to be encapsulated and reused in different contexts.The compilation system incorporates a concurrent-transformation system that allows abstractions to be defined through concurrent source-to-source transformations; these convert programmer-defined operators into a core notation. Run-time techniques allow the core notation to be compiled into a simple concurrent abstract machine which can be implemented in a portable fashion using a run-time library. The abstract machine provides a uniform treatment of single-assignment and mutable data structures, allowing data sharing between concurrent and sequential program segments and permitting integration of sequential C and Fortran code into concurrent programs.This compilation system forms part of a program development toolkit that operates on a wide variety of networked workstations, multicomputers, and shared-memory multiprocessors. The toolkit has been used both to develop substantial applications and to teach introductory concurrent-programming classes, including a freshman course at Caltech.