@conference {75,
	title = {Determining Coupling In JavaScript Using Object Type Inference},
	booktitle = {Proceedings of the 13th International Working Conference on Source Code Analysis and Manipulation (SCAM13)},
	year = {2013},
	abstract = {<p>Coupling in an object-oriented context is often defined in terms of access to instance variables and methods of other classes. JavaScript, however, lacks static type informa- tion and classes, and instead features a flexible object system with prototypal inheritance. In order to determine coupling in JavaScript, we infer object types based on abstract interpretation of a program. Type inference depends on both structure and behavior of objects, and common patterns for expressing classes and modules are supported. We approximate a set of accessed types per function, and classify every access as either local or foreign. Examples demonstrate that our object type inference, together with some additional heuristics concerning property access, enable determining coupling in JavaScript in a meaningful way.</p>},
	keywords = {abstract interpretation, analysis, coupling, javascript, metrics, type inference},
	author = {Nicolay, Jens and Carlos Noguera and Coen De Roover and Wolfgang De Meuter}
}
@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 = {<p>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.</p>},
	keywords = {abstract interpretation, design recovery, dynamic analysis, logic meta programming},
	author = {Coen De Roover and Kris Gybels and Theo D{\textquoteright}Hondt}
}
