Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Specifications and their use in defining subtypes
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Protocol specifications and component adaptors
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented software construction (2nd ed.)
Object-oriented software construction (2nd ed.)
A partially deadlock-free typed process calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
Extending Typestate Checking Using Conditional Liveness Analysis
IEEE Transactions on Software Engineering
A Type-Theoretic Approach to Deadlock-Freedom of Asynchronous Systems
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Type Specifications with Processes
Proceedings of the IFIP TC6 Eighth International Conference on Formal Description Techniques VIII
Towards a Theory of Actor Computation
CONCUR '92 Proceedings of the Third International Conference on Concurrency Theory
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
Checking interference with fractional permissions
SAS'03 Proceedings of the 10th international conference on Static analysis
Internal and external token-based synchronization in object-oriented languages
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
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Hi-index | 0.00 |
Synchronization ensures exclusive shared-variable access at runtime, and static access control mechanisms give similar guarantees at compilation time. Usually we treat these language concepts as separate. In this work we propose to integrate synchronization into access control in a Java-like language: Shared-variable access depends on the availability of tokens (as a form of access control), and the compiler generates code for locking to gain the needed tokens (synchronization). We get more freedom in expressing synchronization at appropriate points in a program and weaker influence of concurrency on the program structure.