An architecture for generic extensions

Publikation: Bidrag til tidsskriftTidsskriftartikelForskningfagfællebedømt

Standard

An architecture for generic extensions. / Oancea, Cosmin Eugen; Watt, Stephen M.

I: Science of Computer Programming, Bind 76, Nr. 4, 2011, s. 258–277.

Publikation: Bidrag til tidsskriftTidsskriftartikelForskningfagfællebedømt

Harvard

Oancea, CE & Watt, SM 2011, 'An architecture for generic extensions', Science of Computer Programming, bind 76, nr. 4, s. 258–277. https://doi.org/10.1016/j.scico.2009.09.008

APA

Oancea, C. E., & Watt, S. M. (2011). An architecture for generic extensions. Science of Computer Programming, 76(4), 258–277. https://doi.org/10.1016/j.scico.2009.09.008

Vancouver

Oancea CE, Watt SM. An architecture for generic extensions. Science of Computer Programming. 2011;76(4):258–277. https://doi.org/10.1016/j.scico.2009.09.008

Author

Oancea, Cosmin Eugen ; Watt, Stephen M. / An architecture for generic extensions. I: Science of Computer Programming. 2011 ; Bind 76, Nr. 4. s. 258–277.

Bibtex

@article{232fb0f8b9f94bc893426931f52c1bd6,
title = "An architecture for generic extensions",
abstract = "We examine what is necessary to allow generic libraries to be used naturally in a multi-language, potentially distributed environment. Language-neutral library interfaces usually do not support the full range of programming idioms that are available when a library is used natively. We investigate how to structure the language bindings of the neutral interface to achieve a better expressibility and code re-use. We furthermore address how language-neutral interfaces can be extended with import bindings to recover the desired programming idioms. We also address the question of how these extensions can be organized to minimize the performance overhead that arises from using objects in manners not anticipated by the original library designers. Our approach is to treat a library as a software component and to view the problem as one of component extension. We use C++ as an example of a mature language, with libraries using a variety of patterns, and use the Standard Template Library as an example of a complex library for which efficiency is important. By viewing the library extension problem as one of component organization, we enhance software composibility, hierarchy maintenance and architecture independence. ",
author = "Oancea, {Cosmin Eugen} and Watt, {Stephen M.}",
note = "@article{Oancea:2011:AGE:1937199.1937553, author = {Oancea, Cosmin E. and Watt, Stephen M.}, title = {An architecture for generic extensions}, journal = {Sci. Comput. Program.}, issue_date = {April, 2011}, volume = {76}, number = {4}, month = apr, year = {2011}, issn = {0167-6423}, pages = {258--277}, numpages = {20}, url = {http://dx.doi.org/10.1016/j.scico.2009.09.008}, doi = {10.1016/j.scico.2009.09.008}, acmid = {1937553}, publisher = {Elsevier North-Holland, Inc.}, address = {Amsterdam, The Netherlands, The Netherlands}, keywords = {C++ templates, Curiously reoccurring template pattern (CRTP), Generics, Middleware, Software component architecture, Type members}, } ",
year = "2011",
doi = "10.1016/j.scico.2009.09.008",
language = "English",
volume = "76",
pages = "258–277",
journal = "Science of Computer Programming",
issn = "0167-6423",
publisher = "Elsevier",
number = "4",

}

RIS

TY - JOUR

T1 - An architecture for generic extensions

AU - Oancea, Cosmin Eugen

AU - Watt, Stephen M.

N1 - @article{Oancea:2011:AGE:1937199.1937553, author = {Oancea, Cosmin E. and Watt, Stephen M.}, title = {An architecture for generic extensions}, journal = {Sci. Comput. Program.}, issue_date = {April, 2011}, volume = {76}, number = {4}, month = apr, year = {2011}, issn = {0167-6423}, pages = {258--277}, numpages = {20}, url = {http://dx.doi.org/10.1016/j.scico.2009.09.008}, doi = {10.1016/j.scico.2009.09.008}, acmid = {1937553}, publisher = {Elsevier North-Holland, Inc.}, address = {Amsterdam, The Netherlands, The Netherlands}, keywords = {C++ templates, Curiously reoccurring template pattern (CRTP), Generics, Middleware, Software component architecture, Type members}, }

PY - 2011

Y1 - 2011

N2 - We examine what is necessary to allow generic libraries to be used naturally in a multi-language, potentially distributed environment. Language-neutral library interfaces usually do not support the full range of programming idioms that are available when a library is used natively. We investigate how to structure the language bindings of the neutral interface to achieve a better expressibility and code re-use. We furthermore address how language-neutral interfaces can be extended with import bindings to recover the desired programming idioms. We also address the question of how these extensions can be organized to minimize the performance overhead that arises from using objects in manners not anticipated by the original library designers. Our approach is to treat a library as a software component and to view the problem as one of component extension. We use C++ as an example of a mature language, with libraries using a variety of patterns, and use the Standard Template Library as an example of a complex library for which efficiency is important. By viewing the library extension problem as one of component organization, we enhance software composibility, hierarchy maintenance and architecture independence.

AB - We examine what is necessary to allow generic libraries to be used naturally in a multi-language, potentially distributed environment. Language-neutral library interfaces usually do not support the full range of programming idioms that are available when a library is used natively. We investigate how to structure the language bindings of the neutral interface to achieve a better expressibility and code re-use. We furthermore address how language-neutral interfaces can be extended with import bindings to recover the desired programming idioms. We also address the question of how these extensions can be organized to minimize the performance overhead that arises from using objects in manners not anticipated by the original library designers. Our approach is to treat a library as a software component and to view the problem as one of component extension. We use C++ as an example of a mature language, with libraries using a variety of patterns, and use the Standard Template Library as an example of a complex library for which efficiency is important. By viewing the library extension problem as one of component organization, we enhance software composibility, hierarchy maintenance and architecture independence.

U2 - 10.1016/j.scico.2009.09.008

DO - 10.1016/j.scico.2009.09.008

M3 - Journal article

VL - 76

SP - 258

EP - 277

JO - Science of Computer Programming

JF - Science of Computer Programming

SN - 0167-6423

IS - 4

ER -

ID: 38296172