Statecharts: A visual formalism for complex systems
Science of Computer Programming
What is in a Step: On the Semantics of Statecharts
TACS '91 Proceedings of the International Conference on Theoretical Aspects of Computer Software
The Temporal Rover and the ATG Rover
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
A Comparison of Statecharts Variants
ProCoS Proceedings of the Third International Symposium Organized Jointly with the Working Group Provably Correct Systems on Formal Techniques in Real-Time and Fault-Tolerant Systems
Automatic verification of Pipelined Microprocessor Control
CAV '94 Proceedings of the 6th International Conference on Computer Aided Verification
An approach for supporting aspect-oriented domain modeling
Proceedings of the 2nd international conference on Generative programming and component engineering
An aspect-oriented generative approach
OOPSLA '04 Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
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
Code Generation on Steroids: Enhancing COTS Code Generators via Generative Aspects
IWICSS '07 Proceedings of the Second International Workshop on Incorporating COTS Software into Software Systems: Tools and Techniques
Mop: an efficient and generic runtime verification framework
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
The temporal logic of programs
SFCS '77 Proceedings of the 18th Annual Symposium on Foundations of Computer Science
Runtime Verification of C Programs
TestCom '08 / FATES '08 Proceedings of the 20th IFIP TC 6/WG 6.1 international conference on Testing of Software and Communicating Systems: 8th International Workshop
Semantically Configurable Code Generation
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
Automated Software Engineering
Temporal Assertions using AspectJ
Electronic Notes in Theoretical Computer Science (ENTCS)
Deconstructing the semantics of big-step modelling languages
Requirements Engineering - RE'09 Special Issue; Guest Editor:Kevin T Ryan
Clara: a framework for partially evaluating finite-state runtime monitors ahead of time
RV'10 Proceedings of the First international conference on Runtime verification
Aspect-oriented instrumentation with GCC
RV'10 Proceedings of the First international conference on Runtime verification
Reliable software development: analysis-aware design
TACAS'11/ETAPS'11 Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software
Semantic quality attributes for big-step modelling languages
FASE'11/ETAPS'11 Proceedings of the 14th international conference on Fundamental approaches to software engineering: part of the joint European conferences on theory and practice of software
Prescriptive semantics for big-step modelling languages
FASE'10 Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering
Managing the evolution of aspect-oriented software with model-based pointcuts
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Hi-index | 0.00 |
The output of a code generator is assumed to be correct and not usually intended to be read or modified; yet programmers are often interested in this, e.g., to monitor a system property. Here, we consider code customization for a family of code generators associated with big-step executable modelling languages (e.g., statecharts). We introduce a customization language that allows us to express customization scenarios for the generated code independently of a specific big-step execution semantics. These customization scenarios are all different forms of runtime monitors, which lend themselves to a principled, uniform implementation for observation and code extension. A monitor is given in terms of the enabledness and execution of the transitions of a model and a reachability relation between two states of the execution of the model during a big step. For each monitor, we generate the aspect code that is incorporated into the output of a code generator to implement the monitor at the generated-code level. Thus, we provide means for code analysis through using the vocabulary of a model, rather than the detail of the generated code. Our technique not only requires the code generators to reveal only limited information about their code generation mechanisms, but also keeps the structure of the generated code intact. We demonstrate how various useful properties of a model, or a language, can be checked using our monitors.