Dynamic Class Hierarchy Mutation

Class hierarchies in object-oriented programs are used to capture various attributes of the underlying objects they represent, allowing programmers to encapsulate common attributes in base classes while distributing private attributes in lower-level derived classes. In essence, the semantics of the...

Full description

Saved in:
Bibliographic Details
Published in:Fourth IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2006): 26-29 March 2006/New York, New York pp. 98 - 110
Main Authors: Su, Lixin, Lipasti, Mikko H.
Format: Conference Proceeding
Language:English
Published: Washington, DC, USA IEEE Computer Society 26.03.2006
IEEE
Series:ACM Conferences
Subjects:
ISBN:0769524990, 9780769524993
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract Class hierarchies in object-oriented programs are used to capture various attributes of the underlying objects they represent, allowing programmers to encapsulate common attributes in base classes while distributing private attributes in lower-level derived classes. In essence, the semantics of the class hierarchy elegantly capture some of the possible states that a particular object can assume. However, class hierarchies are often poorly designed or evolve in ways that fail to fully capture the stateful behavior of objects. This paper proposes an automated approach for detecting stateful class attributes, and then mutating the class hierarchy dynamically to capture such behavior by creating implicit derived classes that can be specialized for specific object states. Our scheme captures both run-time static behavior, which could have been captured by the programmer by restructuring the class hierarchy at the source level; as well as run-time variant behavior, which cannot be captured using source code transformations. In the latter case, objects transition from one state to another and are dynamically mutated from a derived class to a peer derived class corresponding to the object's new state. These class hierarchy mutations create new opportunities for conventional optimizations such as constant propagation, function specialization, and dead code elimination. For our benchmark set, which includes two versions of SPECjbb, we measure speedups of 1.9% to 31.4% within our Jikes-based prototype implementation, with negligible increases in compilation overhead and object code size.
AbstractList Class hierarchies in object-oriented programs are used to capture various attributes of the underlying objects they represent, allowing programmers to encapsulate common attributes in base classes while distributing private attributes in lower-level derived classes. In essence, the semantics of the class hierarchy elegantly capture some of the possible states that a particular object can assume. However, class hierarchies are often poorly designed or evolve in ways that fail to fully capture the stateful behavior of objects. This paper proposes an automated approach for detecting stateful class attributes, and then mutating the class hierarchy dynamically to capture such behavior by creating implicit derived classes that can be specialized for specific object states. Our scheme captures both run-time static behavior, which could have been captured by the programmer by restructuring the class hierarchy at the source level; as well as run-time variant behavior, which cannot be captured using source code transformations. In the latter case, objects transition from one state to another and are dynamically mutated from a derived class to a peer derived class corresponding to the object's new state. These class hierarchy mutations create new opportunities for conventional optimizations such as constant propagation, function specialization, and dead code elimination. For our benchmark set, which includes two versions of SPECjbb, we measure speedups of 1.9% to 31.4% within our Jikes-based prototype implementation, with negligible increases in compilation overhead and object code size.
Author Lipasti, Mikko H.
Su, Lixin
Author_xml – sequence: 1
  givenname: Lixin
  surname: Su
  fullname: Su, Lixin
  organization: University of Wisconsin-Madison
– sequence: 2
  givenname: Mikko H.
  surname: Lipasti
  fullname: Lipasti, Mikko H.
  organization: University of Wisconsin-Madison
