ABSTRACT
Embedded systems can be viewed as scaled-down versions of their stand-alone counterparts. In many cases, the software abstractions and libraries for embedded systems can be derived from libraries for stand-alone systems. One such example is the Java library for Java Virtual Machines. An embedded system does not always support all features as in the case of an embedded JVM that does not support floating-point operations. In such cases, an existing library needs to be migrated to the embedded platform. Libraries are large collections of code and manual migration is a daunting task. In this paper, we provide an automated approach to the library migration problem using program transformations. The solution developed in this paper enables rapid adaptation and re-targeting of Java libraries in the presence of evolving libraries and evolving embedded platforms.
- Robert L. Akers, Ira D. Baxter, Michael Mehlich, Brian J. Ellis, and Kenn R. Luecke. Case study: Re-engineering C++ component models via automatic program transformation. Information and Software Technology, 49:275--291, 2007. Google ScholarDigital Library
- Ittai Balaban, Frank Tip, and Robert Fuhrer. Refactoring Support for Class Library Migration. In Proceedings of OOPSLA 2005, pages 265--279, San Diego, California, United States, 2005. ACM. Google ScholarDigital Library
- Danny Dig and Ralph Johnson. The Role of Refactorings in API Evolution. In Proceedings of the 21st IEEE International Conference on Software Maintenance (ICSM'05), pages 389--398. IEEE, 2005. Google ScholarDigital Library
- Alan Donovan, Adam Kiezun, Matthew S. Tschantz, and Michael D. Ernst. Converting Java Programs to Use Generic Libraries. In Proceedings of OOPSLA 2004, pages 15--34, Vancouver, BC, Canada, 2004. Google ScholarDigital Library
- Johannes Henkel and Amer Diwan. CatchUp! Capturing and Replaying Refactorings to Support API Evolution. In Proceedings of the 27th International Conference on Software Engineering (ICSE'05), St.Louis, Missouri, USA, 2005. Google ScholarDigital Library
- R. Lämmel and J. Visser. Typed Combinators for Generic Traversal. In Practical Aspects of Declarative Programming PADL 2002, volume 2257 of LNCS, pages 137--154. Springer-Verlag, January 2002. Google ScholarDigital Library
- Ralf Lämmel, Eelco Visser, and Joost Visser. The Essence of Strategic Programming. 2002.Google Scholar
- Daniel Lohmann, Wolfgang Schröder-Preikschat, and Olaf Spinczyk. On the Design and Development of a Customizable Embedded Operating System. In Proceedings of the International Workshop on Dependable Embedded Systems, 23rd Symposium on Reliable Distributed Systems (SRDS 2004), October 2004.Google Scholar
- J. A. McCoy. An Embedded System for Safe, Secure and Reliable Execution of High Consequence Software. In HASE 2004: The 5th IEEE International Symposium on High Assurance Systems Engineering, pages 107--114, Albuquerque, New Mexico, United States, 2004. IEEE.Google Scholar
- Sun Microsystems. Java card technology. http://java.sun.com/products/javacard/.Google Scholar
- Bjorn De Sutter, Frank Tip, and Julian Dolby. Customization of Java Library Classes using Type Constraints and Profile Information. In Proceedings of ECOOP 2004, pages 585--609, Oslo, Norway, 2004.Google ScholarCross Ref
- Frank Tip, Adam Kiezun, and Dirk Baumer. Refactoring for Generalization using Type Constraints. In Proceedings of OOPSLA 2003, pages 13--26, Anaheim, California, USA, 2003. Google ScholarDigital Library
- E. Visser, Z. e. A. Benaissa, and A. Tolmach. Building program optimizers with rewriting strategies. In third ACM SIGPLAN International Conference on Functional Programming (ICFP'98), pages 13--26. ACM Press, September 1998. Google ScholarDigital Library
- G. L. Wickstrom, J. Davis, S. E. Morrison, S. Roach, and V. L. Winter. The SSP: An Example of High-Assurance System Engineering. In HASE 2004: The 8th IEEE International Symposium on High Assurance Systems Engineering, pages 167--177, Tampa, Florida, United States, 2004. IEEE. Google ScholarDigital Library
- V. Winter and M. Subramaniam. Dynamic Strategies, Transient Strategies, and the Distributed Data Problem. Science of Computer Programming (Special Issue on Program Transformation), 52:165--212, 2004. Google ScholarDigital Library
- Victor Winter and Jason Beranek. Program Transformation Using HATS 1.84. In Ralf Lämmel, JoHao Saraiva, and Joost Visser, editors, Generative and Transformational Techniques in Software Engineering (GTTSE), volume 4143 of LNCS, pages 378--396, 2006. Google ScholarDigital Library
- Victor L. Winter, Christopher Scalzo, Arpit Jain, Brent Kucera, and Azamatbek Mametjanov. Comprehension of generative techniques. In Software Transformation Systems Workshop (STS), 2006.Google Scholar
- V. L. Winter. Strategy Construction in the Higher-Order Framework of TL. Electronic Notes in Theoretical Computer Science (ENTCS), 124, 2004.Google Scholar
Index Terms
- Generative programming techniques for Java library migration
Recommendations
Model-driven Transformation-based Generation of Java Stress Tests
This paper describes a practical application of transformation-based analysis and code generation. An overview is given of an approach for automatically constructing Java stress tests whose execution exercises all ''interesting'' class initialization ...
A transformational perspective into the core of an abstract class loader for the SSP
The SSP is a hardware implementation of a subset of the JVM for use in high-consequence embedded applications. In this context, a majority of the activities belonging to class loading, as it is defined in the specification of the JVM, can be performed ...
Comments