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.
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
Rossum, G.V., Drake, F.L.: The Python Language Ref. Manual. Network Theory (2003)
Thomas, D., Fowler, C., Hunt, A.: Programming Ruby, 2nd edn. Addison-Wesley, Reading (2004)
Thomas, D., Hansson, D.H., Schwarz, A., Fuchs, T., Breed, L., Clark, M.: Agile Web Development with Rails. A Pragmatic Guide. Pragmatic Bookshelf (2005)
Grogan, M.: JSR 223. scripting for the Java platform (2008), http://www.jcp.org
Ortin, F., Lopez, B., Perez-Schofield, J.B.: Separating adaptable persistence attributes through computational reflection. IEEE Soft. 21(6) (November 2004)
Ortin, F., Cueva, J.M.: Dynamic adaptation of application aspects. Journal of Systems and Software (May 2004)
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)
Ortin, F., Redondo, J.M., Vinuesa, L., Cueva, J.M.: Adding structural reflection to the SSCLI. Journal of Net Technologies, 151–162 (May 2005)
Redondo, J.M., Ortin, F., Cueva, J.M.: Optimizing reflective primitives of dynamic languages. Int. Journal of Soft. Eng. and Knowledge Eng (2008)
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)
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)
Rose, J.: Java specification request 292; supporting dynamically typed languages on the Java platform (2008), http://www.jcp.org/en/jsr/detail?id=292
Chiles, B.: Common language runtime inside out: IronPython and the Dynamic Language Runtime (2008), http://msdn2.microsoft.com/en-us/magazine/cc163344.aspx
OpenJDK: The Da Vinci machine (March 2008), http://openjdk.java.net/projects/mlvm/
Borning, A.H.: Classes versus prototypes in object-oriented languages. In: ACM/IEEE Fall Joint Computer Conference, pp. 36–40 (1986)
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)
Pierce, B.P.: Types and Programming Languages. MIT Press, Cambridge (2002)
MetaSlash: PyChecker: a Python source code checking tool. Sourceforge (2008)
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)
Ortin, F.: The StaDyn programming language (2008), http://www.reflection.uniovi.es
Chambers, C., Ungar, D.: Customization: Optimizing compiler technology for Self, a dynamically-typed oo programming language. In: ACM PLDI Conference (1989)
Udell, J.: D. languages and v. machines. Infoworld (August 2003)
Maes, P.: Computational Reflection. PhD thesis, Vrije Universiteit (1987)
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)
Diehl, S., Hartel, P., Sestoft, P.: Abstract machines for programming language implementation. In: Future Generation Computer Systems, p. 739 (2000)
Meijer, E., Gough, J.: Technical overview of the CLR. Technical report, Microsoft (2000)
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)
Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly, Sebastopol (2003)
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)
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)
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)
Serrano, M.: Wide classes. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 391. Springer, Heidelberg (1999)
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)
Ungar, D., Chambers, G., Chang, B.W., Holzl, U.: Organizing programs without classes. In: Lisp and Symbolic Computation (1991)
Wolczko, M., Agesen, O., Ungar, D.: Towards a universal implementation substrate for object-oriented languages. Sun Microsystems Laboratories (1996)
CodeHaus: Boo. a wrist friendly language for the CLI (2008), http://boo.codehaus.org/
Bracha, G., Griswold, D.: Strongtalk: Typechecking Smalltalk in a production environment. In: OOPSLA 1993, ACM SIGPLAN Notices, vol. 28, pp. 215–230 (1993)
Ernst, E.: Dynamic inheritance in a statically typed language. Nordic Journal of Computing 6(1), 72–92 (1999)
Taivalsaari, A.: Kevo: A prototype-based OO language based on concatenation and module operations. Technical report, U. of Victoria, British Columbia (1992)
Project, T.: TheTunes project (March 2008), http://slate.tunes.org/
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)