Abstract
This work presents an object-oriented calculus based on higher-order mixin construction via mixin composition, where some software engineering requirements are modelled in a formal setting allowing to prove the absence of message-not-understood run-time errors. Mixin composition is shown to be a valuable language feature enabling a cleaner object-oriented design and development. In what we believe being quite a general framework, we give directions for designing a programming language equipped with higher-order mixins, although our study is not based on any already existing object-oriented language.
This work has been partially supported by EU within the FET – Global Computing initiative, project MIKADO IST-2001-32222 and project DART IST-2001-33477, and by MIUR projects NAPOLI and PROTOCOLLO. The funding bodies are not responsible for any use that might be made of the results presented here.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Ancona, D., Lagorio, G., Zucca, E.: Jam—Designing a Java extension with mixins. ACM Transactions on Programming Languages and Systems 25(5), 641–712 (2003)
Ancona, D., Zucca, E.: A theory of mixin modules: Basic and derived operators. MSCS 8(4), 401–446 (1998)
Ancona, D., Zucca, E.: True modules for Java-like languages. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 354–380. Springer, Heidelberg (2001)
Ancona, D., Zucca, E.: Atheory of mixin modules: Algebraic laws and reduction semantics. Mathematical Structures in Computer Science 12(6), 701–737 (2002)
Bak, L., Bracha, G., Grarup, S., Griesemer, R., Griswold, D., Hölzle, U.: Mixins in Strongtalk. In: Proc. of Inheritance Workshop at ECOOP 2002 (2002)
Bettini, L., Bono, V., Likavec, S.: A Core Calculus of Mixin-Based Incomplete Objects. In: Proc. of FOOL, vol. 11 (2004)
Bettini, L., Bono, V., Venneri, B.: Coordinating Mobile Object-Oriented Code. In: Arbab, F., Talcott, C. (eds.) COORDINATION 2002. LNCS, vol. 2315, pp. 56–71. Springer, Heidelberg (2002)
Bettini, L., Bono, V., Venneri, B.: Subtyping Mobile Classes and Mixins. In: Proc. of Int. Workshops on Foundations of Object-Oriented Languages, FOOL, vol. 10 (2003)
Bono, V.: Type Systems for the Object Oriented Paradigm. PhD thesis, Univ. di Torino (1999)
Bono, V., Patel, A., Shmatikov, V.: A core calculus of classes and mixins. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 43–66. Springer, Heidelberg (1999)
Bono, V., Patel, A., Shmatikov, V., Mitchell, J.C.: A core calculus of classes and objects. In: Proc. of the 15th Conference on the Mathematical Foundations of Programming Semantics (MFPS 1999). ENTCS, vol. 220, Elsevier, Amsterdam (1999)
Boudol, G.: The recursive record semantics of objects revised. In: Sands, D. (ed.) ESOP 2001. LNCS, vol. 2028, pp. 269–283. Springer, Heidelberg (2001)
Boyen, N., Lucas, C., Steyaert, P.: Generalized mixin-based inheritance to support multiple inheritance. Technical Report vub-prog-tr-94-12, Vrije Universiteit Brussel (1994)
Bracha, G., Cook, W.: Mixin-based inheritance. In: Proc. of OOPSLA/ECOOP, pp. 303–311 (1990)
Bruce, K.: Foundations of Object-Oriented Languages – Types and Semantics. The MIT Press, Cambridge (2002)
Cook, W.R.: A Denotational Semantics of Inheritance. PhD thesis, Brown University (1989)
Crank, E., Felleisen, M.: Parameter-passing and the lambda calculus. In: Proc. POPL 1991, pp. 233–244 (1991)
Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theoretical Computer Science 103(2), 235–271 (1992)
Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proc. of POPL 1998, pp. 171–183 (1998)
Flatt, M., Krishnamurthi, S., Felleisen, M.: A Programmer’s Reduction Semantics for Classes and Mixins. In: Alves-Foss, J. (ed.) Formal Syntax and Semantics of Java. LNCS, vol. 1523, pp. 241–269. Springer, Heidelberg (1999)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Limberghen, M.V., Mens, T.: Encapsulation and composition as orthogonal operators on mixins: a solution to multiple inheritance problems. Object Oriented Systems 3(1) (1996)
Mason, A., Talcott, C.: Programming, transforming, and proving with function abstractions and memories. In: Ronchi Della Rocca, S., Ausiello, G., Dezani-Ciancaglini, M. (eds.) ICALP 1989. LNCS, vol. 372, Springer, Heidelberg (1989)
Patel, A.: Obstacl: a language with objects, subtyping, and classes. PhD thesis, Stanford University (2001)
Wright, A., Felleisen, M.: A syntactic approach to type soundness. Information and Computation 115(1), 38–94 (1994)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bettini, L., Bono, V., Likavec, S. (2004). A Core Calculus of Higher-Order Mixins and Classes. In: Berardi, S., Coppo, M., Damiani, F. (eds) Types for Proofs and Programs. TYPES 2003. Lecture Notes in Computer Science, vol 3085. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24849-1_6
Download citation
DOI: https://doi.org/10.1007/978-3-540-24849-1_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22164-7
Online ISBN: 978-3-540-24849-1
eBook Packages: Springer Book Archive