SlideShare a Scribd company logo
1 of 2
Download to read offline
An Optimising Compiler for Generated Tiny Virtual Machines
Doug Palmer Pavan Sikka Philip Valencia
Peter Corke
CSIRO ICT Centre
{Doug.Palmer,Pavan.Sikka,Philip.Valencia,Peter.Corke}@csiro.au
Abstract
VMSCRIPT is a scripting language designed to allow
small programs to be compiled for a range of generated tiny
virtual machines, suitable for sensor network devices. The
VMSCRIPT compiler is an optimising compiler designed to
allow quick re-targeting, based on a template, code rewrit-
ing model. A compiler backend can be specified at the same
time as a virtual machine, with the compiler reading the
specification and using it as a code generator.
1. Introduction
Many experimental sensor networks are designed to be
essentially homogeneous, with identical sensor devices con-
necting to perhaps a single gateway. In many cases, each
node of the sensor network runs an identical program. How-
ever, commercially deployed sensor networks can be ex-
pected to be heterogeneous, for reasons of network life, ar-
chitectural issues and changing use of the environment the
network is part of. The broad motivation behind the work
described is to develop a software engineering stack that al-
lows application programmers to develop efficient applica-
tion programs, independent of the precise structure of the
sensor network that will host them.
As part of this aim, a technique of generating families
of virtual machines (VMs), suitable for hosting programs
in a heterogeneous environment has been developed.[5] We
have completed an initial implementation that allows us to
run programs on a Fleck.[6] The target virtual machines
can differ greatly in terms of instruction set, storage man-
agement and other features, ranging from minimal systems
that support a handful of instructions and pieces of data
to garbage-collected heaps. A specific feature of this ap-
proach is that subsets of a specification can be generated,
allowing families of related VMs to be generated. This flex-
ibility allows experimentation (either by a human or a ma-
chine) in finding the right mix of generic and environment-
and platform-specific features for an environment. The ex-
VMSCRIPT
Application
VM XML
Specification
VM (C)
VM (C support)
VM Target
Application
VM Assembly
VM Bytecode
VMSCRIPT
Compiler
Figure 1. Overview of VMSCRIPT Tools and
Objects
treme flexibility of the generated virtual machines results in
different orientation to the Maté/Bombilla/TinyScript pro-
gramming model.[3]
This paper presents the next step of this work, a com-
piler for a simple scripting language, VMSCRIPT, that can
be used to generate efficient byte code for the broad class of
virtual machines that can be generated. When specifying a
VM, the designer supplies a description to a generator. An
extension to the description allows the designer to also de-
scribe the instruction sequences that will implement a small
number of basic operations. Ideally, specifying an accept-
ably efficient compiler for a virtual machine should take no
more effort than specifying the virtual machine itself.
Figure 1 shows the various VMSCRIPT-related tools and
objects.
2. The Compiler
An initial version of the VMSCRIPT compiler simply re-
lied on the stack architecture of the generated VMs and
generated code based on a simple parse tree traversal and
templating process. While correct, the generated programs
could hardly be described as efficient and a rewrite was un-
dertaken to allow more sophisticated analysis and code gen-
0-7803-9246-9/05/$20.00 © 2005 IEEE 161 EmNetS-II
<template>
<cost domain="size"
priority="1" cost="2"/>
<pattern>
<get source="2" target="?Mul"/>
<op type="multiply"
arg1="?Source:integer"
arg2="?Mul" output="?Target"/>
</pattern>
<transform>
<acquire source="?Source"/>
<opcode code="dup"/>
<opcode code="add"/>
<place output="?Target"/>
</transform>
<template>
Figure 2. Example Code Generation Template
eration. The compiler now uses a number of compilation
techniques, derived from the extensive literature on compil-
ers, such as intermediate representation, abstract interpreta-
tion and single static assignment form to globally analyse
an input program and produce optimal code.[4, 1, 2]
A key feature of the IR chosen for VMSCRIPT is the
need to provide support for easy specification of multiple
targets. To allow this, a relatively small set of intermedi-
ate forms are permitted, something the simplicity of VM-
SCRIPT allows. Despite the generated virtual machines be-
ing stack-based, named temporary variables are used in the
intermediate form, since these are easier to manipulate dur-
ing most operations, with stack mapping occurring at code
generation.[7]
Abstract interpretation is used in a number of optimisa-
tions in the compiler: type inference, stack estimation, con-
stant propagation and dead code removal.
2.1. Code Generation
Peephole optimsation at several levels and code genera-
tion uses a uniform rewriting strategy.[8] The compiler uses
techniques inspired by logic programming.[9] Transforma-
tions are encoded using logical variables. Any input that
unifies with the input pattern is transformed into the cor-
responding output pattern. Sequences of arbitrary interme-
diate representation code are repeatedly replaced by more
basic IR sequences until just ground forms that can be di-
rectly translated into assembly, remain. Figure 2 shows an
example code generation template, in this case one which
generates special case code for multiplication by two. Vir-
tual machine subsets are handled by ignoring templates that
would generate instructions or store references that are not
present in the subset.
The IR uses temporary variables instead of stack posi-
tions for intermediate values. During code generation, the
compiler tracks the stack position of temporary variables,
which can then be used with the special Place and Acquire
IRs to generate stack manipulation sequences.
3. Conclusions and Further Work
The VMSCRIPT compiler is a very flexible compiler for
generated virtual machines. In order to use the compiler
with a virtual machine, approximately 45–60 simple rewrit-
ing templates need to be specified; A typical generated vir-
tual machine will have some 30–40 instructions. The tem-
plates can be incrementally added to, allowing a repository
of optimal sequences to be built up over time.
There are a number of parts of the compiler that can be
made more sophisticated: the handling of ambiguous types,
stack estimation techniques, code generation cost analysis
and constant propagation cost analysis.
References
[1] R. Allen and K. Kennedy. Optimizing Compilers for Modern
Architectures. Morgan Kaufmann, 2002.
[2] P. Cousot and R. Cousot. Abstract interpretation: A unified lat-
tice model for static analysis of programs by construction or
approximation of fixpoints. In Proceedings of the 4th Sym-
posium on Principles of Programming Languages (POPL),
pages 238–252, Los Angeles, California, 1977.
[3] P. Levis, D. Gay, and D. Culler. Bridging the gap: Program-
ming sensor networks with application specific virtual ma-
chines. Technical Report UCB//CSD-04-1343, UC Berkeley,
Aug. 2004. http://www.cs.berkeley.edu/˜pal/
pubs/mate-tr.pdf.
[4] S. S. Muchnick. Advanced Compiler Design and Implemen-
tation. Morgan Kaufmann, 1997.
[5] D. Palmer. A virtual machine generator for heterogeneous
smart spaces. In Proceedings of the 3rd Virtual Machine Re-
search and Technology Symposium (VM04), pages 1–11, San
Jose, California, May 2004.
[6] P. Sikka, P. Corke, and L. Overs. Wireless sensor devices for
animal tracking and control. In Proceedings of the 29th Con-
ference on Local Computer Networks, Workshop on Embed-
ded Networked Sensors (EmNetS-I), pages 446–454, Tampa,
Florida, Nov. 2004.
[7] R. Vallée-Rai, P. Co, E. Gagnon, L. Hedren, P. Lam, and
V. Sundaresan. Soot — a Java bytecode optimization frame-
work. In Proceedings of the 1999 Conference of the Centre
for Advanced Studies on Collaborative Research, pages 13–
23, Mississauga, Canada, 1999.
[8] E. Visser. A survey of rewriting strategies in program trans-
formation systems. In Proceedings of the Workshop on Re-
duction Strategies in Rewriting and Programming (WRS 01),
Utrecht, The Netherlands, May 2001.
[9] D. H. D. Warren. Logic programming and compiler writing.
Software, Practice and Experience, 10(2):97–125, 1980.
162

