Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A foundation for actor computation
Journal of Functional Programming
Computer
Language support for fast and reliable message-based communication in singularity OS
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
Proceedings of the 2007 ACM SIGPLAN conference on Programming language design and implementation
Ownership transfer in universe types
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Kilim: Isolation-Typed Actors 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
The Complexity of Andersen's Analysis in Practice
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
A Framework for State-Space Exploration of Java-Based Actor Programs
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Actors that unify threads and events
COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Evaluating ordering heuristics for dynamic partial-order reduction techniques
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
On the integration of the actor model in mainstream technologies: the scala perspective
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
Ownership passing: efficient distributed memory programming on multi-core systems
Proceedings of the 18th ACM SIGPLAN symposium on Principles and practice of parallel programming
Analyzing memory ownership patterns in C libraries
Proceedings of the 2013 international symposium on memory management
Globalizing selectively: shared-memory efficiency with address-space separation
SC '13 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis
Ownership-Based isolation for concurrent actors on multi-core machines
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Why do scala developers mix the actor model with other concurrency models?
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Tanks: multiple reader, single writer actors
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Semantics-preserving sharing actors
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Hi-index | 0.00 |
One of the more popular paradigms for concurrent programming is the Actor model of message passing; it has been adopted in one form or another by a number of languages and frameworks. By avoiding a shared local state and instead relying on message passing, the Actor model facilitates modular programming. An important challenge for message passing languages is to transmit messages efficiently. This requires retaining the pass-by-value semantics of messages while avoiding making a deep copy on sequential or shared memory multicore processors. A key observation is that many messages have an ownership transfer semantics; such messages can be sent efficiently using pointers without introducing shared state between concurrent objects. We propose a conservative static analysis algorithm which infers if the content of a message is compatible with an ownership transfer semantics. Our tool, called SOTER (for Safe Ownership Transfer enablER) transforms the program to avoid the cost of copying the contents of a message whenever it can infer the content obeys the ownership transfer semantics. Experiments using a range of programs suggest that our conservative static analysis method is usually able to infer ownership transfer. Performance results demonstrate that the transformed programs execute up to an order of magnitude faster than the original programs.