Welcome!
To use the personalized features of this site, please log in or register.
If you have forgotten your username or password, we can help.
My Menu
Saved Items

Generic Wrappers

Martin BüchiContact Information and Wolfgang WeckContact Information

(5)  Turku Centre for Computer Science, Åbo Akademi University, Lemminkäisenkatu 14A, FIN-20520 Turku
(6)  Oberon microsystems Inc, Technoparkstrasse 1, CH-8005 Zürich
Abstract
Component software means reuse and separate marketing of pre-manufactured binary components. This requires components from different vendors to be composed very late, possibly by end users at run time as in compound-document frameworks.
To this aim, we propose generic wrappers, a new language construct for strongly-typed class-based languages.With generic wrappers, objects can be aggregated at run time. The aggregate belongs to a subtype of the actual type of the wrapped object. A lower bound for the type of the wrapped object is fixed at compile time. Generic wrappers are type safe and support modular reasoning.
This feature combination is required for true component software but not achieved by known wrapping and combination techniques, such as the wrapper pattern or mix-ins.
We analyze the design space for generic wrappers, e.g. overriding, forwarding vs. delegation, and snappy binding of the wrapped object. As a proof of concept, we add generic wrappers to Java and report on a mechanized type soundness proof of the latter.

Contact Information Martin Büchi
Email: Martin.Buechi@abo.fi

Contact Information Wolfgang Weck
Email: weck@oberon.ch
Fulltext Preview (Small, Large)
Image of the first page of the fulltext

References secured to subscribers.



Export this chapter
Export this chapter as RIS | Text
 
Referenced by
1 newer article

  1. Gregersen, Allan Raundahl (2009) Dynamic update of Java applications-balancing change flexibility vs programming transparency. Journal of Software Maintenance and Evolution Research and Practice 21(2)
    [CrossRef]
Remote Address: 38.107.191.106 • Server: mpweb18
HTTP User Agent: CCBot/1.0 (+http://www.commoncrawl.org/bot.html)