Optimizing an ANSI C interpreter with superoperators
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Communications of the ACM
Enhanced code compression for embedded RISC processors
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Automatic inference of models for statistical code compression
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
A code compression system based on pipelined interpreters
Software—Practice & Experience
Efficient variants of Huffman codes in high level languages
SIGIR '85 Proceedings of the 8th annual international ACM SIGIR conference on Research and development in information retrieval
Compiler techniques for code compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
Split-stream dictionary program compression
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
An efficient context-free parsing algorithm
Communications of the ACM
A Retargetable C Compiler: Design and Implementation
A Retargetable C Compiler: Design and Implementation
Prediction by Grammatical Match
DCC '00 Proceedings of the Conference on Data Compression
Text Compression Based on Variable-to-Fixed Codes for Markov Sources
DCC '00 Proceedings of the Conference on Data Compression
DCC '98 Proceedings of the Conference on Data Compression
Compression via Guided Parsing
DCC '98 Proceedings of the Conference on Data Compression
Code generation and optimization for embedded digital signal processors
Code generation and optimization for embedded digital signal processors
The case for compressed caching in virtual memory systems
ATEC '99 Proceedings of the annual conference on USENIX Annual Technical Conference
On the side-effects of code abstraction
Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems
Generation of fast interpreters for Huffman compressed bytecode
Proceedings of the 2003 workshop on Interpreters, virtual machines and emulators
Grammar-based compression of interpreted code
Communications of the ACM - Program compaction
Compressing MIPS code by multiple operand dependencies
ACM Transactions on Embedded Computing Systems (TECS)
Code compression by register operand dependency
Journal of Systems and Software
A heap de/compression module for wireless Java
Proceedings of the 3rd international symposium on Principles and practice of programming in Java
Link-time binary rewriting techniques for program compaction
ACM Transactions on Programming Languages and Systems (TOPLAS)
An instruction for direct interpretation of LZ77-compressed programs
Software—Practice & Experience
Generation of fast interpreters for Huffman compressed bytecode
Science of Computer Programming - Special issue on advances in interpreters, virtual machines and emulators (IVME'03)
Code size reduction by compressing repeated instruction sequences
The Journal of Supercomputing
Revisiting Java Bytecode Compression for Embedded and Mobile Computing Environments
IEEE Transactions on Software Engineering
Automated reduction of the memory footprint of the Linux kernel
ACM Transactions on Embedded Computing Systems (TECS) - Special Section LCTES'05
No bit left behind: the limits of heap data compression
Proceedings of the 7th international symposium on Memory management
JSZap: compressing JavaScript code
WebApps'10 Proceedings of the 2010 USENIX conference on Web application development
Optimization technique for commercial mobile MMORPG
Edutainment'10 Proceedings of the Entertainment for education, and 5th international conference on E-learning and games
Optimizing code size for embedded real-time applications
EUC'06 Proceedings of the 2006 international conference on Embedded and Ubiquitous Computing
Babel: a secure computer is a polyglot
Proceedings of the 2012 ACM Workshop on Cloud computing security workshop
Hi-index | 0.00 |
This paper describes the design and implementation of a method for producing compact, bytecoded instruction sets and interpreters for them. It accepts a grammar for programs written using a simple bytecoded stack-based instruction set, as well as a training set of sample programs. The system transforms the grammar, creating an expanded grammar that represents the same language as the original grammar, but permits a shorter derivation of the sample programs and others like them. A program's derivation under the expanded grammar forms the compressed bytecode representation of the program. The interpreter for this bytecode is automatically generated from the original bytecode interpreter and the expanded grammar. Programs expressed using compressed bytecode can be substantially smaller than their original bytecode representation and even their machine code representation. For example, compression cuts the bytecode for lcc from 199KB to 58KB but increases the size of the interpreter by just over 11KB.