Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Theoretical Computer Science
Intractability of decision problems for finite-memory automata
Theoretical Computer Science - Special issue on universal machines and computations
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
Monitoring Programs Using Rewriting
Proceedings of the 16th IEEE international conference on Automated software engineering
Finite state machines for strings over infinite alphabets
ACM Transactions on Computational Logic (TOCL)
Lightweight object specification with typestates
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Adding trace matching with free variables to AspectJ
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Effective typestate verification in the presence of aliasing
Proceedings of the 2006 international symposium on Software testing and analysis
Two-Variable Logic on Words with Data
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
The DaCapo benchmarks: java benchmarking development and analysis
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Modular typestate checking of aliased objects
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
ConSpec -- A Formal Language for Policy Specification
Electronic Notes in Theoretical Computer Science (ENTCS)
QVM: an efficient runtime for detecting defects in deployed systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
On notions of regularity for data languages
Theoretical Computer Science
Rule Systems for Run-time Monitoring
Journal of Logic and Computation
TRACECONTRACT: a scala DSL for trace analysis
FM'11 Proceedings of the 17th international conference on Formal methods
Temporal higher-order contracts
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Automata and logics for words and trees over an infinite alphabet
CSL'06 Proceedings of the 20th international conference on Computer Science Logic
An overview of the MOP runtime verification framework
International Journal on Software Tools for Technology Transfer (STTT) - Runtime Verification
JavaMOP: efficient parametric runtime monitoring framework
Proceedings of the 34th International Conference on Software Engineering
FOSSACS'13 Proceedings of the 16th international conference on Foundations of Software Science and Computation Structures
Inlined monitors for security policy enforcement in web applications
Proceedings of the 17th Panhellenic Conference on Informatics
Hi-index | 0.00 |
We propose TOPL automata as a new method for runtime verification of systems with unbounded resource generation. Paradigmatic such systems are object-oriented programs which can dynamically generate an unbounded number of fresh object identities during their execution. Our formalism is based on register automata, a particularly successful approach in automata over infinite alphabets which administers a finite-state machine with boundedly many input-storing registers. We show that TOPL automata are equally expressive to register automata and yet suitable to express properties of programs. Compared to other runtime verification methods, our technique can handle a class of properties beyond the reach of current tools. We show in particular that properties which require value updates are not expressible with current techniques yet are naturally captured by TOPL machines. On the practical side, we present a tool for runtime verification of Java programs via TOPL properties, where the trade-off between the coverage and the overhead of the monitoring system is tunable by means of a number of parameters. We validate our technique by checking properties involving multiple objects and chaining of values on large open source projects.