BookMark eNqNkD1PwzAURS0BErR0YmTJgBiQGt6zYyceUQotUlEXmC3HfRaGfJQ4HfrvSVV-AHd5wz160j0Tdt52LTF2g5Aign4sl5uUA6gUszM2gVxpyTOt4ZLNYvyCMZlEyPCKJYtDa5vgkrK2MSarQL3t3echedsPdghde80uvK0jzf7ulH28PL-Xq_l6s3wtn9Zzy3MY5qi2UinhbOWQF9753IJW3HPgWnuusMosbHPMyXopKyDuZEEFl1QoJUGLKbs__d313c-e4mCaEB3VtW2p20cjEJUYJ4zg7QkMRGR2fWhsfzCoEKUQY_twaq1rTNV139EgmKMUM0oxRykGM1P1gfwI3_0DFr-x42CI
ContentType Conference Proceeding
DBID 6IE
6IL
CBEJK
RIE
RIL
7SC
8FD
JQ2
L7M
L~C
L~D
DOI 10.1109/CGO.2006.14
DatabaseName IEEE Electronic Library (IEL) Conference Proceedings
IEEE Xplore POP ALL
IEEE Xplore All Conference Proceedings
IEEE Electronic Library (IEL)
IEEE Proceedings Order Plans (POP All) 1998-Present
Computer and Information Systems Abstracts
Technology Research Database
ProQuest Computer Science Collection
Advanced Technologies Database with Aerospace
Computer and Information Systems Abstracts – Academic
Computer and Information Systems Abstracts Professional
DatabaseTitle Computer and Information Systems Abstracts
Technology Research Database
Computer and Information Systems Abstracts – Academic
Advanced Technologies Database with Aerospace
ProQuest Computer Science Collection
Computer and Information Systems Abstracts Professional
DatabaseTitleList Computer and Information Systems Abstracts


Database_xml – sequence: 1
  dbid: RIE
  name: IEEE Electronic Library (IEL)
  url: https://ieeexplore.ieee.org/
  sourceTypes: Publisher
DeliveryMethod fulltext_linktorsrc
EndPage 110
ExternalDocumentID 1611533
Genre orig-research
Conference Paper
GroupedDBID 6IE
6IF
6IK
6IL
6IN
AAJGR
AARBI
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
OCL
RIB
RIC
RIE
RIL
AAWTH
LHSKQ
7SC
8FD
JQ2
L7M
L~C
L~D
ID FETCH-LOGICAL-a270t-16d5663cabc128fcf7a0962f20299f261b4a0d717eaf55b0e2c58e825e8665093
IEDL.DBID RIE
ISBN 0769524990
9780769524993
ISICitedReferencesCount 0
ISICitedReferencesURI http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000237247000008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
IngestDate Fri Jul 11 04:20:17 EDT 2025
Wed Aug 27 02:28:20 EDT 2025
Wed Jan 31 06:44:48 EST 2024
IsPeerReviewed false
IsScholarly true
Language English
LinkModel DirectLink
MeetingName CGO06: 4th Annual IEEE / ACM International Symposium on Code Generation and Optimization
MergedId FETCHMERGED-LOGICAL-a270t-16d5663cabc128fcf7a0962f20299f261b4a0d717eaf55b0e2c58e825e8665093
Notes SourceType-Conference Papers & Proceedings-1
ObjectType-Conference Paper-1
content type line 25
PQID 31163990
PQPubID 23500
PageCount 13
ParticipantIDs acm_books_10_1109_CGO_2006_14
acm_books_10_1109_CGO_2006_14_brief
ieee_primary_1611533
proquest_miscellaneous_31163990
PublicationCentury 2000
PublicationDate 20060326
20060000
PublicationDateYYYYMMDD 2006-03-26
2006-01-01
PublicationDate_xml – month: 03
  year: 2006
  text: 20060326
  day: 26
