Show simple item record

Authordc.contributor.authorBinder, Walter 
Authordc.contributor.authorMoret, Philippe 
Authordc.contributor.authorTanter, Éric Pierre 
Authordc.contributor.authorAnsaloni, Danilo 
Admission datedc.date.accessioned2017-03-06T16:36:35Z
Available datedc.date.available2017-03-06T16:36:35Z
Publication datedc.date.issued2016
Cita de ítemdc.identifier.citationSoftware-Practice & Experience. Volumen: 46 Número: 10 Páginas: 1351-1380es_ES
Identifierdc.identifier.other10.1002/spe.2385
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/143006
Abstractdc.description.abstractBytecode instrumentation is a widely used technique to implement aspect weaving and dynamic analyses in virtual machines such as the Java virtual machine. Aspect weavers and other instrumentations are usually developed independently and combining them often requires significant engineering effort, if at all possible. In this article, we present polymorphic bytecode instrumentation(PBI), a simple but effective technique that allows dynamic dispatch amongst several, possibly independent instrumentations. PBI enables complete bytecode coverage, that is, any method with a bytecode representation can be instrumented. We illustrate further benefits of PBI with three case studies. First, we describe how PBI can be used to implement a comprehensive profiler of inter-procedural and intra-procedural control flow. Second, we provide an implementation of execution levels for AspectJ, which avoids infinite regression and unwanted interference between aspects. Third, we present a framework for adaptive dynamic analysis, where the analysis to be performed can be changed at runtime by the user. We assess the overhead introduced by PBI and provide thorough performance evaluations of PBI in all three case studies. We show that pure Java profilers like JP2 can, thanks to PBI, produce accurate execution profiles by covering all code, including the core Java libraries. We then demonstrate that PBI-based execution levels are much faster than control flow pointcuts to avoid interference between aspects and that their efficient integration in a practical aspect language is possible. Finally, we report that PBI enables adaptive dynamic analysis tools that are more reactive to user inputs than existing tools that rely on dynamic aspect-oriented programming with runtime weaving. These experiments position PBI as a widely applicable and practical approach for combining bytecode instrumentations. Copyright (c) 2015 John Wiley & Sons, Ltd.es_ES
Lenguagedc.language.isoenes_ES
Type of licensedc.rightsAttribution-NonCommercial-NoDerivs 3.0 Chile*
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/cl/*
Sourcedc.sourceSoftware-Practice & Experiencees_ES
Keywordsdc.subjectJava virtual machinees_ES
Keywordsdc.subjectexecution levelses_ES
Keywordsdc.subjectaspect-oriented programminges_ES
Keywordsdc.subjectprofilinges_ES
Keywordsdc.subjectdynamic program analysises_ES
Keywordsdc.subjectbytecode instrumentationes_ES
Títulodc.titlePolymorphic bytecode instrumentationes_ES
Document typedc.typeArtículo de revista
Catalogueruchile.catalogadorC. R. B.es_ES
Indexationuchile.indexArtículo de publicación ISIes_ES


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record

Attribution-NonCommercial-NoDerivs 3.0 Chile
Except where otherwise noted, this item's license is described as Attribution-NonCommercial-NoDerivs 3.0 Chile