EDP Sciences Journals List
Issue RAIRO-Theor. Inf. Appl.
Volume 43, Number 3, July-September 2009
Page(s) 517 - 565
DOI 10.1051/ita/2009008
Published online 12 March 2009

RAIRO-Theor. Inf. Appl. 43, 517-565 (2009)
DOI: 10.1051/ita/2009008

Dynamic overloading with copy semantics in object-oriented languages: a formal account

Lorenzo Bettini1, Sara Capecchi1 and Betti Venneri2

1  Dipartimento di Informatica, Università di Torino, Italy; bettini@di.unito.it;capecchi@di.unito.it
2  Dipartimento di Sistemi e Informatica, Università di Firenze, Italy; venneri@dsi.unifi.it


Received November 9, 2007. Accepted January 5, 2009. Published online 12 March 2009

Abstract
Mainstream object-oriented languages often fail to provide complete powerful features altogether, such as, multiple inheritance, dynamic overloading and copy semantics of inheritance. In this paper we present a core object-oriented imperative language that integrates all these features in a formal framework. We define a static type system and a translation of the language into the meta-language $8lambda\_ object$, in order to account for semantic issues and prove type safety of our proposal.


Mathematics Subject Classification. 68N15, 68N18, 68Q55.

Key words: Object-oriented languages -- dynamic overloading -- multi-methods -- copy semantics -- typed lambda calculus -- type systems.


© EDP Sciences 2009


What is OpenURL?

The OpenURL standard is a protocol for transmission of metadata describing the resource that you wish to access. An OpenURL link contains article metadata and directs it to the OpenURL server of your choice. The OpenURL server can provide access to the resource and also offer complementary services (specific search engine, export of references...). The OpenURL link can be generated by different means.
  • If your librarian has set up your subscription with an OpenURL resolver, OpenURL links appear automatically on the abstract pages.
  • You can define your own OpenURL resolver with your EDPS Account. In this case your choice will be given priority over that of your library.
  • You can use an add-on for your browser (Firefox or I.E.) to display OpenURL links on a page (see http://www.openly.com/openurlref/). You should disable this module if you wish to use the OpenURL server that you or your library have defined.