Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
MULTILISP: a language for concurrent symbolic computation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
Active object: an object behavioral pattern for concurrent programming
Pattern languages of program design 2
Models and languages for parallel computation
ACM Computing Surveys (CSUR)
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Proceedings of the ACM 2000 conference on Java Grande
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
Mirrors: design principles for meta-level facilities of object-oriented programming languages
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
HotpathVM: an effective JIT compiler for resource-constrained devices
Proceedings of the 2nd international conference on Virtual execution environments
Statistically rigorous java performance evaluation
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Google's MapReduce programming model – Revisited
Science of Computer Programming
AmbientTalk: Object-oriented Event-driven Programming in Mobile Ad hoc Networks
SCCC '07 Proceedings of the XXVI International Conference of the Chilean Society of Computer Science
Transactional memory for smalltalk
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
A Uniform Transactional Execution Environment for Java
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Actor frameworks for the JVM platform: a comparative analysis
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
Views: object-inspired concurrency control
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
Proxies: design principles for robust object-oriented intercession APIs
Proceedings of the 6th symposium on Dynamic languages
JCoBox: generalizing active objects to concurrent components
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Concurrency among strangers: programming in E as plan coordination
TGC'05 Proceedings of the 1st international conference on Trustworthy global computing
Orleans: cloud computing for everyone
Proceedings of the 2nd ACM Symposium on Cloud Computing
Ribbons: a partially shared memory programming model
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Flexible object layouts: enabling lightweight language extensions by intercepting slot access
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
SCOOP – a contract-based concurrent object-oriented programming model
Advanced Lectures on Software Engineering
Hi-index | 0.00 |
Supporting all known abstractions for concurrent and parallel programming in a virtual machines (VM) is a futile undertaking, but it is required to give programmers appropriate tools and performance. Instead of supporting all abstractions directly, VMs need a unifying mechanism similar to INVOKEDYNAMIC for JVMs. Our survey of parallel and concurrent programming concepts identifies concurrency abstractions as the ones benefiting most from support in a VM. Currently, their semantics is often weakened, reducing their engineering benefits. They require a mechanism to define flexible language guarantees. Based on this survey, we define an ownership-based meta-object protocol as candidate for VM support. We demonstrate its expressiveness by implementing actor semantics, software transactional memory, agents, CSP, and active objects. While the performance of our prototype confirms the need for VM support, it also shows that the chosen mechanism is appropriate to express a wide range of concurrency abstractions in a unified way.