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...

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Computer languages, systems & structures Ročník 51; s. 90 - 101
Hlavní autori: Burton, Eden, Sekerinski, Emil
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