An object model for dynamic mixins
•A statically typed language called mix is defined for dynamic mixin based development.•An object model used for its implementation avoids name lookup for finding method pointers.•Preliminary results indicate method access for dynamic mixins approaches the performance of applications using staticall...
Uložené v:
| Vydané v: | Computer languages, systems & structures Ročník 51; s. 90 - 101 |
|---|---|
| Hlavní autori: | , |
| Médium: | Journal Article |
| Jazyk: | English |
| Vydavateľské údaje: |
Elsevier Ltd
01.01.2018
|
| Predmet: | |
| ISSN: | 1477-8424, 1873-6866 |
| On-line prístup: | Získať plný text |
| Tagy: |
Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
|
| Abstract | •A statically typed language called mix is defined for dynamic mixin based development.•An object model used for its implementation avoids name lookup for finding method pointers.•Preliminary results indicate method access for dynamic mixins approaches the performance of applications using statically inherited classes.
Dynamic mixins allow objects to be modified at runtime with modular extensions. In applications where method calls must traverse through multiple extensions, a performance penalty relative to static inheritance is realized as receivers of super-calls must be determined at run-time. This work describes an object model which significantly reduces this penalty. The approach is described in terms of a statically typed dynamic mixin-based language called ▪. |
|---|---|
| AbstractList | •A statically typed language called mix is defined for dynamic mixin based development.•An object model used for its implementation avoids name lookup for finding method pointers.•Preliminary results indicate method access for dynamic mixins approaches the performance of applications using statically inherited classes.
Dynamic mixins allow objects to be modified at runtime with modular extensions. In applications where method calls must traverse through multiple extensions, a performance penalty relative to static inheritance is realized as receivers of super-calls must be determined at run-time. This work describes an object model which significantly reduces this penalty. The approach is described in terms of a statically typed dynamic mixin-based language called ▪. |
| Author | Burton, Eden Sekerinski, Emil |
| Author_xml | – sequence: 1 givenname: Eden surname: Burton fullname: Burton, Eden email: burtonre@mcmaster.ca – sequence: 2 givenname: Emil surname: Sekerinski fullname: Sekerinski, Emil email: emil@mcmaster.ca |
| BookMark | eNp1j0tLAzEUhYNUsFb3Lgf3M968Jhl3pfiCghtdhzwhw0wiSRH7751St8KBezbf5XzXaJVy8gjdYegw4P5h7OzUEcCigyWAL9AaS0HbXvb9aulMiFYywq7Qda0jAAHJ-Brdb1OTzejtoZmz81MTcmncMek52maOPzHVG3QZ9FT97d_doM_np4_da7t_f3nbbfetJUwcWocJDUx6agU2dtBeM0O5YZ5wpzkYI2UIA_REYmLJAHwwkuOgKRHMBqfpBsH5ry251uKD-ipx1uWoMKiToxqVndTJUcESwAvyeEb8sus7-qKqjT5Z72JZlJTL8X_4F6oLWWw |
| Cites_doi | 10.1145/93548.93556 10.1002/spe.1022 10.1145/74878.74884 10.1145/152739.152749 10.1145/236338.236375 10.1145/2365864.2151047 |
| ContentType | Journal Article |
| Copyright | 2017 Elsevier Ltd |
| Copyright_xml | – notice: 2017 Elsevier Ltd |
| DBID | AAYXX CITATION |
| DOI | 10.1016/j.cl.2017.07.001 |
| DatabaseName | CrossRef |
| DatabaseTitle | CrossRef |
| DatabaseTitleList | |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISSN | 1873-6866 |
| EndPage | 101 |
| ExternalDocumentID | 10_1016_j_cl_2017_07_001 S1477842417300490 |
| GroupedDBID | --K --M .DC .~1 0R~ 1B1 1~. 1~5 29F 4.4 457 4G. 5VS 7-5 71M 8P~ AACTN AAEDT AAEDW AAIKJ AAKOC AALRI AAOAW AAQFI AAXUO AAYFN ABBOA ABMAC ABXDB ABYKQ ACDAQ ACGFS ACNNM ACRLP ACZNC ADBBV ADEZE ADJOM ADMUD AEBSH AEKER AFKWA AFTJW AGHFR AGUBO AGYEJ AHZHX AIALX AIEXJ AIKHN AITUG AJBFU AJOXV ALMA_UNASSIGNED_HOLDINGS AMFUW AMRAJ AOUOD AXJTR BKOJK BLXMC EBS EFJIC EJD EO8 EO9 EP2 EP3 FDB FEDTE FIRID FNPLU FYGXN G-Q GBLVA GBOLZ HVGLF HZ~ IHE J1W KOM M41 MO0 N9A O-L O9- OAUVE OZT P-8 P-9 PC. Q38 RIG ROL RPZ SDF SDG SDP SES SEW SPC SSV SSZ T5K TN5 XFK YYM ~G- 9DU AATTM AAXKI AAYWO AAYXX ABWVN ACLOT ACRPL ACVFH ADCNI ADNMO AEIPS AEUPX AFPUW AIGII AIIUN AKBMS AKRWK AKYEP ANKPU CITATION EFKBS ~HD |
| ID | FETCH-LOGICAL-c247t-d123f48e3c71bc9aea4b35b4e25da50bb88ff9062812c29059b851fa3274cfda3 |
| ISICitedReferencesCount | 0 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000419421900005&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| ISSN | 1477-8424 |
| IngestDate | Sat Nov 29 01:36:51 EST 2025 Fri Feb 23 02:17:32 EST 2024 |
| IsPeerReviewed | true |
| IsScholarly | true |
| Keywords | Object models Mixins Programming language implementations |
| Language | English |
| LinkModel | OpenURL |
| MergedId | FETCHMERGED-LOGICAL-c247t-d123f48e3c71bc9aea4b35b4e25da50bb88ff9062812c29059b851fa3274cfda3 |
| PageCount | 12 |
| ParticipantIDs | crossref_primary_10_1016_j_cl_2017_07_001 elsevier_sciencedirect_doi_10_1016_j_cl_2017_07_001 |
| PublicationCentury | 2000 |
| PublicationDate | January 2018 2018-01-00 |
| PublicationDateYYYYMMDD | 2018-01-01 |
| PublicationDate_xml | – month: 01 year: 2018 text: January 2018 |
| PublicationDecade | 2010 |
| PublicationTitle | Computer languages, systems & structures |
| PublicationYear | 2018 |
| Publisher | Elsevier Ltd |
| Publisher_xml | – name: Elsevier Ltd |
| References | Chambers, Ungar, Lee (bib0008) 1989; 24 Gamma (bib0012) 1997 VanHilst, Notkin (bib0025) 1996; 31 Templ (bib0023) 1993; 28 Efficiently implementing python object with maps. 2011. Ruby documentation. 2017. Ishizaki, Ogasawara, Castanos, Nagpurkar, Edelsohn, Nakatani (bib0017) 2012; 47 Zibin, Gil (bib0026) 2003; 2743 Google. Design elements – chrome v8. 2015. Apel, Leich, Saake (bib0004) 2006 Burton, Sekerinski (bib0006) 2015 Goldberg, Robson (bib0014) 1983 Hankache N. Perl 6 introduction. 2015. Odersky M. The Scala language specification. 2011. Ducournau (bib0011) 2011; 41 Ungar, Smith (bib0024) 1991; 4 Burton, Sekerinski (bib0005) 2014 Myers (bib0018) 1995 . Burton, Sekerinski (bib0007) 2016 CodeHaus. Groovy – runtime mixins. 2014. Dixon, McKee, Vaughan, Schweizer (bib0010) 1989 Gamma, Helm, Johnson, Vlissides (bib0013) 1995 Python documentation. 2017. Pugh, Weddell (bib0020) 1990; 25 Szyperski (bib0022) 2002 Stroustrup (bib0021) 1999 Burton (10.1016/j.cl.2017.07.001_bib0005) 2014 Templ (10.1016/j.cl.2017.07.001_bib0023) 1993; 28 Ducournau (10.1016/j.cl.2017.07.001_bib0011) 2011; 41 Goldberg (10.1016/j.cl.2017.07.001_bib0014) 1983 10.1016/j.cl.2017.07.001_bib0003 10.1016/j.cl.2017.07.001_bib0002 Stroustrup (10.1016/j.cl.2017.07.001_bib0021) 1999 10.1016/j.cl.2017.07.001_bib0001 Szyperski (10.1016/j.cl.2017.07.001_bib0022) 2002 Ishizaki (10.1016/j.cl.2017.07.001_bib0017) 2012; 47 Gamma (10.1016/j.cl.2017.07.001_bib0013) 1995 VanHilst (10.1016/j.cl.2017.07.001_bib0025) 1996; 31 Apel (10.1016/j.cl.2017.07.001_bib0004) 2006 Myers (10.1016/j.cl.2017.07.001_bib0018) 1995 Zibin (10.1016/j.cl.2017.07.001_bib0026) 2003; 2743 Burton (10.1016/j.cl.2017.07.001_bib0007) 2016 Pugh (10.1016/j.cl.2017.07.001_bib0020) 1990; 25 10.1016/j.cl.2017.07.001_bib0009 Chambers (10.1016/j.cl.2017.07.001_bib0008) 1989; 24 Dixon (10.1016/j.cl.2017.07.001_bib0010) 1989 10.1016/j.cl.2017.07.001_bib0015 Ungar (10.1016/j.cl.2017.07.001_bib0024) 1991; 4 Gamma (10.1016/j.cl.2017.07.001_bib0012) 1997 Burton (10.1016/j.cl.2017.07.001_bib0006) 2015 10.1016/j.cl.2017.07.001_bib0019 10.1016/j.cl.2017.07.001_bib0016 |
| References_xml | – volume: 2743 start-page: 329 year: 2003 end-page: 350 ident: bib0026 article-title: Two-dimensional bi-directional object layout publication-title: Proceedings of the European conference on object-oriented programming – year: 2014 ident: bib0005 article-title: Using dynamic mixins to implement design patterns publication-title: In: Proceedings of the nineteenth European conference on pattern languages of programs – start-page: 211 year: 1989 end-page: 214 ident: bib0010 article-title: A fast method dispatcher for compiled languages with multiple inheritance publication-title: Proceedings of the conference on object-oriented programming systems, languages and applications – volume: 47 start-page: 169 year: 2012 end-page: 180 ident: bib0017 article-title: Adding dynamically-typed language support to a statically-typed language compiler: performance evaluation, analysis, and tradeoffs publication-title: SIGPLAN Not – reference: Hankache N. Perl 6 introduction. 2015. – year: 1999 ident: bib0021 article-title: Multiple inheritance for C++ publication-title: C/C++ Users J – start-page: 1986 year: 2016 end-page: 1992 ident: bib0007 article-title: An object model for a dynamic mixin based language publication-title: Proceedings of the thirty-first annual ACM symposium on applied computing – volume: 28 start-page: 61 year: 1993 end-page: 66 ident: bib0023 article-title: A systematic approach to multiple inheritance implementation publication-title: SIGPLAN Not – reference: Odersky M. The Scala language specification. 2011. – reference: Python documentation. 2017. – volume: 4 start-page: 187 year: 1991 end-page: 205 ident: bib0024 article-title: Self: the power of simplicity publication-title: Lisp Symb Comput. – start-page: 124 year: 1995 end-page: 139 ident: bib0018 article-title: Bidirectional object layout for separate compilation publication-title: Proceedings of the tenth annual conference on object-oriented programming systems, languages, and applications – volume: 31 start-page: 359 year: 1996 end-page: 369 ident: bib0025 article-title: Using role components in implement collaboration-based designs publication-title: SIGPLAN Not – volume: 41 start-page: 627 year: 2011 end-page: 659 ident: bib0011 article-title: Coloring, a versatile technique for implementing object-oriented languages publication-title: Softw Pract Exper – year: 1983 ident: bib0014 article-title: Smalltalk-80: the language and its implementation – reference: Ruby documentation. 2017. – start-page: 122 year: 2006 end-page: 131 ident: bib0004 article-title: Aspectual mixin layers: aspects and features in concert publication-title: Proceedings of the twenty-eight international conference on software engineering – year: 2002 ident: bib0022 article-title: Component software: beyond object-oriented programming – reference: . – reference: Efficiently implementing python object with maps. 2011. – start-page: 1992 year: 2015 end-page: 1999 ident: bib0006 article-title: The safety of dynamic mixin composition publication-title: Proceedings of the thirtieth annual ACM symposium on applied computing – reference: Google. Design elements – chrome v8. 2015. – year: 1997 ident: bib0012 article-title: The extension objects pattern publication-title: Proceedings of the conference on pattern languages of programs – reference: CodeHaus. Groovy – runtime mixins. 2014. – year: 1995 ident: bib0013 article-title: Design patterns: elements of reusable object-oriented software – volume: 24 start-page: 49 year: 1989 end-page: 70 ident: bib0008 article-title: An efficient implementation of self a dynamically-typed object-oriented language based on prototypes publication-title: SIGPLAN Not – volume: 25 start-page: 85 year: 1990 end-page: 91 ident: bib0020 article-title: Two-directional record layout for multiple inheritance publication-title: SIGPLAN Not – ident: 10.1016/j.cl.2017.07.001_bib0015 – ident: 10.1016/j.cl.2017.07.001_bib0019 – volume: 25 start-page: 85 issue: 6 year: 1990 ident: 10.1016/j.cl.2017.07.001_bib0020 article-title: Two-directional record layout for multiple inheritance publication-title: SIGPLAN Not doi: 10.1145/93548.93556 – ident: 10.1016/j.cl.2017.07.001_bib0009 – volume: 41 start-page: 627 issue: 6 year: 2011 ident: 10.1016/j.cl.2017.07.001_bib0011 article-title: Coloring, a versatile technique for implementing object-oriented languages publication-title: Softw Pract Exper doi: 10.1002/spe.1022 – ident: 10.1016/j.cl.2017.07.001_bib0002 – volume: 24 start-page: 49 issue: 10 year: 1989 ident: 10.1016/j.cl.2017.07.001_bib0008 article-title: An efficient implementation of self a dynamically-typed object-oriented language based on prototypes publication-title: SIGPLAN Not doi: 10.1145/74878.74884 – ident: 10.1016/j.cl.2017.07.001_bib0003 – start-page: 1986 year: 2016 ident: 10.1016/j.cl.2017.07.001_bib0007 article-title: An object model for a dynamic mixin based language – volume: 28 start-page: 61 issue: 4 year: 1993 ident: 10.1016/j.cl.2017.07.001_bib0023 article-title: A systematic approach to multiple inheritance implementation publication-title: SIGPLAN Not doi: 10.1145/152739.152749 – start-page: 211 year: 1989 ident: 10.1016/j.cl.2017.07.001_bib0010 article-title: A fast method dispatcher for compiled languages with multiple inheritance – start-page: 122 year: 2006 ident: 10.1016/j.cl.2017.07.001_bib0004 article-title: Aspectual mixin layers: aspects and features in concert – volume: 31 start-page: 359 issue: 10 year: 1996 ident: 10.1016/j.cl.2017.07.001_bib0025 article-title: Using role components in implement collaboration-based designs publication-title: SIGPLAN Not doi: 10.1145/236338.236375 – start-page: 1992 year: 2015 ident: 10.1016/j.cl.2017.07.001_bib0006 article-title: The safety of dynamic mixin composition – year: 1997 ident: 10.1016/j.cl.2017.07.001_bib0012 article-title: The extension objects pattern – volume: 4 start-page: 187 issue: 3 year: 1991 ident: 10.1016/j.cl.2017.07.001_bib0024 article-title: Self: the power of simplicity publication-title: Lisp Symb Comput. – ident: 10.1016/j.cl.2017.07.001_bib0016 – start-page: 124 year: 1995 ident: 10.1016/j.cl.2017.07.001_bib0018 article-title: Bidirectional object layout for separate compilation – ident: 10.1016/j.cl.2017.07.001_bib0001 – volume: 47 start-page: 169 issue: 7 year: 2012 ident: 10.1016/j.cl.2017.07.001_bib0017 article-title: Adding dynamically-typed language support to a statically-typed language compiler: performance evaluation, analysis, and tradeoffs publication-title: SIGPLAN Not doi: 10.1145/2365864.2151047 – year: 2014 ident: 10.1016/j.cl.2017.07.001_bib0005 article-title: Using dynamic mixins to implement design patterns – year: 1995 ident: 10.1016/j.cl.2017.07.001_bib0013 – year: 1983 ident: 10.1016/j.cl.2017.07.001_bib0014 – volume: 2743 start-page: 329 year: 2003 ident: 10.1016/j.cl.2017.07.001_bib0026 article-title: Two-dimensional bi-directional object layout – year: 1999 ident: 10.1016/j.cl.2017.07.001_bib0021 article-title: Multiple inheritance for C++ publication-title: C/C++ Users J – year: 2002 ident: 10.1016/j.cl.2017.07.001_bib0022 |
| SSID | ssj0020845 |
| Score | 2.0581949 |
| Snippet | •A statically typed language called mix is defined for dynamic mixin based development.•An object model used for its implementation avoids name lookup for... |
| SourceID | crossref elsevier |
| SourceType | Index Database Publisher |
| StartPage | 90 |
| SubjectTerms | Mixins Object models Programming language implementations |
| Title | An object model for dynamic mixins |
| URI | https://dx.doi.org/10.1016/j.cl.2017.07.001 |
| Volume | 51 |
| WOSCitedRecordID | wos000419421900005&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 | |
| journalDatabaseRights | – providerCode: PRVESC databaseName: Elsevier SD Freedom Collection Journals 2021 customDbUrl: eissn: 1873-6866 dateEnd: 20181231 omitProxy: false ssIdentifier: ssj0020845 issn: 1477-8424 databaseCode: AIEXJ dateStart: 20020401 isFulltext: true titleUrlDefault: https://www.sciencedirect.com providerName: Elsevier |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwtV1La9tAEF6Ck0MvbdIHdfNAlF5KUZFWu13tUQkOSQimUBd8E9qHwG6iGj-Kf35HmpGctDXEh14WIVi9vtXszOzs9zH2wUZcF0b5sLZ9EKB8kaFJY2gc1zaJnDZIknSrhsN0PNZfSThx0cgJqKpK12s9-69QwzkAu946uwPc3UXhBBwD6NAC7NA-CfgMHEBTZ1dQ5aapI3SoO__pfrKeUHquZScgVYcucdngivzOi2ZcIMPsar4pNjxfzanofuA2O8m--R_1VkLSwR7cU-0GZRTi9EFGAY2gUDBzCdzb3FpJooVFM4cKnzRhxtj3L1uMaYHpZ1uv8MSq4Uil2zyivf5jOuqKBNv6s2lu7_L6CnlUr5VDqLvPldRghfez68H4pouvo7TRpO4en1alsZzv8VP82wt54FmMDtlzCgmCDKE8Ynu-esletMAEZH1fsfdZFSCyQYNsAMgGhGyAyL5m3y8Ho4urkCQuQsuFWoYOHIdSpD6xKjZWF74QJpFGeC5dISNj0rQsaypp8MMs1-ALG3CRyyLhStjSFckb1qt-Vv4tCwpeOme9hQhRC2mFgZ9POim9jCKbFLzPPravnM-QySTf9on7LGm_SU6eGHpYOYC7tde7He5wzJ5tht4J68FQ9qfswP5aThbzM0L2N0v6T18 |
| linkProvider | Elsevier |
| 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%3Ajournal&rft.genre=article&rft.atitle=An+object+model+for+dynamic+mixins&rft.jtitle=Computer+languages%2C+systems+%26+structures&rft.au=Burton%2C+Eden&rft.au=Sekerinski%2C+Emil&rft.date=2018-01-01&rft.issn=1477-8424&rft.volume=51&rft.spage=90&rft.epage=101&rft_id=info:doi/10.1016%2Fj.cl.2017.07.001&rft.externalDBID=n%2Fa&rft.externalDocID=10_1016_j_cl_2017_07_001 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=1477-8424&client=summon |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=1477-8424&client=summon |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=1477-8424&client=summon |