A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
Tentative steps toward a development method for interfering programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Reasoning about implicit invocation
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Type-based analysis of uncaught exceptions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Formalizing Design Spaces: Implicit Invocation Mechanisms
VDM '91 Proceedings of the 4th International Symposium of VDM Europe on Formal Software Development-Volume I: Conference Contributions - Volume I
Improving Software Robustness with Dependability Cases
FTCS '98 Proceedings of the The Twenty-Eighth Annual International Symposium on Fault-Tolerant Computing
The Greybox Approach: When Blackbox Specifications Hide Too Much
The Greybox Approach: When Blackbox Specifications Hide Too Much
Static analysis to support the evolution of exception structure in object-oriented systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated Support for Development, Maintenance, and Testing in the Presence of Implicit Control Flow
Proceedings of the 26th International Conference on Software Engineering
An uncaught exception analysis for Java
Journal of Systems and Software
Aspect-oriented programming and modular reasoning
Proceedings of the 27th international conference on Software engineering
Robustness Testing of Java Server Applications
IEEE Transactions on Software Engineering
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Preliminary design of JML: a behavioral interface specification language for java
ACM SIGSOFT Software Engineering Notes
Modular verification of higher-order methods with mandatory calls specified by model programs
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Sound reasoning about unchecked exceptions
SEFM '07 Proceedings of the Fifth IEEE International Conference on Software Engineering and Formal Methods
EJFlow: taming exceptional control flows in aspect-oriented programming
Proceedings of the 7th international conference on Aspect-oriented software development
Enforcing behavioral constraints in evolving aspect-oriented programs
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Ptolemy: A Language with Quantified, Typed Events
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Design patterns in separation logic
Proceedings of the 4th international workshop on Types in language design and implementation
Tisa: A Language Design and Modular Verification Technique for Temporal Policies in Web Services
ESOP '09 Proceedings of the 18th European Symposium on Programming Languages and Systems: Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS 2009
Failboxes: Provably Safe Exception Handling
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
A catalogue of bug patterns for exception handling in aspect-oriented programs
Proceedings of the 15th Conference on Pattern Languages of Programs
Pipa: a behavioral interface specification language for aspectJ
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
Types and modularity for implicit invocation with implicit announcement
ACM Transactions on Software Engineering and Methodology (TOSEM)
Modular aspect-oriented design with XPIs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the tenth international conference on Aspect-oriented software development
A semantics for execution levels with exceptions
Proceedings of the 10th international workshop on Foundations of aspect-oriented languages
Practical exception specifications
Advanced Topics in Exception Handling Techniques
Reasoning about exception flow at the architectural level
Rigorous Development of Complex Fault-Tolerant Systems
Hi-index | 0.00 |
Modular understanding of behaviors and flows of exceptions may help in their better use and handling. Such reasoning tasks about exceptions face unique challenges in event-based implicit invocation (II) languages that allow subjects to implicitly invoke observers, and run the observers in a chain. In this work, we illustrate these challenge in Ptolemy and propose Ptolemy-X that enables modular reasoning about behaviors and flows of exceptions for event announcement and handling. Ptolemy-X's exception-aware specification expressions and boundary exceptions limit the set of (un)checked exceptions of subjects and observers of an event. Exceptional postconditions specify the behaviors of these exceptions. Greybox specifications specify the flows of these exceptions among the observers in the chain. Ptolemy-X's type system and refinement rules enforce these specifications and thus enable its modular reasoning. We evaluate the utility of Ptolemy-X's exception flow reasoning by applying it to understand a set of aspect-oriented (AO) bug patterns. We also present Ptolemy-X's semantics including its sound static semantics.