@conference {541, title = {A Formal Foundation for Trace-based JIT Compilers}, booktitle = {Proceedings of the 13th International Workshop on Dynamic Analysis}, year = {2015}, publisher = {ACM}, organization = {ACM}, address = {New York, NY, USA}, keywords = {dynamic analysis, operational semantics, tracing JIT compilation}, isbn = {978-1-4503-3909-4}, doi = {10.1145/2823363.2823369}, url = {http://doi.acm.org/10.1145/2823363.2823369}, author = {Maarten Vandercammen and Nicolay, Jens and Stefan Marr and Joeri De Koster and D{\textquoteright}Hondt, Theo and Coen De Roover} } @conference {107, title = {An Approach to High-Level Behavioral Program Documentation Allowing Lightweight Verification}, booktitle = {Proceedings of the 14th IEEE International Conference on Program Comprehension (ICPC06)}, year = {2006}, abstract = {

Typically, multiple developers are involved in the various stages of the software development and maintenance process. To ensure an optimal transfer of knowledge between these different peers, a reliable human-readable model of the dynamics of a software artefact is needed. Once these models become machine-verifiable, they can be used throughout an application{\textquoteright}s lifetime to check whether the documented behavioral properties continue to hold as the application evolves. Unfortunately, most existing modeling media are inadequate to express human-readable behavioral models which are at the same time machine-verifiable. We therefore propose a declarative platform wherein behavioral program models can be expressed in terms of userdefined high-level concepts and be automatically verified against an application{\textquoteright}s actual behavior. We demonstrate our approach by using it to both document and verify an interpreter for a garbage-collected programming language.

}, keywords = {aspect-oriented programming, behave, documentation, dynamic analysis, logic meta programming, program comprenhension, temporal logic, temporal logic programming, testing, verification}, isbn = {0-7695-2601-2}, author = {Coen De Roover and Michiels, Isabel and Kris Gybels and Kris Gybels and Theo D{\textquoteright}Hondt} } @conference {108, title = {Program Testing Using High-Level Property-Driven Models}, booktitle = {Proceedings of the Eighteenth International Conference on Software Engineering and Knowledge Engineering (SEKE06)}, year = {2006}, abstract = {

Testing is a crucial part of the software development life cycle that necessitates adequate techniques and tools. On the one hand, unit or function testing techniques are particularly easy and lightweight to use but are restricted to the testing of the external behaviour of a program. On the other hand, testing techniques that use property-driven models of the software are able to test behavioural properties of the entire execution of a program. However these models are often specified in terms of low-level execution events of the program. In this paper, we present the lightweight propertydriven testing platform called BEHAVE, where tests are written as property-driven behavioural models over highlevel run-time events. We validate our approach by testing behavioural properties related to the automatic memory management in the interpreter of the Pico programming language.

}, keywords = {behave, dynamic analysis, logic meta programming, program testing, program traces, temporal logic, temporal logic programming}, author = {Michiels, Isabel and Coen De Roover and Johan Brichau and Elisa Gonzalez Boix and Theo D{\textquoteright}Hondt} } @conference {109, title = {Towards Abstract Interpretation for Recovering Design Information}, booktitle = {Proceedings of the First International Workshop on Abstract Interpretation of Object-oriented Languages (AIOOL05)}, year = {2005}, month = {May}, abstract = {

It is a well-known problem that design information of object-oriented programs is often lost or is not kept up-to-date when the program evolves. This design information can be recovered from the program using such techniques as logic meta programming. In this technique logic queries are used to check whether the program is implemented along certain well-known patterns. Currently the technique relies on structural information and patterns are expressed in the queries as conditions over structural elements of the program. Some patterns are however better expressed in dynamic terms which requires behavioural information about the program. Such information can be obtained from execution traces of the program, but these record only one possible input dependent program execution out of many. Abstract interpretation of the object-oriented program could provide a well-founded means for extracting the necessary behavioural information.

}, keywords = {abstract interpretation, design recovery, dynamic analysis, logic meta programming}, author = {Coen De Roover and Kris Gybels and Theo D{\textquoteright}Hondt} } @mastersthesis {111, title = {Incorporating Dynamic Analysis and Approximate Reasoning in Declarative Meta-Programming to Support Software Re-engineering}, year = {2004}, school = {Vrije Universiteit Brussel}, type = {masters}, abstract = {

Software re-engineering is a complex process in which a maintainer is confronted with the challenging task of understanding the design of an existing application of which the documentation is often non-existent or no longer up-to-date. To support the software engineer in this precarious undertaking, many design recovery tools based upon declarative meta-programming techniques have been proposed, but most of them are only able to reason about a program{\textquoteright}s structural architecture instead of about the exhibited run-time behaviour. This document explores how behavioural analysis can complement structural source code analysis in the detection of software patterns in the broadest sense. Furthermore, interesting software patterns often describe inherently vague concepts which cannot be expressed efficiently in classical logic programming languages. Many software patterns are in addition described by such overly idealised logic rules that real-life variations on the implementation of these abstract patterns can no longer be detected. In this dissertation, we will therefore also study the use of approximate rea- soning techniques to overcome these common problems.

}, keywords = {declarative meta programming, dynamic analysis, fuzzy logic, fuzzy logic meta programming, logic meta programming, logic programming, trace semantics}, author = {Coen De Roover} }