Object-oriented concurrent programming
Object-oriented concurrent programming
CML: A higher concurrent language
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
A sort inference algorithm for the polyadic &pgr;-calculus
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A calculus of mobile processes, II
Information and Computation
Toward foundations of concurrent object-oriented programming-types and language design
Theory and Practice of Object Systems
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A partially deadlock-free typed process calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Changeable interfaces and promised messages for concurrent components
Proceedings of the 1999 ACM symposium on Applied computing
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Concurrent Objects in a Process Calculus
TPPP '94 Proceedings of the International Workshop on Theory and Practice of Parallel Programming
Typing the Use of Resources in a Concurrent Calculus (Extended Abstract)
ASIAN '97 Proceedings of the Third Asian Computing Science Conference on Advances in Computing Science
The Name Discipline of Uniform Receptiveness (Extended Abstract)
ICALP '97 Proceedings of the 24th International Colloquium on Automata, Languages and Programming
CONCUR '99 Proceedings of the 10th International Conference on Concurrency Theory
An Implicitly-Typed Deadlock-Free Process Calculus
CONCUR '00 Proceedings of the 11th International Conference on Concurrency Theory
Principal Typing Schemes in a Polyadic pi-Calculus
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
Graph Types for Monadic Mobile Processes
Proceedings of the 16th Conference on Foundations of Software Technology and Theoretical Computer Science
Linear Types and Non Size-Increasing Polynomial Time Computation
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Types, or: Where's the Difference Between CCS and pi?
CONCUR '02 Proceedings of the 13th International Conference on Concurrency Theory
Contract-Based Discovery and Composition of Web Services
Formal Methods for Web Services
An Algebra of Behavioural Types
Information and Computation
A process calculus for qos-aware applications
COORDINATION'05 Proceedings of the 7th international conference on Coordination Models and Languages
On deadlocks and fairness in self-organizing resource-flow systems
ARCS'10 Proceedings of the 23rd international conference on Architecture of Computing Systems
A Foundational Theory of Contracts for Multi-party Service Composition
Fundamenta Informaticae - Fundamentals of Software Engineering 2007: Selected Contributions
Hi-index | 0.00 |
In our previous papers [7,11,23], we presented advanced type systems for the π-calculus, which can guarantee deadlock-freedom in the sense that certain communications will eventually succeed unless the whole process diverges. Although such guarantee is quite useful for reasoning about the behavior of concurrent programs, there still remains a weakness that the success of a communication cannot be completely guaranteed due to the problem of divergence. For example, while a server process that has received a request message cannot discard the request, it is allowed to infinitely delegate the request to other processes, causing a livelock. In this paper, we show that we can guarantee not only deadlock-freedom but also livelock-freedom, by modifying our previous type systems for deadlock-freedom. The resulting type system guarantees that certain communications will eventually succeed under fair scheduling, no matter whether processes diverge. Moreover, it can also guarantee that some of those communications will succeed within a certain amount of time.