Powered by OpenAIRE graph
Found an issue? Give us feedback
addClaim

High-level programming languages for low-level programming

Authors: Peters, Arthur, 1984-; 0000-0002-1960-7422;

High-level programming languages for low-level programming

Abstract

Many programming problems are assumed to require low-level programming approaches, due to highly specific requirements. As such, these problems are solved in low-level programming languages, which require the programmer to specify every detail of execution. This work challenges that view point by developing a series of models and techniques, which enable high-level programming techniques to be applied to low-level problems. OrcO generalized the concept of objects to decouple them from the concurrent structure of the program. This allows programs to be expressed more naturally and be more maintainable because it eliminates adverse coupling between abstraction and concurrency. OrcO allows objects to hide their concurrent structure from clients, and allows clients to access objects in a concurrency-agnostic way. PorcE is a compiler and runtime for a high-level concurrent programming language that attempts to automatically eliminate excess concurrency to produce an optimized concurrent program. It hides the details of the execution from the programmer and asks the programmer to write a maximally concurrent program for it to optimize. PorcE shows both the promise of deparallelizing for performance and the challenges of optimizing programs without programmer provided insight into the programs structure. Lapis 2 is a specification language for concisely expressing the interaction semantics of low-level APIs. Lapis 2 is based on Lapis 1 developed for AvA. Lapis 1 and Lapis 2 can be used to automatically generate compatible API remoting systems for low-level C APIs. In addition, they can be extended to support virtualization specific features, such as resource usage tracking and migration of an application from one physical resource to another. Lapis 2 builds on Lapis 1 and provides a rule system that can abstract away low-level details while still allowing detailed control when required. The rule system dramatically improves reduces the size of API specifications. Lapis does not hide the low-level details, but instead makes it easy to express them clearly and concisely. As such, Lapis 2 enables techniques that are often restricted to high-level managed languages, such as compatible automatic API remoting, to be applied to low-level APIs written in C.

Country
United States
Related Organizations
Keywords

API remoting, Compilers, Virtualization, Parallel programming, 005, Object-oriented programming, Programming languages, Virtual machines, Concurrent programming, Specification languages

  • BIP!
    Impact byBIP!
    selected citations
    These citations are derived from selected sources.
    This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    0
    popularity
    This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
    Average
    influence
    This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
    Average
    impulse
    This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
    Average
Powered by OpenAIRE graph
Found an issue? Give us feedback
selected citations
These citations are derived from selected sources.
This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Citations provided by BIP!
popularity
This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network.
BIP!Popularity provided by BIP!
influence
This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically).
BIP!Influence provided by BIP!
impulse
This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network.
BIP!Impulse provided by BIP!
0
Average
Average
Average
Upload OA version
Are you the author of this publication? Upload your Open Access version to Zenodo!
It’s fast and easy, just two clicks!