
doi: 10.26153/tsw/12671
handle: 2152/85720
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.
API remoting, Compilers, Virtualization, Parallel programming, 005, Object-oriented programming, Programming languages, Virtual machines, Concurrent programming, Specification languages
API remoting, Compilers, Virtualization, Parallel programming, 005, Object-oriented programming, Programming languages, Virtual machines, Concurrent programming, Specification languages
| 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 |
