Cilk: an efficient multithreaded runtime system
PPOPP '95 Proceedings of the fifth ACM SIGPLAN symposium on Principles and practice of parallel programming
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Data groups: specifying the modification of extended state
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Assuring and evolving concurrent programs: annotations and policy
Proceedings of the 24th International Conference on Software Engineering
Subtleties of Transactional Memory Atomicity Semantics
IEEE Computer Architecture Letters
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Verifying correct usage of atomic blocks and typestate
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Permission-based programming languages (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Lightweight verification of a multi-task threaded server: a case study with the plural tool
FMICS'11 Proceedings of the 16th international conference on Formal methods for industrial critical systems
First-class state change in plaid
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Plaid: a permission-based programming language
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
A linear concurrent constraint approach for the automatic verification of access permissions
Proceedings of the 14th symposium on Principles and practice of declarative programming
Æminium: A Permission-Based Concurrent-by-Default Programming Language Approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
Alias control for deterministic parallelism
Aliasing in Object-Oriented Programming
The future of aliasing in parallel programming
Aliasing in Object-Oriented Programming
A case study on the lightweight verification of a multi-threaded task server
Science of Computer Programming
Hi-index | 0.00 |
The rise of the multicore era is catapulting concurrency into mainstream programming. Current programming paradigms build in sequentiality, and as a result, concurrency support in those languages forces programmers into low-level reasoning about execution order. In this paper, we introduce a new programming paradigm in which concurrency is the default. Our Aeminium language uses access permissions to express logical dependencies in the code at a higher level of abstraction than sequential order. Therefore compiler/runtime-system can leverage that dependency information to allow concurrent execution. Because in Aeminium programmers specify dependencies rather than control flow, there is no need to engage in difficult, error-prone, and low-level reasoning about execution order or thread interleavings. Developers can instead focus on the design of the program, and benefit as the runtime automatically extracts the concurrency inherent in