Islands: aliasing protection in object-oriented languages
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Supporting irregular distributions in FORTRAN 90D/HPF compilers
Supporting irregular distributions in FORTRAN 90D/HPF compilers
Advanced compiler design and implementation
Advanced compiler design and implementation
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The design, implementation, and evaluation of Jade
ACM Transactions on Programming Languages and Systems (TOPLAS)
Optimizing compilers for modern architectures: a dependence-based approach
Optimizing compilers for modern architectures: a dependence-based approach
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Parameterized object sensitivity for points-to analysis for Java
ACM Transactions on Software Engineering and Methodology (TOSEM)
Protecting representation with effect encapsulation
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Progress in deriving concurrent programs: emphasizing the role of stable guards
MPC'06 Proceedings of the 8th international conference on Mathematics of Program Construction
Context-Sensitive points-to analysis: is it worth it?
CC'06 Proceedings of the 15th international conference on Compiler Construction
Leveraging data-structure semantics for efficient algorithmic parallelism
Proceedings of the 8th ACM International Conference on Computing Frontiers
Hi-index | 0.01 |
In the future, if we are to continue to expect improved application performance we will have to achieve it by exploiting course-grained hardware parallelism rather then simply relying on processor cycles getting faster. Programmers will, therefore, need to accept some of the burden of detecting and exploiting application level parallelism because automatic parallelization is still far from a reality. On the one hand we need to fundamentally reconsider how we express algorithms as the languages we currently use were never designed to make reasoning about parallelism easy. On the other hand, to be widely adopted, any new programming approach will need to be only incrementally different to current paradigms. This paper attempts to find that difficult balance. It extends modern object-oriented programming techniques with a new abstraction that allows either programmers or automatic parallelizing compilers to reason about inherent data parallelism.