Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1711506.1711507acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Virtual class support at the virtual machine level

Published: 25 October 2009 Publication History

Abstract

This paper describes how virtual classes can be supported in a virtual machine. Main-stream virtual machines such as the Java Virtual Machine and the .NET platform dominate the world today, and many languages are being executed on these virtual machines even though their embodied design choices conflict with the design choices of the virtual machine. For instance, there is a non-trivial mismatch between the main-stream virtual machines mentioned above and dynamically typed languages. One language concept that creates an even greater mismatch is virtual classes, in particular because fully general support for virtual classes requires generation of new classes at run-time by mixin composition. Languages like CaesarJ and Object Teams can express virtual classes restricted to the subset that does not require run-time generation of classes, because of the restrictions imposed by the Java Virtual Machine. We have chosen to support virtual classes by implementing a specialized virtual machine, and this paper describes how this virtual machine supports virtual classes with full generality.

References

[1]
B. Alpern, C. R. Attanasio, A. Cocchi, S. F. Hummel, D. Lieber, M. Mergen, J. C. Shepherd, and S. Smith. Implementing jalapeno in java. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '99), pages 314--324. ACM Press, 1999.
[2]
P. Altherr and V. Cremet. Inner classes and virtual types. Technical Report 2005013, EPFL, March 2005.
[3]
I. Aracic, V. Gasiunas, M. Mezini, and K. Ostermann. An overview of CaesarJ. In Transactions on Aspect-Oriented Software Development I, volume 3880/2006 of Lecture Notes in Computer Science, pages 135--173. Springer Berlin / Heidelberg, 2006.
[4]
J. R. Bell. Threaded code. In R. Morris, editor, Communications of the ACM, volume 16. ACM, June 1973.
[5]
B. Bobrow, D. DeMichiel, R. Gabriel, S. Keene, G. Kiczales, and D. Moon. Common Lisp Object System Specification. Document 88-002R. X3J13, June 1988.
[6]
G. Bracha. Executable grammars in Newspeak. Electron. Notes Theor. Comput. Sci., 193:3--18, 2007.
[7]
G. Bracha, P. Ahe, V. Bykov, Y. Kashai, W. Maddox, and E. Miranda. Objects as modules in Newspeak. Available at http://bracha.org/newspeak-modules.pdf, 2009.
[8]
M. G. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño dynamic optimizing compiler for java, 1999.
[9]
D. Clarke, S. Drossopoulou, J. Noble, and T. Wrigstad. Tribe: a simple virtual class calculus. In B. M. Barry and O. de Moor, editors, Proceedings of the 6th International Conference on Aspect-Oriented Software Development, AOSD 2007, Vancouver, British Columbia, Canada, March 12--16, 2007, volume 208 of ACM International Conference Proceeding Series, pages 121--134. ACM, 2007.
[10]
E. Ernst. gbeta -- a Language with Virtual Attributes, Block Structure, and Propagating, Dynamic Inheritance. PhD thesis, Department of Computer Science, University of Aarhus, Århus, Denmark, 1999.
[11]
E. Ernst, K. Ostermann, and W. R. Cook. A virtual class calculus. In POPL '06: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 270--282, New York, NY, USA, 2006. ACM Press.
[12]
M. Ertl and D. Gregg. The structure and performance of efficient interpreters. Journal of Instruction-Level Parallelism, 5:1--25, 2003.
[13]
D. S. Goldberg, R. B. Findler, and M. Flatt. Super and inner: together at last! SIGPLAN Not., 39(10):116--129, 2004.
[14]
J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification, Third Edition. Addison-Wesley, May 2005.
[15]
S. Herrmann. Object Teams: Improving modularity for crosscutting collaborations. In PROCS. OF NET. OBJECTDAYS, pages 248--264. Springer, 2002.
[16]
S. Herrmann, S. Herrmann, C. Hundt, C. Hundt, K. Mehner, and K. Mehner. Translation polymorphism in Object Teams. Technical report, Technical University Berlin, 2004.
[17]
R. Jones and R. Lins. Garbage Collection-Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, 1996.
[18]
B. B. Kristensen, O. L. Madsen, and B. Møller-Pedersen. The when, why and why not of the Beta programming language. In B. G. Ryder and B. Hailpern, editors, HOPL, pages 1--57. ACM, 2007.
[19]
T. Lindholm and F. Yellin. Java(TM) Virtual Machine Specification. Prentice Hall PTR, 2 edition, 1999.
[20]
O. L. Madsen and B. Møller-Pedersen. Virtual classes: A powerful mechanism in object-oriented programming. In Proceedings OOPSLA'89, ACM SIGPLAN Notices, volume 24, 10, pages 397--406, Oct. 1989.
[21]
O. L. Madsen, K. Nygaard, and B. Møller-Pedersen. Object-Oriented Programming in The Beta Programming Language. Addison-Wesley, 1993.
[22]
M. Mezini and K. Ostermann. Conquering aspects with Caesar. In AOSD '03: Proceedings of the 2nd international conference on Aspect-oriented software development, pages 90--99, New York, NY, USA, 2003. ACM Press.
[23]
A. B. Nielsen. Efficient virtual machine support for dynamic patterns. Master's thesis, Department of Computer Science, University of Aarhus, 2008. Available at http://www.cs.au.dk/~abachn/publications.html.
[24]
A. B. Nielsen and E. Ernst. Optimizing dynamic class composition in a statically typed language. In R. F. Paige and B. Meyer, editors, TOOLS EUROPE 2008: Objects, Components, Models and Patterns, volume 11 of Lecture Notes in Business Information Processing, pages 161--177. Springer, June/July 2008. Available at http://www.cs.au.dk/~abachn/publications.html.
[25]
A. B. Nielsen and E. Ernst. Download of the gbeta compiler and virtual machine, 2009. Available at http://www.cs.au.dk/~abachn/vmil-2009.tar.gz.
[26]
N. Nystrom, X. Qi, and A. C. Myers. J&: nested intersection for scalable software composition. In OOPSLA '06: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications, pages 21--36, New York, NY, USA, 2006. ACM.
[27]
M. Odersky, V. Cremet, C. Röckl, and M. Zenger. A nominal theory of objects with dependent types. In L. 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.
[28]
M. Torgersen. The expression problem revisited-four new solutions using generics. In In Proceedings of the 18th European Conference on Object-Oriented Programming, pages 123--143. Springer-Verlag, 2004.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
VMIL '09: Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
October 2009
47 pages
ISBN:9781605588742
DOI:10.1145/1711506
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 October 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. class combination
  2. gbeta
  3. object oriented programing language
  4. virtual classes
  5. virtual machines

Qualifiers

  • Research-article

Conference

OOPSLA09
Sponsor:

Acceptance Rates

Overall Acceptance Rate 4 of 4 submissions, 100%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 02 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2010)Tribal ownershipACM SIGPLAN Notices10.1145/1932682.186951045:10(618-633)Online publication date: 17-Oct-2010
  • (2010)Homogeneous family sharingACM SIGPLAN Notices10.1145/1932682.186950245:10(520-538)Online publication date: 17-Oct-2010
  • (2010)Tribal ownershipProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869510(618-633)Online publication date: 17-Oct-2010
  • (2010)Homogeneous family sharingProceedings of the ACM international conference on Object oriented programming systems languages and applications10.1145/1869459.1869502(520-538)Online publication date: 17-Oct-2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media