More Related Content

Similar to An Optimising Compiler For Generated Tiny Virtual Machines

High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudThe UberCloud
 
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...eSAT Publishing House
 
Virtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloudVirtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloudeSAT Journals
 
Virtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloudVirtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloudeSAT Publishing House
 
Iisrt sinthuja mepco (ec)
Iisrt sinthuja mepco (ec)Iisrt sinthuja mepco (ec)
Iisrt sinthuja mepco (ec)IISRT
 
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowKostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowIT Arena
 
IRJET- Development of Uncrackable Software
IRJET- Development of Uncrackable SoftwareIRJET- Development of Uncrackable Software
IRJET- Development of Uncrackable SoftwareIRJET Journal
 
Rishikesh Sharma Portfolio
Rishikesh Sharma PortfolioRishikesh Sharma Portfolio
Rishikesh Sharma Portfoliosharmarishikesh
 
William Impey CV
William Impey CVWilliam Impey CV
William Impey CVWill Impey
 
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model ServingKubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model ServingTheofilos Papapanagiotou
 
Towards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelTowards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelAlessio Bucaioni
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsSebastian Springer
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)IJERD Editor
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Qualcomm Developer Network
 
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”Databricks
 
Dot Net Fundamentals
Dot Net FundamentalsDot Net Fundamentals
Dot Net FundamentalsLiquidHub
 
djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...
djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...
djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...Dr. Thippeswamy S.
 
Lightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsLightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsEUBrasilCloudFORUM .
 

Similar to An Optimising Compiler For Generated Tiny Virtual Machines (20)

High Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the CloudHigh Performance Computing (HPC) and Engineering Simulations in the Cloud
High Performance Computing (HPC) and Engineering Simulations in the Cloud
 
Micro Assembler
Micro AssemblerMicro Assembler
Micro Assembler
 
Cisco project ideas
Cisco   project ideasCisco   project ideas
Cisco project ideas
 
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
Fpga based 128 bit customised vliw processor for executing dual scalarvector ...
 
Virtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloudVirtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloud
 
Virtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloudVirtual appliance creation and optimization in cloud
Virtual appliance creation and optimization in cloud
 
Iisrt sinthuja mepco (ec)
Iisrt sinthuja mepco (ec)Iisrt sinthuja mepco (ec)
Iisrt sinthuja mepco (ec)
 
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and KubeflowKostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
Kostiantyn Bokhan, N-iX. CD4ML based on Azure and Kubeflow
 
IRJET- Development of Uncrackable Software
IRJET- Development of Uncrackable SoftwareIRJET- Development of Uncrackable Software
IRJET- Development of Uncrackable Software
 
Rishikesh Sharma Portfolio
Rishikesh Sharma PortfolioRishikesh Sharma Portfolio
Rishikesh Sharma Portfolio
 
William Impey CV
William Impey CVWilliam Impey CV
William Impey CV
 
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model ServingKubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
Kubecon 2023 EU - KServe - The State and Future of Cloud-Native Model Serving
 
Towards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelTowards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component Model
 
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.jsDivide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
 
Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)Welcome to International Journal of Engineering Research and Development (IJERD)
Welcome to International Journal of Engineering Research and Development (IJERD)
 
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
Power-Efficient Programming Using Qualcomm Multicore Asynchronous Runtime Env...
 
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
Accelerating Spark MLlib and DataFrame with Vector Processor “SX-Aurora TSUBASA”
 
Dot Net Fundamentals
Dot Net FundamentalsDot Net Fundamentals
Dot Net Fundamentals
 
djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...
djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...
djypllh5r1gjbaekxgwv-signature-cc6692615bbc55079760b9b0c6636bc58ec509cd0446cb...
 
Lightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsLightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to Functions
 

More from Leslie Schulte

Sample Thesis Topics For Psychology STARREDO
Sample Thesis Topics For Psychology STARREDOSample Thesis Topics For Psychology STARREDO
Sample Thesis Topics For Psychology STARREDOLeslie Schulte
 
Strathmore Writing 25 Cotton Stationery Paper Wove Finish Ivor
Strathmore Writing 25 Cotton Stationery Paper Wove Finish IvorStrathmore Writing 25 Cotton Stationery Paper Wove Finish Ivor
Strathmore Writing 25 Cotton Stationery Paper Wove Finish IvorLeslie Schulte
 
005 Esl How To Write An Essay Example Of Writing
005 Esl How To Write An Essay Example Of Writing005 Esl How To Write An Essay Example Of Writing
005 Esl How To Write An Essay Example Of WritingLeslie Schulte
 