PublicationDecade 2000
PublicationPlace Washington, DC, USA
PublicationPlace_xml – name: Washington, DC, USA
PublicationSeriesTitle ACM Conferences
PublicationTitle Fourth IEEE/ACM International Symposium on Code Generation and Optimization (CGO 2006): 26-29 March 2006/New York, New York
PublicationTitleAbbrev CGO
PublicationYear 2006
Publisher IEEE Computer Society
IEEE
Publisher_xml – name: IEEE Computer Society
– name: IEEE
SSID ssj0000451041
Score 1.5948611
Snippet Class hierarchies in object-oriented programs are used to capture various attributes of the underlying objects they represent, allowing programmers to...
SourceID proquest
ieee
acm
SourceType Aggregation Database
Publisher
StartPage 98
SubjectTerms Animals
Genetic mutations
Java
Object detection
Object oriented programming
Programming profession
Prototypes
Runtime
Size measurement
Software and its engineering -- Software notations and tools -- Compilers -- Preprocessors
Software and its engineering -- Software notations and tools -- General programming languages -- Language features -- Classes and objects
Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Object oriented languages
Velocity measurement
Title Dynamic Class Hierarchy Mutation
URI https://ieeexplore.ieee.org/document/1611533
https://www.proquest.com/docview/31163990
WOSCitedRecordID wos000237247000008&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlZ1NS8NAEIaHVjx4UmnFqNWAHo3dfG73XK2eag8KvS2bzSx4aCptI_jvnUlie1AEbwkhEIZhZ56ZzLwAN0Um80wSpipMbJBkWRRQHMdA2pB1kmRiRVGLTcjpdDSfq1kHbrezMIhY_3yGd3xZ9_KLpa24VDak7ITTky50pcyaWa1tPYX3pIgkbMhcpUQVql3ptL2P2_m8UKjh-PG56UTw-E7X2EWrrvLjSK7jzOTwf194BP3dwJ4_24aiY-hg2QP_vlGb9y1nyD6LXrNXf_qLqum_9-F18vAyfgpaQYTARFJsgjArKPuKrckthRVnnTREIJGLBAUVRyyUJ0YUBGhoXJrmAiObjpAYEHmrnVDxCeyVyxJPwWcuRpRFonIiROOMsMIp4VCIYlRY48GAjKI501_rGhSE0mQ0lq3MiBc8uP7zuc6J9J0HPbaRfm82Z-jWPB5cfRtZkzdzi8KUuKzWOg5DTpnE2e8vnsPBrgRyAXubVYUD2Lcfm7f16rJ2iC_Uha2q
linkProvider IEEE
linkToHtml http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlZ1NS8NAEIaHtgp6UmnFqLUBPRq7-e6e1Vqx1h4q9LZsNrPgoam0jeC_dzaJ6UERvCWEQBiGnXlmMvMCXKVRnEQxYSrHQDlBFHkOxXF0YuUanaQ4UCwtxCbiyWQwn_NpA67rWRhELH4-wxtzWfTy06XKTamsT9mJSU-asBMGgcfKaa26omI2pbDALdmch8QVvFrqVN_71YSey3j_9uGl7EWYAZ6mVItKX-XHoVxEmuHB_77xEDrbkT17WgejI2hg1gb7rtSbt5XJkW0je238-tNe5GUHvgOvw_vZ7cipJBEc6cVs47hRSvmXr2SiKLBopWNJDOJpj1FY0URDSSBZSoiGUodhwtBT4QCJAtHstWPcP4ZWtszwBGxDxohxGvCEGFFqyRTTnGlkLB2kSlrQJaMIk-uvRYEKjAsymhGujIgYLLj887lIiPW1BW1jI_Fe7s4QlXks6H0bWZA_myaFzHCZr4XvuiZpYqe_v9iDvdHseSzGj5OnM9jfFkTOobVZ5diFXfWxeVuvLgrn-AISHrDx
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+International+Symposium+on+Code+Generation+and+Optimization&rft.atitle=Dynamic+Class+Hierarchy+Mutation&rft.au=Su%2C+Lixin&rft.au=Lipasti%2C+Mikko+H.&rft.series=ACM+Conferences&rft.date=2006-03-26&rft.pub=IEEE+Computer+Society&rft.isbn=0769524990&rft.spage=98&rft.epage=110&rft_id=info:doi/10.1109%2FCGO.2006.14
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/lc.gif&client=summon&freeimage=true
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/mc.gif&client=summon&freeimage=true
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9780769524993/sc.gif&client=summon&freeimage=true