Abstract
The wide practice of objected oriented programming (OOP) in current software practice is evident. Despite extensive studies on typing programming objects, it is still undeniably a challenging research task to design a type system that can satisfactorily account for a variety of features (e.g., binary methods and multiple inheritance) in OOP. In this paper, we present a typeful approach to implementing objects that makes use of a recently introduced notion of guarded datatypes. In particular, we demonstrate how the feature of multiple inheritance can be supported with this approach, presenting a simple and general account for multiple inheritance in a typeful manner.
Partially supported by NSF grants no. CCR-0224244 and no. CCR-0229480
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
Bruce, K.B., Cardelli, L., Pierce, B.: Comparing Object Encodings. Information and Computation 155, 108–133 (1999)
Bruce, K.B.: Foundations of Object-Oriented Languages, pp. xx+384. The MIT Press, Cambridge (2002)
Cardelli, L.: A semantics of multiple inheritance. Information and Computation 76(2-3), 138–164 (1988)
Compagnoni, A.B., Pierce, B.C.: Higher-Order Intersection Types and Multiple Inheritance. Mathematical Structures in Computer Science 6(5), 469–501 (1996)
Goldenberg, A., Robson, D.: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading (1983)
Hall, C.V., Hammond, K., Jones, S.L.P., Wadler, P.L.: Type Classes in Haskell. ACM Transactions on Programming Languages and Systems 18(2), 109–138 (1996)
Hinze, R.: A New Approach to Generic Functional Programming. In: Proceedings of 27th Annual ACM SIGPLAN Symposium on Principles of Programming Languages (POPL 2000), Boston, pp. 119–132(2000)
Jansson, P., Jeuring, J.: PolyP - Polytypic programming language extension. In: Proceedings of 24th ACM Symposium on Principles of Programming Languages (POPL 1997), Paris, France, pp. 470–482 (1997)
Liu, C.: Smalltalk, Objects, and Design, pp. x+289. Manning Publications Co., Greenwich (1996) ISBN 1-884777-27-9 (hc).
Milner, R., Tofte, M., Harper, R.W., MacQueen, D.: The Definition of Standard ML. MIT Press, Cambridge (1997) (revised)ISBN 0-262-63181-4
Jones, S.P., et al.: Haskell 98 – A non-strict, purely functional language (February 1999), Available at http://www.haskell.org/onlinereport/
Shi, R., Xi, H.: Some Examples of Structuring Libraries with Parametrized Classes (February 2004), Available at http://www.cs.bu.edu/~hwxi/ATS/lib
Wand, M.: Type Inference for Record Concatenation and Multiple Inheritance. In: Proceedings of Fourth IEEE Symposium on Logic in Computer Science, Pacific Grove, California, pp. 92–97 (1989)
Xi, H., Chen, C., Chen, G.: Guarded Recursive Datatype Constructors. In: Proceedings of the 30th ACM SIGPLAN Symposium on Principles of Programming Languages, New Orleans, January 2003, pp. 224–235 (2003)
Xi, H.: Unifying Object-Oriented Programming with Typed Functional Programming. In: Proceedings of ASIAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (ASIA-PEPM 2002), Aizu-Wakamatsu, Japan, September 2002, pp. 117–125 (2002)
Xi, H.: Applied Type System (July 2003), Available at http://www.cs.bu.edu/~hwxi/ATS
Xi, H.: Applied Type System (extended abstract). In: Berardi, S., Coppo, M., Damiani, F. (eds.) TYPES 2003. LNCS, vol. 3085, pp. 394–408. Springer, Heidelberg (2004)
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
Chen, C., Shi, R., Xi, H. (2004). A Typeful Approach to Object-Oriented Programming with Multiple Inheritance. In: Jayaraman, B. (eds) Practical Aspects of Declarative Languages. PADL 2004. Lecture Notes in Computer Science, vol 3057. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24836-1_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-24836-1_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-22253-8
Online ISBN: 978-3-540-24836-1
eBook Packages: Springer Book Archive