Large object-oriented software systems are usually structured using modules or packages to enable large-scale development using clean interfaces that promote encapsulation and information hiding. However, in most OO languages, package interfaces (or signatures) are only implicitly defined. In this paper, we propose explicit package signatures that allow for modularly type-checking packages. We show how the signatures can be derived from packages and define a checkable specialization relation for package signatures. As main contribution, we show that if the package signatures of a new component version Cnew specialize the signatures of the old version Cold, then Cnew type-checks in all contexts in which Cold type-checks. That is, we extend checking of interface types to the level of packages.

A type system for checking specialization of packages in object-oriented programming

DAMIANI, Ferruccio;
2012-01-01

Abstract

Large object-oriented software systems are usually structured using modules or packages to enable large-scale development using clean interfaces that promote encapsulation and information hiding. However, in most OO languages, package interfaces (or signatures) are only implicitly defined. In this paper, we propose explicit package signatures that allow for modularly type-checking packages. We show how the signatures can be derived from packages and define a checkable specialization relation for package signatures. As main contribution, we show that if the package signatures of a new component version Cnew specialize the signatures of the old version Cold, then Cnew type-checks in all contexts in which Cold type-checks. That is, we extend checking of interface types to the level of packages.
2012
27th Symposium On Applied Computing
Riva del Garda (Trento), Italy
March 26-30, 2012
Proceedings of the ACM Symposium on Applied Computing, SAC 2012, Riva, Trento, Italy, March 26-30, 2012
ACM
1737
1742
9781450308571
http://dl.acm.org/citation.cfm?doid=2245276
http://doi.acm.org/10.1145/2245276.2232058
Java; Modularity; Package signature; Package specialization; Type-checking
Ferruccio Damiani; Arnd Poetzsch-Heffter; Yannick Welsch
File in questo prodotto:
Non ci sono file associati a questo prodotto.

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/2318/106442
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 5
  • ???jsp.display-item.citation.isi??? ND
social impact