Reflective Essay Conclusion Example. Online assignment writing service.
Reflective Essay Conclusion Example. Online assignment writing service.Reflective Essay Conclusion Example. Online assignment writing service.
Reflective Essay Conclusion Example. Online assignment writing service.Leslie Schulte
 
How To Write A Literature Review Outline What Is A
How To Write A Literature Review Outline What Is AHow To Write A Literature Review Outline What Is A
How To Write A Literature Review Outline What Is ALeslie Schulte
 
Virginia Tech Application Essay Prompt 2012 - Proofr
Virginia Tech Application Essay Prompt 2012 - ProofrVirginia Tech Application Essay Prompt 2012 - Proofr
Virginia Tech Application Essay Prompt 2012 - ProofrLeslie Schulte
 
Introductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERS
Introductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERSIntroductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERS
Introductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERSLeslie Schulte
 
College Life Essay - College Homework Help And Online Tutoring.
College Life Essay - College Homework Help And Online Tutoring.College Life Essay - College Homework Help And Online Tutoring.
College Life Essay - College Homework Help And Online Tutoring.Leslie Schulte
 
Admission Essay. Online assignment writing service.
Admission Essay. Online assignment writing service.Admission Essay. Online assignment writing service.
Admission Essay. Online assignment writing service.Leslie Schulte
 
How To Start An Essay About Yourself Examples
How To Start An Essay About Yourself ExamplesHow To Start An Essay About Yourself Examples
How To Start An Essay About Yourself ExamplesLeslie Schulte
 
10 Ways To Make Name W. Online assignment writing service.
10 Ways To Make Name W. Online assignment writing service.10 Ways To Make Name W. Online assignment writing service.
10 Ways To Make Name W. Online assignment writing service.Leslie Schulte
 
Love Letter Template Design Free - Letter Daily Referen
Love Letter Template Design Free - Letter Daily ReferenLove Letter Template Design Free - Letter Daily Referen
Love Letter Template Design Free - Letter Daily ReferenLeslie Schulte
 
Sample Philosophy Papers Free Will Determinism
Sample Philosophy Papers Free Will DeterminismSample Philosophy Papers Free Will Determinism
Sample Philosophy Papers Free Will DeterminismLeslie Schulte
 
FREE 20 Scholarship Essay Examples S. Online assignment writing service.
FREE 20 Scholarship Essay Examples  S. Online assignment writing service.FREE 20 Scholarship Essay Examples  S. Online assignment writing service.
FREE 20 Scholarship Essay Examples S. Online assignment writing service.Leslie Schulte
 
021 Essay Introduction Paragraph Example Argumentative Format ...
021 Essay Introduction Paragraph Example Argumentative Format ...021 Essay Introduction Paragraph Example Argumentative Format ...
021 Essay Introduction Paragraph Example Argumentative Format ...Leslie Schulte
 
Different Types Of Essay Writing Examples. Example
Different Types Of Essay Writing Examples. ExampleDifferent Types Of Essay Writing Examples. Example
Different Types Of Essay Writing Examples. ExampleLeslie Schulte
 
My First College Experience Essay . Online assignment writing service.
My First College Experience Essay  . Online assignment writing service.My First College Experience Essay  . Online assignment writing service.
My First College Experience Essay . Online assignment writing service.Leslie Schulte
 
Write My Persuasive Speech 75 Persuasive Speech Top
Write My Persuasive Speech 75 Persuasive Speech TopWrite My Persuasive Speech 75 Persuasive Speech Top
Write My Persuasive Speech 75 Persuasive Speech TopLeslie Schulte
 
Self Writing Essay Telegraph. Online assignment writing service.
Self Writing Essay  Telegraph. Online assignment writing service.Self Writing Essay  Telegraph. Online assignment writing service.
Self Writing Essay Telegraph. Online assignment writing service.Leslie Schulte
 
Sample Bibliography Elementary Bibliography T
Sample Bibliography Elementary  Bibliography TSample Bibliography Elementary  Bibliography T
Sample Bibliography Elementary Bibliography TLeslie Schulte
 

