Advertisement

Extending the SSCLI to Support Dynamic Inheritance

  • Jose Manuel Redondo
  • Francisco Ortin
  • J. Baltasar Garcia Perez-Schofield
Part of the Communications in Computer and Information Science book series (CCIS, volume 47)

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.

Keywords

Virtual Machine Runtime Performance Static Type System Common Language Infrastructure Static Type Check 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Rossum, G.V., Drake, F.L.: The Python Language Ref. Manual. Network Theory (2003)Google Scholar
  2. 2.
    Thomas, D., Fowler, C., Hunt, A.: Programming Ruby, 2nd edn. Addison-Wesley, Reading (2004)Google Scholar
  3. 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. 4.
    Grogan, M.: JSR 223. scripting for the Java platform (2008), http://www.jcp.org
  5. 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. 6.
    Ortin, F., Cueva, J.M.: Dynamic adaptation of application aspects. Journal of Systems and Software (May 2004)Google Scholar
  7. 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. 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. 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. 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. 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. 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. 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. 14.
    OpenJDK: The Da Vinci machine (March 2008), http://openjdk.java.net/projects/mlvm/
  15. 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. 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. 17.
    Pierce, B.P.: Types and Programming Languages. MIT Press, Cambridge (2002)Google Scholar
  18. 18.
    MetaSlash: PyChecker: a Python source code checking tool. Sourceforge (2008)Google Scholar
  19. 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. 20.
    Ortin, F.: The StaDyn programming language (2008), http://www.reflection.uniovi.es
  21. 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. 22.
    Udell, J.: D. languages and v. machines. Infoworld (August 2003)Google Scholar
  23. 23.
    Maes, P.: Computational Reflection. PhD thesis, Vrije Universiteit (1987)Google Scholar
  24. 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. 25.
    Diehl, S., Hartel, P., Sestoft, P.: Abstract machines for programming language implementation. In: Future Generation Computer Systems, p. 739 (2000)Google Scholar
  26. 26.
    Meijer, E., Gough, J.: Technical overview of the CLR. Technical report, Microsoft (2000)Google Scholar
  27. 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. 28.
    Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly, Sebastopol (2003)Google Scholar
  29. 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)CrossRefGoogle Scholar
  30. 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. 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. 32.
    Serrano, M.: Wide classes. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 391. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  33. 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. 34.
    Ungar, D., Chambers, G., Chang, B.W., Holzl, U.: Organizing programs without classes. In: Lisp and Symbolic Computation (1991)Google Scholar
  35. 35.
    Wolczko, M., Agesen, O., Ungar, D.: Towards a universal implementation substrate for object-oriented languages. Sun Microsystems Laboratories (1996)Google Scholar
  36. 36.
    CodeHaus: Boo. a wrist friendly language for the CLI (2008), http://boo.codehaus.org/
  37. 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. 38.
    Ernst, E.: Dynamic inheritance in a statically typed language. Nordic Journal of Computing 6(1), 72–92 (1999)Google Scholar
  39. 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. 40.
    Project, T.: TheTunes project (March 2008), http://slate.tunes.org/
  41. 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

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Jose Manuel Redondo
    • 1
  • Francisco Ortin
    • 1
  • J. Baltasar Garcia Perez-Schofield
    • 2
  1. 1.Computer Science DepartmentUniversity of OviedoOviedoSpain
  2. 2.Computer Science DepartmentUniversity of VigoOurenseSpain

Personalised recommendations