Virgil: Objects on the Head of a Pin

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=BMf3oNaEsYA



Duration: 1:12:50
49 views
1


Embedded microcontrollers are becoming increasingly prolific, serving as the primary or auxiliary processor in products and research systems from microwaves to sensor networks. Microcontrollers represent perhaps the most severely resource-constrained embedded processors, often with as little as a few bytes of memory and a few kilobytes of code space. Language and compiler technology has so far been unable to bring the benefits of modern object-oriented languages to such processors. This talk will present the design and implementation of Virgil, a lightweight object-oriented language for systems-level programming in domains with severe resource constraints. One key innovation is the explicit separation of initialization time from runtime which allows an application to build complex data structures during compilation which are persisted for use at runtime. This permits the application to run directly on the bare hardware without a virtual machine or any language runtime. Initialization time allows the entire program heap to be available to the compiler and enables three new data-sensitive optimizations: reachable members analysis, reference compression, and ROM-ization. Experimental results demonstrate that Virgil is well suited for writing microcontroller programs, with five demonstrative applications fitting in less than 256 bytes of RAM with fewer than 50 bytes of metadata. The Virgil compiler's new optimizations are shown to reduce code size between 20 and RAM size by as much as 75.




Other Videos By Microsoft Research


2016-09-06Cooperative Data and Computation Partitioning for Distributed Architectures
2016-09-06Rate Control Protocol (RCP): Congestion Control to Make Flows Complete Quickly
2016-09-06Engineering Performance Using Control Theory: A One Day How-To: Introduction & Theory Part 1
2016-09-06Paths Beyond Local Search: A Tight Bound for Randomized Fixed-Point Computation
2016-09-06Interaction Design for One-Handed Use of Mobile Devices
2016-09-06Einstein: His Life and Universe
2016-09-06Virtual Reality Therapy: Using immersive virtual reality games to help reduce suffering
2016-09-06A Crowd of One: The Future of Individual Identity           
2016-09-06Ubiquitous Reflective Technologies
2016-09-06Customizing the Computational Capabilities of Processors
2016-09-06Virgil: Objects on the Head of a Pin
2016-09-06Video Synopsis: Making an Infinite Video Shorter
2016-09-06Linked Decompositions of Networks and Polya Urns with Choice
2016-09-06The Light Portal: 3D Reconstruction and Visualization over Space and Time
2016-09-06Distributed Speculative Execution: A Programming Model for Reliability and Increased Performance
2016-09-06Director of MITΓÇÖs Auto-ID Laboratory and a professor of Information Engineering
2016-09-06Path invariants
2016-09-06Records, sums, cases, and exceptions: Row-polymorphism at work [1/9]
2016-09-06Internet 3.0: Ten Problems with Current Internet Architecture and Solutions for the Next Generation
2016-09-06The Bilateral Grid and a Topological Approach to Image Segmentation
2016-09-06Software Development Practices and Knowledge Sharing: A Comparison of XP & Waterfall Team Behaviors



Tags:
microsoft research