Demystifying magic: High-level low-level programming

Daniel Frampton*, Stephen M. Blackburn, Perry Cheng, Robin J. Garner, David Grove, J. Eliot B. Moss, Sergey I. Salishev

*Corresponding author for this work

    Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

    50 Citations (Scopus)

    Abstract

    The power of high-level languages lies in their abstraction over hardware and software complexity, leading to greater security, better reliability, and lower development costs. However, opaque abstractions are often show-stoppers for systems programmers, forcing them to either break the abstraction, or more often, simply give up and use a different language. This paper addresses the challenge of opening up a high-level language to allow practical low-level programming without forsaking integrity or performance. The contribution of this paper is three-fold: 1) we draw together common threads in a diverse literature, 2) we identify a framework for extending high-level languages for low-level programming, and 3) we show the power of this approach through concrete case studies. Our framework leverages just three core ideas: extending semantics via intrinsic methods, extending types via unboxing and architectural-width primitives, and controlling semantics via scoped semantic regimes. We develop these ideas through the context of a rich literature and substantial practical experience. We show that they provide the power necessary to implement substantial artifacts such as a high-performance virtual machine, while preserving the software engineering benefits of the host language. The time has come for high-level low-level programming to be taken more seriously: 1) more projects now use high-level languages for systems programming, 2) increasing architectural heterogeneity and parallelism heighten the need for abstraction, and 3) a new generation of high-level languages are under development and ripe to be influenced.

    Original languageEnglish
    Title of host publicationProceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE'09
    Pages81-90
    Number of pages10
    DOIs
    Publication statusPublished - 2009
    Event2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE'09 - Washington, DC, United States
    Duration: 11 Mar 200913 Mar 2009

    Publication series

    NameProceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE'09

    Conference

    Conference2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, VEE'09
    Country/TerritoryUnited States
    CityWashington, DC
    Period11/03/0913/03/09

    Fingerprint

    Dive into the research topics of 'Demystifying magic: High-level low-level programming'. Together they form a unique fingerprint.

    Cite this