Abstract
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 statically. Static class loading has the net result of dramatically simplifying the design of the SSP, as well as increasing its performance. Because of the high consequence nature of its applications, strong evidence must be provided that all aspects of the SSP have been implemented correctly. This includes the class loader. This article explores the possibility of formally verifying a class loader for the SSP implemented in the strategic programming language TL. Specifically, an implementation of the core activities of an abstract class loader is presented and its verification in ACL2 is considered.
- Bergstra, J. A. 1989. Algebraic Specification. ACM Press, New York.]] Google Scholar
- Borovanský, P., Kirchner, C., Kirchner, H., Moreau, P.-E., and Ringeissen, C. 1998. An overview of elan. Electr. Notes Theor. Comput. Sci. 15.]]Google Scholar
- Boyer, R. S. and Moore, J. S. 1988. A Computational Logic Handbook. Academic Press, New York.]] Google Scholar
- Boyer, R. S. and Yu, Y. 1996. Automated proofs of object code for a widely used microprocessor. J. ACM, 43, 1, 166--192.]] Google Scholar
- Cirstea, H. and Kirchner, C. 1999. An Introduction to the Rewriting Calculus. Research Report RR-3818, INRIA (Dec.).]]Google Scholar
- HATS. http://faculty.ist.unomaha.edu/winter/hats-uno/hatsweb/index.html.]]Google Scholar
- Kaufmann, M., Manolios, P., and Moore, J. S., Eds. 2000a. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Boston, MA.]] Google Scholar
- Kaufmann, M., Manolios, P., and Moore, J. S., Eds. 2000b. Computer-Aided Reasoning: Case Studies. Kluwer Academic Publishers, Boston, MA.]]Google Scholar
- Lindholm, T. and Yellin, F., Eds. 1999. The Java Virtual Machine 2nd ed. Addison-Wesley, Reading, MA.]] Google Scholar
- Liu, H. and Moore, J. S. 2003. Executable jvm model for analytical reasoning: A study. In IVME '03: Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators. ACM Press, New York. 15--23.]] Google Scholar
- Liu, H. and Moore, J. S. 2004. Java program verification via a jvm deep embedding in acl2.]]Google Scholar
- McCoy, J. A. 2000. 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.]]Google Scholar
- Moore, J. S., Eds. 1996. Piton: A Mechanically Verified Assembly-Level Language (Automated Reasoning Series). Kluwer Academic Publishers. Boston, MA.]] Google Scholar
- Moore, J. S. 1999. Proving theorems about Java-like byte code. In Correct System Design, Recent Insight and Advances (to Hans Langmaack on the Occasion of his Retirement from his Professorship at the University of Kiel), Springer-Verlag, New York. 139--162.]] Google Scholar
- Moore, J. S. 2003. Proving theorems about Java and the JVM with ACL2. In Models, Algebras and Logic of Engineering Software. IOS Press, Amsterdam. 227--290.]]Google Scholar
- Moore, J. S. and Porter, G. 2001. An executable formal java virtual machine thread model. In Java Virtual Machine Research and Technology Symposium. 91--104.]] Google Scholar
- van den Brand, M. G. J., Klint, P., and Vinju, J. J. 2003. Term rewriting with traversal functions. ACM Trans. Softw. Eng. Methodol. 12, 2, 152--190.]] Google Scholar
- Venners, B. 1998. Inside the Java Virtual Machine. McGraw-Hill, New York.]] Google Scholar
- Visser, E. 1999. Strategic pattern matching. In RtA '99: Proceedings of the 10th International Conference on Rewriting Techniques and Applications. London. Springer-Verlag, New York. 30--44.]] Google Scholar
- Visser, E. 2001. Scoped dynamic rewrite rules. Electronic Notes in Theoretical Computer Science, 59, 4.]]Google Scholar
- Visser, E., Benaissa, Z. e. A., and Tolmach, A. 1998. Building program optimizers with rewriting strategies. In Proceedings of the Third ACM SIGPLAN International Conference on Functional Programming (ICFP'98). 13--26.]] Google Scholar
- Wickstrom, G. L., Davis, J., Morrison, S. E., Roach, S., and Winter, V. L. 2004. The ssp: An example of high-assurance system engineering. In HASE 2004: The 8th IEEE International Symposium on High Assurance Systems Engineering.]]Google Scholar
- Winter, V. 2004a. Strategy application, observability, and the choice combinator. Technical Report SAND2004-0871, Sandia National Laboratories (Mar.).]]Google Scholar
- Winter, V. 2004b. Strategy construction in the higher-order framework of TL. Electronic Notes in Theoretical Computer Science (ENTCS) 124.]]Google Scholar
- Winter, V. and Subramaniam, M. 2004. Dynamic strategies, transient strategies, and the distributed data problem. Science of Computer Programming (Special Issue on Program Transformation) 52, 165--212.]] Google Scholar
- Winter, V. L., Roach, S., and Wickstrom, G. 2003. Transformation-oriented programming: A development methodology for high assurance software. In Advances in Computers: Highly Dependable Software, M. Zelkowitz, Ed. vol. 58. 47--116.]]Google Scholar
Index Terms
A transformational perspective into the core of an abstract class loader for the SSP
Recommendations
A Transformational Overview of the Core Functionality of an Abstract Class Loader for the SSP
WORDS '05: Proceedings of the 10th IEEE International Workshop on Object-Oriented Real-Time Dependable SystemsThe 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 ...
Class Loader Firmware on Java SoC
ISCSCT '08: Proceedings of the 2008 International Symposium on Computer Science and Computational Technology - Volume 01Java is one of the most popular programming architectures because of its platform-independence. A Java processor called “JOP” accelerates the speed of Java applications by executing Java bytecode instructions directly instead of by software emulation. ...
Generative programming techniques for Java library migration
GPCE '07: Proceedings of the 6th international conference on Generative programming and component engineeringEmbedded 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 ...






Comments