Design and validation of computer protocols
Design and validation of computer protocols
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
A practical subtyping system for Erlang
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
AXD 301: a new generation ATM switching system
Computer Networks: The International Journal of Computer and Telecommunications Networking
Verification of Erlang programs using abstract interpretation and model checking
Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
Using shape analysis to reduce finite-state models of concurrent Java programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Principles of Program Analysis
Principles of Program Analysis
The Java Language Specification
The Java Language Specification
Logic Verification of ANSI-C Code with SPIN
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Automatically Proving Termination Where Simplification Orderings Fail
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
Concurrent ML: Design, Application and Semantics
Functional Programming, Concurrency, Simulation and Automated Reasoning: International Lecture Series 1991-1992, McMaster University, Hamilton, Ontario, Canada
CADP - A Protocol Validation and Verification Toolbox
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
A soft-typing system for Erlang
Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
ACSD '04 Proceedings of the Fourth International Conference on Application of Concurrency to System Design
Development of a verified Erlang program for resource locking
International Journal on Software Tools for Technology Transfer (STTT)
Modeling Erlang in the pi-calculus
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
A semantics for distributed Erlang
Proceedings of the 2005 ACM SIGPLAN workshop on Erlang
Practical type inference based on success typings
Proceedings of the 8th ACM SIGPLAN international conference on Principles and practice of declarative programming
Message analysis for concurrent programs using message passing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Model checking erlang programs: the functional approach
Proceedings of the 2006 ACM SIGPLAN workshop on Erlang
Towards automatic verification of Erlang programs by π-calculus translation
Proceedings of the 2006 ACM SIGPLAN workshop on Erlang
Abstraction and Model Checking of Core Erlang Programs in Maude
Electronic Notes in Theoretical Computer Science (ENTCS)
McErlang: a model checker for a distributed functional programming language
ICFP '07 Proceedings of the 12th ACM SIGPLAN international conference on Functional programming
RTA'03 Proceedings of the 14th international conference on Rewriting techniques and applications
Hi-index | 0.00 |
Erlang is a concurrent functional language, especially tailored for distributed, highly concurrent and fault-tolerant software. An important part of Erlang is its support for failure recovery. A designer implements failure recovery by organising the processes of an Erlang application into tree structures, in which parent processes monitor failures of their children and are responsible for their restart. Libraries support the creation of such structures during system initialisation. We present a technique to automatically analyse that the process structure of an Erlang application is constructed in a way that guarantees recovery from process failures. First, we extract (part of) the process structure by static analysis of the initialisation code of the application. Thereafter, analysis of the process structure checks that it will recover from any process failure. We have implemented the technique in a tool, and applied it to several OTP library applications and to a subsystem of the AXD 301 ATM switch.