The Manchester prototype dataflow computer
Communications of the ACM - Special section on computer architecture
on Parallel MIMD computation: HEP supercomputer and its applications
on Parallel MIMD computation: HEP supercomputer and its applications
DI: an interactive debugging interpreter for applicative languages
SIGPLAN '87 Papers of the Symposium on Interpreters and interpretive techniques
Copy elimination in single assignment languages
Copy elimination in single assignment languages
The aggregate update problem in functional programming systems
POPL '85 Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A semantic model of reference counting and its abstraction (detailed summary)
LFP '86 Proceedings of the 1986 ACM conference on LISP and functional programming
Communications of the ACM
VAL- ORIENTED ALGORITHMIC LANGUAGE, PRELIMINARY REFERENCE MANUAL
VAL- ORIENTED ALGORITHMIC LANGUAGE, PRELIMINARY REFERENCE MANUAL
A portable machine-independent global optimizer--design and measurements
A portable machine-independent global optimizer--design and measurements
Bulldog: a compiler for vliw architectures (parallel computing, reduced-instruction-set, trace scheduling, scientific)
On program restructuring, scheduling, and communication for parallel processor systems
On program restructuring, scheduling, and communication for parallel processor systems
How to make destructive updates less destructive
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Shallow binding makes functional arrays fast
ACM SIGPLAN Notices
POSC—a partitioning and optimizing SISAL compiler
ICS '90 Proceedings of the 4th international conference on Supercomputing
Declarative aspects of memory management in the concurrent collections parallel programming model
Proceedings of the 4th workshop on Declarative aspects of multicore programming
Hi-index | 0.00 |
Functional and single assignment languages have semantically pure features that do not permit side effects. This lack of side effects makes detection of parallelism in programs much easier. However, the same property poses a challenge in implementing these languages efficiently. A preliminary implementation of a compiler for the single assignment language, SISAL, is described. The compiler uses reference counts for memory management and copy avoidance. Performance results on a wide range of benchmark programs show that SISAL programs compiled by our implementation run 2-3 times slower on average than the same programs written in C, Pascal, and Fortran, and orders of magnitude faster than other implementations of single assignment languages. Extensions of these techniques for multiprocessor implementations are proposed.