|
ABSTRACT
We present a new approach to programming languages for parallel computers that uses an effect system to discover expression scheduling constraints. This effect system is part of a 'kinded' type system with three base kinds: types, which describe the value that an expression may return; effects, which describe the side-effects that an expression may have; and regions, which describe the area of the store in which side-effects may occur. Types, effects and regions are collectively called descriptions.
Expressions can be abstracted over any kind of description variable -- this permits type, effect and region polymorphism. Unobservable side-effects can be masked by the effect system; an effect soundness property guarantees that the effects computed statically by the effect system are a conservative approximation of the actual side-effects that a given expression may have.
The effect system we describe performs certain kinds of side-effect analysis that were not previously feasible. Experimental data from the programming language FX indicate that an effect system can be used effectively to compile programs for parallel computers.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
Arv87
|
t,~xecuting a Program on the MIT Tagged- Token Dataflow Architecture, Arvind, Rishiyur S. Nikhil, MIT LCS Computation Structures Group Memo No. 271 (March 1987)
|
 |
Ban79
|
|
 |
Bar78
|
|
 |
Gif86
|
|
| |
Gif87
|
FX-87 Reference Manual, David K. Gifford et al.~ MIT LCS TR-409, MIT Laboratory for Computer Science, September 1987.
|
 |
Fel87
|
|
 |
Lam77
|
|
| |
Luc87
|
Types and Effects ~ Towards the Integration of Functional and Imperative Programming, John M. Lucassen, Ph. D. Thesis, MIT Laboratory for Computer Science LCS TR-408 (August 1987)
|
| |
McC79
|
An Investigation of a Programming Language with a Polymorphic Type Structure, Nancy Jean McCracken, Ph.D. Thesis, Syracuse University School of Computer and Information Science (June 1979)
|
 |
Nei87
|
|
 |
Pop77
|
G. J. Popek , J. J. Horning , B. W. Lampson , J. G. Mitchell , R. L. London, Notes on the design of Euclid, Proceedings of an ACM conference on Language design for reliable software, p.11-18, March 28-30, 1977, Raleigh, North Carolina
|
| |
Rey74
|
|
 |
Rey78
|
|
| |
Ste78
|
Rabbit: A Compiler ~or Scheme (A Study in Compiler Optimization), AI-TR-474, MIT AI Laboratory, May 1978.
|
| |
Tra86
|
A Compiler for the MIT Tagged-Token Dataflow Architecture, Kenneth R. Traub, S.M. Thesis, MIT Laboratory for Computer Science (August, 1987)
|
 |
Wei80
|
|
CITED BY 79
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
David N. Turner , Philip Wadler , Christian Mossin, Once upon a type, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.1-11, June 26-28, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lars Birkedal , Mads Tofte , Magnus Vejlstrup, From region inference to von Neumann machines via region representation inference, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.171-183, January 21-24, 1996, St. Petersburg Beach, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Cormac Flanagan , Stephen N. Freund , Marina Lifshin, Type inference for atomicity, Proceedings of the 2005 ACM SIGPLAN international workshop on Types in languages design and implementation, p.47-58, January 10-10, 2005, Long Beach, California, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Brian Chin , Daniel Marino , Shane Markstrum , Todd Millstein, Enforcing and validating user-defined programming disciplines, Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.85-86, June 13-14, 2007, San Diego, California, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|