Skip to main content

Extending the SSCLI to Support Dynamic Inheritance

  • Conference paper
Software and Data Technologies (ICSOFT 2008)

Abstract

This paper presents a step forward on a research trend focused on increasing runtime adaptability of commercial JIT-based virtual machines, describing how to include dynamic inheritance into this kind of platforms. A considerable amount of research aimed at improving runtime performance of virtual machines has converted them into the ideal support for developing different types of software products. Current virtual machines do not only provide benefits such as application interoperability, distribution and code portability, but they also offer a competitive runtime performance.

Since JIT compilation has played a very important role in improving runtime performance of virtual machines, we first extended a production JIT-based virtual machine to support efficient language-neutral structural reflective primitives of dynamically typed programming languages. This article presents the next step in our research work: supporting language-neutral dynamic inheritance for both statically and dynamically typed programming languages. Executing both kinds of programming languages over the same platform provides a direct interoperation between them.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Rossum, G.V., Drake, F.L.: The Python Language Ref. Manual. Network Theory (2003)

    Google Scholar 

  2. Thomas, D., Fowler, C., Hunt, A.: Programming Ruby, 2nd edn. Addison-Wesley, Reading (2004)

    Google Scholar 

  3. Thomas, D., Hansson, D.H., Schwarz, A., Fuchs, T., Breed, L., Clark, M.: Agile Web Development with Rails. A Pragmatic Guide. Pragmatic Bookshelf (2005)

    Google Scholar 

  4. Grogan, M.: JSR 223. scripting for the Java platform (2008), http://www.jcp.org

  5. Ortin, F., Lopez, B., Perez-Schofield, J.B.: Separating adaptable persistence attributes through computational reflection. IEEE Soft. 21(6) (November 2004)

    Google Scholar 

  6. Ortin, F., Cueva, J.M.: Dynamic adaptation of application aspects. Journal of Systems and Software (May 2004)

    Google Scholar 

  7. Nierstrasz, O., Bergel, A., Denker, M., Ducasse, S., Gaelli, M., Wuyts, R.: On the revival of dynamic languages. In: Software Composition 2005. LNCS. Springer, Heidelberg (2005)

    Google Scholar 

  8. Ortin, F., Redondo, J.M., Vinuesa, L., Cueva, J.M.: Adding structural reflection to the SSCLI. Journal of Net Technologies, 151–162 (May 2005)

    Google Scholar 

  9. Redondo, J.M., Ortin, F., Cueva, J.M.: Optimizing reflective primitives of dynamic languages. Int. Journal of Soft. Eng. and Knowledge Eng (2008)

    Google Scholar 

  10. Redondo, J.M., Ortin, F., Cueva, J.M.: Diseño de primitivas de reflexión estructural eficientes integradas en SSCLI. In: Proceedings of the JISBD 2006 (October 2006)

    Google Scholar 

  11. Redondo, J.M., Ortin, F., Cueva, J.M.: Optimización de las primitivas de reflexión ofrecidas por los lenguajes dinámicos. In: Proceedings of the PROLE 2006, October 2006, pp. 53–64 (2006)

    Google Scholar 

  12. Rose, J.: Java specification request 292; supporting dynamically typed languages on the Java platform (2008), http://www.jcp.org/en/jsr/detail?id=292

  13. Chiles, B.: Common language runtime inside out: IronPython and the Dynamic Language Runtime (2008), http://msdn2.microsoft.com/en-us/magazine/cc163344.aspx

  14. OpenJDK: The Da Vinci machine (March 2008), http://openjdk.java.net/projects/mlvm/

  15. Borning, A.H.: Classes versus prototypes in object-oriented languages. In: ACM/IEEE Fall Joint Computer Conference, pp. 36–40 (1986)

    Google Scholar 

  16. Lucas, C., Mens, K., Steyaert, P.: Typing dynamic inheritance: A trade-off between substitutability and extensibility. Technical Report vub-prog-tr-95-03, Vrije Un. Brussel (1995)

    Google Scholar 

  17. Pierce, B.P.: Types and Programming Languages. MIT Press, Cambridge (2002)

    Google Scholar 

  18. MetaSlash: PyChecker: a Python source code checking tool. Sourceforge (2008)

    Google Scholar 

  19. Meijer, E., Drayton, P.: Static typing where possible, dynamic typing when needed: The end of the cold war between programming languages. In: OOPSLA Workshop on Revival of Dynamic Languages (2004)

    Google Scholar 

  20. Ortin, F.: The StaDyn programming language (2008), http://www.reflection.uniovi.es

  21. Chambers, C., Ungar, D.: Customization: Optimizing compiler technology for Self, a dynamically-typed oo programming language. In: ACM PLDI Conference (1989)

    Google Scholar 

  22. Udell, J.: D. languages and v. machines. Infoworld (August 2003)

    Google Scholar 

  23. Maes, P.: Computational Reflection. PhD thesis, Vrije Universiteit (1987)

    Google Scholar 

  24. Cazzola, W., Chiba, S., Saake, G.: Evolvable pattern implementations need generic aspects. In: ECOOP 2004 Workshop on Reflection, AOP, and Meta-Data for Software Evolution (2004)

    Google Scholar 

  25. Diehl, S., Hartel, P., Sestoft, P.: Abstract machines for programming language implementation. In: Future Generation Computer Systems, p. 739 (2000)

    Google Scholar 

  26. Meijer, E., Gough, J.: Technical overview of the CLR. Technical report, Microsoft (2000)

    Google Scholar 

  27. Singer, J.: JVM versus CLR: a comparative study. In: ACM Proceedings of the 2nd international conference on principles and practice of programming in Java (2003)

    Google Scholar 

  28. Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly, Sebastopol (2003)

    Google Scholar 

  29. DeMichiel, L.G., Gabriel, R.P.: The common lisp object system: an overview. In: Bézivin, J., Hullot, J.-M., Lieberman, H., Cointe, P. (eds.) ECOOP 1987. LNCS, vol. 276, pp. 151–170. Springer, Heidelberg (1987)

    Chapter  Google Scholar 

  30. Deutsch, L.P., Schiffman, L.A.: Efficient implementation of the Smalltalk-80 system. In: 11th annual ACM Symposium on Principles of Programming Languages, pp. 297–302 (1984)

    Google Scholar 

  31. Ancona, D., Anderson, C., Damiani, F., et al.: A type preserving translation of flickle into java. Electronic Notes in Theoretical Computer Science, vol. 62 (2002)

    Google Scholar 

  32. Serrano, M.: Wide classes. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 391. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  33. Kleinder, J., Golm, G.: MetaJava: An efficient run-time meta architecture for Java. In: International Workshop on Object Orientation in Operating Systems, pp. 420–427 (1996)

    Google Scholar 

  34. Ungar, D., Chambers, G., Chang, B.W., Holzl, U.: Organizing programs without classes. In: Lisp and Symbolic Computation (1991)

    Google Scholar 

  35. Wolczko, M., Agesen, O., Ungar, D.: Towards a universal implementation substrate for object-oriented languages. Sun Microsystems Laboratories (1996)

    Google Scholar 

  36. CodeHaus: Boo. a wrist friendly language for the CLI (2008), http://boo.codehaus.org/

  37. Bracha, G., Griswold, D.: Strongtalk: Typechecking Smalltalk in a production environment. In: OOPSLA 1993, ACM SIGPLAN Notices, vol. 28, pp. 215–230 (1993)

    Google Scholar 

  38. Ernst, E.: Dynamic inheritance in a statically typed language. Nordic Journal of Computing 6(1), 72–92 (1999)

    Google Scholar 

  39. Taivalsaari, A.: Kevo: A prototype-based OO language based on concatenation and module operations. Technical report, U. of Victoria, British Columbia (1992)

    Google Scholar 

  40. Project, T.: TheTunes project (March 2008), http://slate.tunes.org/

  41. Cutsem, T.V., Mostinckx, S., Boix, E.G., Dedecker, J., Meuter, W.D.: AmbientTalk: Object-oriented event-driven programming in mobile ad hoc networks. In: XXVI International Conference of the Chilean Computer Science Society, SCCC 2007 (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2009 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Redondo, J.M., Ortin, F., Perez-Schofield, J.B.G. (2009). Extending the SSCLI to Support Dynamic Inheritance. In: Cordeiro, J., Shishkov, B., Ranchordas, A., Helfert, M. (eds) Software and Data Technologies. ICSOFT 2008. Communications in Computer and Information Science, vol 47. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-05201-9_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-05201-9_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-05200-2

  • Online ISBN: 978-3-642-05201-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics