skip to main content
10.1145/1218563.1218578acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmodularityConference Proceedingsconference-collections
Article

Tribe: a simple virtual class calculus

Published: 14 March 2007 Publication History

Abstract

Beginning with BETA, a range of programming language mechanisms such as virtual classes (class-valued attributes of objects) have been developed to allow inheritance in the presence of mutually dependent classes. This paper presents Tribe, a type system which generalises and simplifies other formalisms of such mechanisms, by treating issues which are inessential for soundness, such as the precise details of dispatch and field initialisation, as orthogonal to the core formalism. Tribe can support path types dependent simultaneously on both classes and objects, which is useful for writing library code, and ubiquitous access to an object's family, which offers family polymorphism without the need to drag around family arguments. Languages based on Tribe will be both simpler and more expressive than existing designs, while having a simpler type system, serving as a useful basis for future language designs.

References

[1]
Ivica Aracic, Vaidas Gasiunas, Mira Mezini, and Klaus Ostermann. An overview of Caesar J. Transactions on Aspect-Oriented Software Development, LNCS, 3880:135--173, February 2006.
[2]
David Aspinall and Martin Hofmann. Dependent types. Chapter in {26}.
[3]
Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah, 1992.
[4]
David Clarke. Object Ownership and Containment. PhD thesis, School of Computer Science and Engineering, University of New South Wales, Sydney, Australia, 2001.
[5]
David Clarke. Nested classes, nested objects, and ownership. Invited talk at FOOL/WOOD, January 2006.
[6]
David Clarke, Sophia Drossopoulou, James Noble, and Tobias Wrigstad. Tribe: More types for virtual classes, available from http://slurp.doc.ic.ac.uk/pubs.html#tribe, December 2005.
[7]
David Clarke and Tobias Wrigstad. External uniqueness is unique enough. In Proceedings of the 17th European Conference on Object-Oriented Programming (ECOOP), Darmstadt, Germany, 2003.
[8]
Vincent Cremet, François Garillot, Sergueï Lenglet, and Martin Odersky. A core calculus for Scala type checking. In Rastislav Kralovic and Pawel Urzyezyn, editors, Mathematical Foundations of Computer Science 2006, 31st International Symposium, MFCS 2006, Stará Lesná, Slovakia, August 28-September 1, 2006, Proceedings, volume 4162 of Lecture Notes in Computer Science, pages 1--23. Springer, 2006.
[9]
Robert DeLine and Manuel Fähndrich. The Fugue protocol checker: Is your software baroque? Technical Report MSR-TR-2004-07, Microsoft Research, 2003.
[10]
Erik Ernst. gBeta---A Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritiance. PhD thesis, University of Aarhus, Denmark, 1999.
[11]
Erik Ernst. Family polymorphism. In Proceedings of the 15th European Conference on Object-Oriented Programming, London, UK, 2001. Springer-Verlag.
[12]
Erik Ernst, Klaus Ostermann, and William R. Cook. A virtual class calculus. In Proceedings of Principles of Programming Languages (POPL), Charleston, South Carolina, USA, January 2006.
[13]
Martin Odersky et al. An overview of the Scala programming language. Technical Report IC/2004/64, EPFL Lausanne, Switzerland, 2004.
[14]
Manuel Fähndrich and K. Rustan M. Leino. Declaring and checking non-null types in an object-oriented language. In OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, 2003.
[15]
Types Forum. Completeness of subtype judgments. Discussions April 25 and onwards, 2006. http://lists.seas.upenn.edu/pipermail/types-list.
[16]
James Gosling, Bill Joy, Guy Steele, and Gilad Bracha. Java Language Specification. Addison-Wesley Professional, 3rd edition, 2005.
[17]
Atsushi Igarashi, Chieri Saito, and Mirko Viroli. Lightweight family polymorphism. In Proceedings of the 3rd Asian Symposium on Programming Languages and Systems (APLAS'05), volume 3780 of LNCS, Tsukuba, Japan, 2005.
[18]
Paul Jolly, Sophia Drossopoulou, Christopher Anderson, and Klaus Ostermann. Simple dependent types: Concord. In 6th ECOOP Workshop on Formal Techniques for Java-like Languages, June 2004.
[19]
Kitt. Wikipedia Article. http://en.wikipedia.org/wiki/KITT.
[20]
Ole Lehrmann Madsen and Birger Møller-Pedersen. Virtual classes--- a powerful mechanism in object-oriented programming. In OOPSLA '89: Proceedings of the 4th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 1989.
[21]
Ole Lehrmann Madsen, Birger Møller-Pedersen, and Kristen Nygaard. Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, Reading, MA, USA, 1993.
[22]
Jan-Willem Maessen and Xiaowei Shen. Improving the Java memory model using CRF. In OOPSLA '00: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, 2000.
[23]
Mira Mezini and Klaus Ostermann. Conquering aspects with Caesar. In Mehmet Aksit, editor, Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD), pages 90--100, Boston, USA, March 2003.
[24]
Nathaniel Nystrom, Sephen Chong, and Andrew C. Myers. Scalable extensibility via nested inheritance. In Proceedings of Objects, Programming Langages, Systems and Applications (OOPSLA), Vancouver, Canada, October 2004.
[25]
Martin Odersky, Vincent Cremet, Christine Röckl, and Matthias Zenger. A nominal theory of objects with dependent types. In Luca Cardelli, editor, ECOOP 2003 - Object-Oriented Programming, 17th European Conference, Darmstadt, Germany, July 21--25, 2003, Proceedings, volume 2743 of Lecture Notes in Computer Science, pages 201--224. Springer, 2003.
[26]
Benjamin Pierce, editor. Advanced Topics in Types and Programming Languages. MIT Press, 2004.
[27]
Nathanael Schärli, Stéphane Ducasse, Oscar Nierstrasz, and Andrew P. Black. Traits: Composable units of behaviour. In Luca Cardelli, editor, ECOOP 2003 - Object-Oriented Programming: 17th European Conference, volume 2473 of Lecture Notes In Computer Science, pages 248--274. Springer-Verlag, July 2003.
[28]
Bjarne Stroustroup. The C++Programming Language. Addison-Wesley, 3rd edition, 1997.
[29]
Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38--94, 1994.
[30]
Tobias Wrigstad. Ownership-Based Alias Management. PhD thesis, Department of Computer and Systems Science, Royal Institute of Technology, Kista, Stockholm, May 2006.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
AOSD '07: Proceedings of the 6th international conference on Aspect-oriented software development
March 2007
246 pages
ISBN:1595936157
DOI:10.1145/1218563
  • Conference Chair:
  • Brian Barry
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • Google Inc.
  • IBMR: IBM Research
  • AOSA: Aspect-Oriented Software Association
  • AOSD-Europe: European Network of Excellence on Aspect-Oriented Software Development
  • Eclipse Foundation

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 March 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. subtyping
  2. virtual classes

Qualifiers

  • Article

Conference

AOSD07
Sponsor:
  • IBMR
  • AOSA
AOSD07: 6th International Conference on Aspect-Oriented Software Development
March 12 - 16, 2007
British Columbia, Vancouver, Canada

Acceptance Rates

Overall Acceptance Rate 41 of 139 submissions, 29%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Dec 2024

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media