More from Leslie Schulte (20)

Sample Thesis Topics For Psychology STARREDO
Sample Thesis Topics For Psychology STARREDOSample Thesis Topics For Psychology STARREDO
Sample Thesis Topics For Psychology STARREDO
 
Strathmore Writing 25 Cotton Stationery Paper Wove Finish Ivor
Strathmore Writing 25 Cotton Stationery Paper Wove Finish IvorStrathmore Writing 25 Cotton Stationery Paper Wove Finish Ivor
Strathmore Writing 25 Cotton Stationery Paper Wove Finish Ivor
 
005 Esl How To Write An Essay Example Of Writing
005 Esl How To Write An Essay Example Of Writing005 Esl How To Write An Essay Example Of Writing
005 Esl How To Write An Essay Example Of Writing
 
Reflective Essay Conclusion Example. Online assignment writing service.
Reflective Essay Conclusion Example. Online assignment writing service.Reflective Essay Conclusion Example. Online assignment writing service.
Reflective Essay Conclusion Example. Online assignment writing service.
 
How To Write A Literature Review Outline What Is A
How To Write A Literature Review Outline What Is AHow To Write A Literature Review Outline What Is A
How To Write A Literature Review Outline What Is A
 
Virginia Tech Application Essay Prompt 2012 - Proofr
Virginia Tech Application Essay Prompt 2012 - ProofrVirginia Tech Application Essay Prompt 2012 - Proofr
Virginia Tech Application Essay Prompt 2012 - Proofr
 
Introductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERS
Introductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERSIntroductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERS
Introductory Paragraph Research Paper Introduction Sample - EXAMPLEPAPERS
 
College Life Essay - College Homework Help And Online Tutoring.
College Life Essay - College Homework Help And Online Tutoring.College Life Essay - College Homework Help And Online Tutoring.
College Life Essay - College Homework Help And Online Tutoring.
 
Admission Essay. Online assignment writing service.
Admission Essay. Online assignment writing service.Admission Essay. Online assignment writing service.
Admission Essay. Online assignment writing service.
 
How To Start An Essay About Yourself Examples
How To Start An Essay About Yourself ExamplesHow To Start An Essay About Yourself Examples
How To Start An Essay About Yourself Examples
 
10 Ways To Make Name W. Online assignment writing service.
10 Ways To Make Name W. Online assignment writing service.10 Ways To Make Name W. Online assignment writing service.
10 Ways To Make Name W. Online assignment writing service.
 
Love Letter Template Design Free - Letter Daily Referen
Love Letter Template Design Free - Letter Daily ReferenLove Letter Template Design Free - Letter Daily Referen
Love Letter Template Design Free - Letter Daily Referen
 
Sample Philosophy Papers Free Will Determinism
Sample Philosophy Papers Free Will DeterminismSample Philosophy Papers Free Will Determinism
Sample Philosophy Papers Free Will Determinism
 
FREE 20 Scholarship Essay Examples S. Online assignment writing service.
FREE 20 Scholarship Essay Examples  S. Online assignment writing service.FREE 20 Scholarship Essay Examples  S. Online assignment writing service.
FREE 20 Scholarship Essay Examples S. Online assignment writing service.
 
021 Essay Introduction Paragraph Example Argumentative Format ...
021 Essay Introduction Paragraph Example Argumentative Format ...021 Essay Introduction Paragraph Example Argumentative Format ...
021 Essay Introduction Paragraph Example Argumentative Format ...
 
Different Types Of Essay Writing Examples. Example
Different Types Of Essay Writing Examples. ExampleDifferent Types Of Essay Writing Examples. Example
Different Types Of Essay Writing Examples. Example
 
My First College Experience Essay . Online assignment writing service.
My First College Experience Essay  . Online assignment writing service.My First College Experience Essay  . Online assignment writing service.
My First College Experience Essay . Online assignment writing service.
 
Write My Persuasive Speech 75 Persuasive Speech Top
Write My Persuasive Speech 75 Persuasive Speech TopWrite My Persuasive Speech 75 Persuasive Speech Top
Write My Persuasive Speech 75 Persuasive Speech Top
 
