• Skip to primary navigation
  • Skip to main content
SRI logo
  • About
    • Press room
    • Our history
  • Expertise
    • Advanced imaging systems
    • Artificial intelligence
    • Biomedical R&D services
    • Biomedical sciences
    • Computer vision
    • Cyber & formal methods
    • Education and learning
    • Innovation strategy and policy
    • National security
    • Ocean & space
    • Quantum
    • Robotics, sensors & devices
    • Speech & natural language
    • Video test & measurement
  • Ventures
  • NSIC
  • Careers
  • Contact
  • 日本支社
Search
Close
Cyber & formal methods publications September 1, 2000

Automatic Generation of Compact Programs and Virtual Machines for Scheme

Citation

Copy to clipboard


Mario Latendresse. Automatic Generation of Compact Programs and Virtual Machines for Scheme, in Scheme Workshop, Principles, Logics and Implementations of high-level programming Languages (PLI), Montréal, Canada , September 2000.

Abstract

Compact programs are not particularly needed on large workstations, but they become a necessity on small embedded systems. For example, smart cards have on the order of 1K of RAM, 16K of non-volatile memory, and 24K of ROM. This is an extreme situation, but many embedded systems also have memory constraints requiring compact code. Virtual machine can be an effective approach to obtain com- pact programs and byte code is a common technique for encoding virtual instructions. If the instructions are tailored for a particular language, the resulting virtual programs are compact. We use a combination of techniques to automatically generate new instructions and new compact encodings for virtual instructions. The common byte code encodings align instructions on byte boundaries. Our encoding does not align instructions, operational codes for instructions are Huffman encoded, and argument lengths are not necessarily a multiple of eight bits. New instructions are generated to replace repetitive sequences of instructions in programs. This process is done using axed basic set of instructions and a sample of programs. The virtual machines are automatically generated in C. The resulting compressed programs are interpreted without decompression. This approach is general enough to be applied to C, Java and many other languages. We demonstrate it on the Scheme language using several benchmarks. The resulting Scheme virtual machines and programs run efficiently and are compact enough to be ported on small embedded systems.

↓ Review online

Share this

How can we help?

Once you hit send…

We’ll match your inquiry to the person who can best help you.

Expect a response within 48 hours.

Career call to action image

Make your own mark.

Search jobs

Our work

Case studies

Publications

Timeline of innovation

Areas of expertise

Institute

Leadership

Press room

Media inquiries

Compliance

Careers

Job listings

Contact

SRI Ventures

Our locations

Headquarters

333 Ravenswood Ave
Menlo Park, CA 94025 USA

+1 (650) 859-2000

Subscribe to our newsletter


日本支社
SRI International
  • Contact us
  • Privacy Policy
  • Cookies
  • DMCA
  • Copyright © 2023 SRI International
Manage Cookie Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage vendors Read more about these purposes
View preferences
{title} {title} {title}