Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Communications of the ACM
Overlapping execution with transfer using non-strict execution for mobile programs
Proceedings of the eighth international conference on Architectural support for programming languages and operating systems
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Analysis and development of Java Grande benchmarks
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Java bytecode compression for low-end embedded systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Extracting library-based object-oriented applications
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
The Java Language Specification
The Java Language Specification
Practical extraction techniques for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dynamic dead-instruction detection and elimination
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Compact Java binaries for embedded systems
CASCON '99 Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research
JAZZ: an efficient compressed format for Java archive files
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Extracting Java Library Subsets for Deployment on Embedded Systems
CSMR '99 Proceedings of the Third European Conference on Software Maintenance and Reengineering
Extracting library-based Java applications
Communications of the ACM - Program compaction
Analysis of the Java Class File Format
Analysis of the Java Class File Format
Well: a language-agnostic foundation for compact and inherently safe mobile code
Well: a language-agnostic foundation for compact and inherently safe mobile code
SlimVM: a small footprint Java virtual machine for connected embedded systems
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Efficient incremental information flow control with nested control regions
Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
Hi-index | 0.00 |
Embedded systems are inherently limited in terms of local storage capacity. This limitation conflicts with the demands of modern virtual machine platforms, which require large amounts of library code to be present on each client device. These conflicting requirements are often resolved by providing specialized embedded versions of the standard libraries, but even these stripped down libraries consume significant resources. We present a solution for "always connected" mobile devices that is based on a zero footprint paradigm. In our approach, all code resides on a remote host. Only those parts of applications and libraries that are likely to be needed are transferred to the mobile device. Since it is difficult to predict statically which library parts will be needed at runtime, we combine static analysis and lazy code loading to transfer code with a high likelihood of execution ahead of time while other code (such as exception code) remains on the remote host and is provided only on demand. This allows us to perform not only dead code elimination, but also aggressive elimination of cold (or potentially unused) code. The granularity of our approach is flexible all the way down to individual basic blocks. Our method achieves total code size reductions of up to 95%.