Self Writing Essay Telegraph. Online assignment writing service.
Self Writing Essay  Telegraph. Online assignment writing service.Self Writing Essay  Telegraph. Online assignment writing service.
Self Writing Essay Telegraph. Online assignment writing service.
 
Sample Bibliography Elementary Bibliography T
Sample Bibliography Elementary  Bibliography TSample Bibliography Elementary  Bibliography T
Sample Bibliography Elementary Bibliography T
 

Recently uploaded

PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docxPoojaSen20
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Educationpboyjonauth
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 

Recently uploaded (20)

PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
mini mental status format.docx
mini    mental       status     format.docxmini    mental       status     format.docx
mini mental status format.docx
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Introduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher EducationIntroduction to ArtificiaI Intelligence in Higher Education
Introduction to ArtificiaI Intelligence in Higher Education
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 

An Optimising Compiler For Generated Tiny Virtual Machines

  • 1. An Optimising Compiler for Generated Tiny Virtual Machines Doug Palmer Pavan Sikka Philip Valencia Peter Corke CSIRO ICT Centre {Doug.Palmer,Pavan.Sikka,Philip.Valencia,Peter.Corke}@csiro.au Abstract VMSCRIPT is a scripting language designed to allow small programs to be compiled for a range of generated tiny virtual machines, suitable for sensor network devices. The VMSCRIPT compiler is an optimising compiler designed to allow quick re-targeting, based on a template, code rewrit- ing model. A compiler backend can be specified at the same time as a virtual machine, with the compiler reading the specification and using it as a code generator. 1. Introduction Many experimental sensor networks are designed to be essentially homogeneous, with identical sensor devices con- necting to perhaps a single gateway. In many cases, each node of the sensor network runs an identical program. How- ever, commercially deployed sensor networks can be ex- pected to be heterogeneous, for reasons of network life, ar- chitectural issues and changing use of the environment the network is part of. The broad motivation behind the work described is to develop a software engineering stack that al- lows application programmers to develop efficient applica- tion programs, independent of the precise structure of the sensor network that will host them. As part of this aim, a technique of generating families of virtual machines (VMs), suitable for hosting programs in a heterogeneous environment has been developed.[5] We have completed an initial implementation that allows us to run programs on a Fleck.[6] The target virtual machines can differ greatly in terms of instruction set, storage man- agement and other features, ranging from minimal systems that support a handful of instructions and pieces of data to garbage-collected heaps. A specific feature of this ap- proach is that subsets of a specification can be generated, allowing families of related VMs to be generated. This flex- ibility allows experimentation (either by a human or a ma- chine) in finding the right mix of generic and environment- and platform-specific features for an environment. The ex- VMSCRIPT Application VM XML Specification VM (C) VM (C support) VM Target Application VM Assembly VM Bytecode VMSCRIPT Compiler Figure 1. Overview of VMSCRIPT Tools and Objects treme flexibility of the generated virtual machines results in different orientation to the Maté/Bombilla/TinyScript pro- gramming model.[3] This paper presents the next step of this work, a com- piler for a simple scripting language, VMSCRIPT, that can be used to generate efficient byte code for the broad class of virtual machines that can be generated. When specifying a VM, the designer supplies a description to a generator. An extension to the description allows the designer to also de- scribe the instruction sequences that will implement a small number of basic operations. Ideally, specifying an accept- ably efficient compiler for a virtual machine should take no more effort than specifying the virtual machine itself. Figure 1 shows the various VMSCRIPT-related tools and objects. 2. The Compiler An initial version of the VMSCRIPT compiler simply re- lied on the stack architecture of the generated VMs and generated code based on a simple parse tree traversal and templating process. While correct, the generated programs could hardly be described as efficient and a rewrite was un- dertaken to allow more sophisticated analysis and code gen- 0-7803-9246-9/05/$20.00 © 2005 IEEE 161 EmNetS-II
  • 2. <template> <cost domain="size" priority="1" cost="2"/> <pattern> <get source="2" target="?Mul"/> <op type="multiply" arg1="?Source:integer" arg2="?Mul" output="?Target"/> </pattern> <transform> <acquire source="?Source"/> <opcode code="dup"/> <opcode code="add"/> <place output="?Target"/> </transform> <template> Figure 2. Example Code Generation Template eration. The compiler now uses a number of compilation techniques, derived from the extensive literature on compil- ers, such as intermediate representation, abstract interpreta- tion and single static assignment form to globally analyse an input program and produce optimal code.[4, 1, 2] A key feature of the IR chosen for VMSCRIPT is the need to provide support for easy specification of multiple targets. To allow this, a relatively small set of intermedi- ate forms are permitted, something the simplicity of VM- SCRIPT allows. Despite the generated virtual machines be- ing stack-based, named temporary variables are used in the intermediate form, since these are easier to manipulate dur- ing most operations, with stack mapping occurring at code generation.[7] Abstract interpretation is used in a number of optimisa- tions in the compiler: type inference, stack estimation, con- stant propagation and dead code removal. 2.1. Code Generation Peephole optimsation at several levels and code genera- tion uses a uniform rewriting strategy.[8] The compiler uses techniques inspired by logic programming.[9] Transforma- tions are encoded using logical variables. Any input that unifies with the input pattern is transformed into the cor- responding output pattern. Sequences of arbitrary interme- diate representation code are repeatedly replaced by more basic IR sequences until just ground forms that can be di- rectly translated into assembly, remain. Figure 2 shows an example code generation template, in this case one which generates special case code for multiplication by two. Vir- tual machine subsets are handled by ignoring templates that would generate instructions or store references that are not present in the subset. The IR uses temporary variables instead of stack posi- tions for intermediate values. During code generation, the compiler tracks the stack position of temporary variables, which can then be used with the special Place and Acquire IRs to generate stack manipulation sequences. 3. Conclusions and Further Work The VMSCRIPT compiler is a very flexible compiler for generated virtual machines. In order to use the compiler with a virtual machine, approximately 45–60 simple rewrit- ing templates need to be specified; A typical generated vir- tual machine will have some 30–40 instructions. The tem- plates can be incrementally added to, allowing a repository of optimal sequences to be built up over time. There are a number of parts of the compiler that can be made more sophisticated: the handling of ambiguous types, stack estimation techniques, code generation cost analysis and constant propagation cost analysis. References [1] R. Allen and K. Kennedy. Optimizing Compilers for Modern Architectures. Morgan Kaufmann, 2002. [2] P. Cousot and R. Cousot. Abstract interpretation: A unified lat- tice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4th Sym- posium on Principles of Programming Languages (POPL), pages 238–252, Los Angeles, California, 1977. [3] P. Levis, D. Gay, and D. Culler. Bridging the gap: Program- ming sensor networks with application specific virtual ma- chines. Technical Report UCB//CSD-04-1343, UC Berkeley, Aug. 2004. http://www.cs.berkeley.edu/˜pal/ pubs/mate-tr.pdf. [4] S. S. Muchnick. Advanced Compiler Design and Implemen- tation. Morgan Kaufmann, 1997. [5] D. Palmer. A virtual machine generator for heterogeneous smart spaces. In Proceedings of the 3rd Virtual Machine Re- search and Technology Symposium (VM04), pages 1–11, San Jose, California, May 2004. [6] P. Sikka, P. Corke, and L. Overs. Wireless sensor devices for animal tracking and control. In Proceedings of the 29th Con- ference on Local Computer Networks, Workshop on Embed- ded Networked Sensors (EmNetS-I), pages 446–454, Tampa, Florida, Nov. 2004. [7] R. Vallée-Rai, P. Co, E. Gagnon, L. Hedren, P. Lam, and V. Sundaresan. Soot — a Java bytecode optimization frame- work. In Proceedings of the 1999 Conference of the Centre for Advanced Studies on Collaborative Research, pages 13– 23, Mississauga, Canada, 1999. [8] E. Visser. A survey of rewriting strategies in program trans- formation systems. In Proceedings of the Workshop on Re- duction Strategies in Rewriting and Programming (WRS 01), Utrecht, The Netherlands, May 2001. [9] D. H. D. Warren. Logic programming and compiler writing. Software, Practice and Experience, 10(2):97–125, 1980. 162