Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
ABCL: an object-oriented concurrent system
ABCL: an object-oriented concurrent system
Synchronization in actor systems
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A foundation for actor computation
Journal of Functional Programming
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Learning from mistakes: a comprehensive study on real world concurrency bug characteristics
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Patterns for parallel programming
Patterns for parallel programming
The role of MPI in development time: a case study
Proceedings of the 2008 ACM/IEEE conference on Supercomputing
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
A universal modular ACTOR formalism for artificial intelligence
IJCAI'73 Proceedings of the 3rd international joint conference on Artificial intelligence
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
Implementing joins using extensible pattern matching
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
JCoBox: generalizing active objects to concurrent components
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Inferring ownership transfer for efficient message passing
Proceedings of the 16th ACM symposium on Principles and practice of parallel programming
Orleans: cloud computing for everyone
Proceedings of the 2nd ACM Symposium on Cloud Computing
Ten years of analyzing actors: Rebeca experience
Formal modeling
Design of an Empirical Study for Comparing the Usability of Concurrent Programming Languages
ESEM '11 Proceedings of the 2011 International Symposium on Empirical Software Engineering and Measurement
Are Java programmers transitioning to multicore?: a large scale study of java FLOSS
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
Actors in Scala
Dreams: a framework for distributed synchronous coordination
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Proceedings of the 34th International Conference on Software Engineering
TransDPOR: a novel dynamic partial-order reduction technique for testing actor programs
FMOODS'12/FORTE'12 Proceedings of the 14th joint IFIP WG 6.1 international conference and Proceedings of the 32nd IFIP WG 6.1 international conference on Formal Techniques for Distributed Systems
Scoped synchronization constraints for large scale actor systems
COORDINATION'12 Proceedings of the 14th international conference on Coordination Models and Languages
Integrating task parallelism with actors
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
How do developers use parallel libraries?
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Concurrent object-oriented programming with agents
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
Fully concurrent garbage collection of actors on many-core machines
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Tanks: multiple reader, single writer actors
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Concurrent object-oriented programming with agent-oriented abstractions: the ALOO approach
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Towards a compositional reflective architecture for actor-based systems
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Hi-index | 0.00 |
Mixing the actor model with other concurrency models in a single program can break the actor abstraction. This increases the chance of creating deadlocks and data races--two mistakes that are hard to make with actors. Furthermore, it prevents the use of many advanced testing, modeling, and verification tools for actors, as these require pure actor programs. This study is the first to point out the phenomenon of mixing concurrency models by Scala developers and to systematically identify the factors leading to it. We studied 15 large, mature, and actively maintained actor programs written in Scala and found that 80% of them mix the actor model with another concurrency model. Consequently, a large part of real-world actor programs does not use actors to their fullest advantage. Inspection of the programs and discussion with the developers reveal two reasons for mixing that can be influenced by researchers and library-builders: weaknesses in the actor library implementations, and shortcomings of the actor model itself.