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...
Saved in:
| 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: | , |
| 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 |

