The Geneva convention on the treatment of object aliasing
ACM SIGPLAN OOPS Messenger
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Proceedings of the ACM 2000 conference on Java Grande
Communicating sequential processes
Communications of the ACM
Alias burying: unique variables without destructive reads
Software—Practice & Experience - Special issue on aliasing in object-oriented systems
SEDA: an architecture for well-conditioned, scalable internet services
SOSP '01 Proceedings of the eighteenth ACM symposium on Operating systems principles
Flow-sensitive type qualifiers
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Principles of Program Analysis
Principles of Program Analysis
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 types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Capabilities for Sharing: A Generalisation of Uniqueness and Read-Only
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
CC '00 Proceedings of the 9th International Conference on Compiler Construction
Capriccio: scalable threads for internet services
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Threads cannot be implemented as a library
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Continuations from generalized stack inspection
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Javari: adding reference immutability to Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
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
Programming with exceptions in JCilk
Science of Computer Programming - Special issue: Synchronization and concurrency in object-oriented languages
Dynamo: amazon's highly available key-value store
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Immutable objects for a java-like language
ESOP'07 Proceedings of the 16th European conference on Programming
Event-Based programming without inversion of control
JMLC'06 Proceedings of the 7th joint conference on Modular Programming Languages
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Loci: Simple Thread-Locality for Java
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Platform-Specific Restrictions on Concurrency in Model Checking of Java Programs
FMICS '09 Proceedings of the 14th International Workshop on Formal Methods for Industrial Critical Systems
Fundamenta Informaticae - Understanding Computers' Intelligence Celebrating the 100th Volume of Fundamenta Informaticae in Honour of Helena Rasiowa
Task types for pervasive atomicity
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Many-core virtual machines: decoupling abstract from concrete concurrency
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
JCoBox: generalizing active objects to concurrent components
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Capabilities for uniqueness and borrowing
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Self-replicating objects for multicore platforms
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
The F# asynchronous programming model
PADL'11 Proceedings of the 13th international conference on Practical aspects of declarative languages
Strategies for preparing computer science students for the multicore world
Proceedings of the 2010 ITiCSE working group reports
AC: composable asynchronous IO for native languages
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Which problems does a multi-language virtual machine need to solve in the multicore/manycore era?
Proceedings of the compilation of the co-located workshops on DSM'11, TMC'11, AGERE!'11, AOOPES'11, NEAT'11, & VMIL'11
LCPC'09 Proceedings of the 22nd international conference on Languages and Compilers for Parallel Computing
Cost analysis of concurrent OO programs
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Symbolic execution of concurrent objects in CLP
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
Programming and deployment of active objects with application-level scheduling
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Automatic inference of resource consumption bounds
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Isolation types and multi-core architectures
FoVeOOS'11 Proceedings of the 2011 international conference on Formal Verification of Object-Oriented Software
Integrating task parallelism with actors
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Domains: safe sharing among actors
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
Message-passing concurrency for scalable, stateful, reconfigurable middleware
Proceedings of the 13th International Middleware Conference
User-defined schedulers for real-time concurrent objects
Innovations in Systems and Software Engineering
Are your incoming aliases really necessary? counting the cost of object ownership
Proceedings of the 2013 International Conference on Software Engineering
Grand challenge: real-time soccer analytics leveraging low-latency complex event processing
Proceedings of the 7th ACM international conference on Distributed event-based systems
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
Ownership-Based isolation for concurrent actors on multi-core machines
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
Native actors: a scalable software platform for distributed, heterogeneous environments
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Load balancing non-uniform parallel computations
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
Towards benchmarking actor- and agent-based programming languages
Proceedings of the 2013 workshop on Programming based on actors, agents, and decentralized control
QEMU/CPC: static analysis and CPS conversion for safe, portable, and efficient coroutines
Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation
Aliasing in Object-Oriented Programming
Notions of aliasing and ownership
Aliasing in Object-Oriented Programming
Science of Computer Programming
Hi-index | 0.00 |
This paper describes Kilim, a framework that employs a combination of techniques to help create robust, massively concurrent systems in mainstream languages such as Java: (i) ultra-lightweight, cooperatively-scheduled threads (actors), (ii) a message-passing framework (no shared memory, no locks) and (iii) isolation-aware messaging.Isolation is achieved by controlling the shape and ownership of mutable messages --- they must not have internal aliases and can only be owned by a single actor at a time. We demonstrate a static analysis built around isolation type qualifiers to enforce these constraints.Kilim comfortably scales to handle hundreds of thousands of actors and messages on modest hardware. It is fast as well --- task-switching is 1000x faster than Java threads and 60x faster than other lightweight tasking frameworks, and message-passing is 3x faster than Erlang (currently the gold standard for concurrency-orientedprogramming).