Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Type inclusion constraints and type inference
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
A syntactic approach to type soundness
Information and Computation
A framework for type inference with subtyping
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Type inference with constrained types
Theory and Practice of Object Systems - Special issue on foundations of object-oriented languages
p2b: a translation utility for linking promela and symbolic model checking (tool paper)
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
Formal Analysis of a Space-Craft Controller Using SPIN
IEEE Transactions on Software Engineering
Simplifying subtyping constraints: a theory
Information and Computation
Types and programming languages
Types and programming languages
The Definition of Standard ML
PI-Calculus: A Theory of Mobile Processes
PI-Calculus: A Theory of Mobile Processes
Improving the Representation of Infinite Trees to Deal with Sets of Trees
ESOP '00 Proceedings of the 9th European Symposium on Programming Languages and Systems
Validating Requirements for Fault Tolerant Systems using Model Checking
ICRE '98 Proceedings of the 3rd International Conference on Requirements Engineering: Putting Requirements Engineering to Practice
CONCUR '93 Proceedings of the 4th International Conference on Concurrency Theory
SAS '96 Proceedings of the Third International Symposium on Static Analysis
The complexity of subtype entailment for simple types
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
Efficient Hash-Consing of Recursive Types
Efficient Hash-Consing of Recursive Types
Type error slicing in implicitly typed higher-order languages
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Feature interaction detection by pairwise analysis of LTL properties: a case study
Formal Methods in System Design
An Introduction to Formal Language and Automata
An Introduction to Formal Language and Automata
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
Spin model checker, the: primer and reference manual
Spin model checker, the: primer and reference manual
ETCH: an enhanced type checking tool for promela
SPIN'05 Proceedings of the 12th international conference on Model Checking Software
Session types for object-oriented languages
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Building extensible specifications and implementations of Promela with AbleP
Proceedings of the 18th international SPIN conference on Model checking software
Hi-index | 0.00 |
The Spin model checker and its specification language Promela have been used extensively in industry and academia to check the logical properties of distributed algorithms and protocols. Model checking with Spin involves reasoning about a system via an abstract Promela specification, thus the technique depends critically on the soundness of this specification. Promela includes a rich set of data types including first-class channels, but the language syntax restricts the declaration of channel types so that it is not generally possible to deduce the complete type of a channel directly from its declaration. We present the design and implementation of Etch, an enhanced type checker for Promela, which uses constraint-based type inference to perform strong type checking of Promela specifications, allowing static detection of errors that Spin would not detect until simulation/verification time, or that Spin may miss completely. We discuss theoretical and practical problems associated with designing a type system and type checker for an existing language, and formalise our approach using a Promela-like calculus. To handle subtyping between base types, we present an extension to a standard unification algorithm to solve a system of equality and subtyping constraints, based on bounded substitutions.