Matches in SemOpenAlex for { <https://semopenalex.org/work/W2904458606> ?p ?o ?g. }
- W2904458606 abstract "High-performance virtual machines (VMs) are increasingly reused for programming languages for which they were not initially designed. Unfortunately, VMs are usually tailored to specific languages, offer only a very limited interface to running applications, and are closed to extensions. As a consequence, extensions required to support new languages often entail the construction of custom VMs, thus impacting reuse, compatibility and performance. Short of building a custom VM, the language designer has to choose between the expressiveness and the performance of the language. In this dissertation we argue that the best way to open the VM is to eliminate it. We present Pinocchio, a natively compiled Smalltalk, in which we identify and reify three basic building blocks for object-oriented languages. First we define a protocol for message passing similar to calling conventions, independent of the actual message lookup mechanism. The lookup is provided by a self-supporting runtime library written in Smalltalk and compiled to native code. Since it unifies the meta- and base-level we obtain a metaobject protocol (MOP). Then we decouple the language-level manipulation of state from the machine-level implementation by extending the structural reflective model of the language with object layouts, layout scopes and slots. Finally we reify behavior using AST nodes and first-class interpreters separate from the low-level language implementation. We describe the implementations of all three first-class building blocks. For each of the blocks we provide a series of examples illustrating how they enable typical extensions to the runtime, and we provide benchmarks validating the practicality of the approaches." @default.
- W2904458606 created "2018-12-22" @default.
- W2904458606 creator A5057639638 @default.
- W2904458606 date "2012-02-29" @default.
- W2904458606 modified "2023-09-27" @default.
- W2904458606 title "Bridging The Gap Between Machine And Language Using First-Class Building Blocks" @default.
- W2904458606 cites W145355838 @default.
- W2904458606 cites W1500831943 @default.
- W2904458606 cites W1503886226 @default.
- W2904458606 cites W1506052820 @default.
- W2904458606 cites W1507612039 @default.
- W2904458606 cites W1511185067 @default.
- W2904458606 cites W1512465419 @default.
- W2904458606 cites W1521311146 @default.
- W2904458606 cites W1521891776 @default.
- W2904458606 cites W1527543831 @default.
- W2904458606 cites W1527793496 @default.
- W2904458606 cites W1539924481 @default.
- W2904458606 cites W1544300973 @default.
- W2904458606 cites W1553884617 @default.
- W2904458606 cites W1555609626 @default.
- W2904458606 cites W1560976945 @default.
- W2904458606 cites W1570534233 @default.
- W2904458606 cites W1587443845 @default.
- W2904458606 cites W1592832606 @default.
- W2904458606 cites W1603620492 @default.
- W2904458606 cites W1610570299 @default.
- W2904458606 cites W1637758212 @default.
- W2904458606 cites W1689913591 @default.
- W2904458606 cites W1770006921 @default.
- W2904458606 cites W1839902311 @default.
- W2904458606 cites W1934417833 @default.
- W2904458606 cites W1982296773 @default.
- W2904458606 cites W1982322251 @default.
- W2904458606 cites W1982731949 @default.
- W2904458606 cites W1986991427 @default.
- W2904458606 cites W1992748711 @default.
- W2904458606 cites W1993318777 @default.
- W2904458606 cites W1993335798 @default.
- W2904458606 cites W2002325351 @default.
- W2904458606 cites W2010167524 @default.
- W2904458606 cites W2012031603 @default.
- W2904458606 cites W2018045485 @default.
- W2904458606 cites W2018971440 @default.
- W2904458606 cites W2020708636 @default.
- W2904458606 cites W2021744145 @default.
- W2904458606 cites W2022333719 @default.
- W2904458606 cites W2026879022 @default.
- W2904458606 cites W2029414465 @default.
- W2904458606 cites W2030098725 @default.
- W2904458606 cites W2036825485 @default.
- W2904458606 cites W2045723688 @default.
- W2904458606 cites W2047401676 @default.
- W2904458606 cites W2052833826 @default.
- W2904458606 cites W2058213389 @default.
- W2904458606 cites W2058639022 @default.
- W2904458606 cites W2067908802 @default.
- W2904458606 cites W2070310827 @default.
- W2904458606 cites W2073194447 @default.
- W2904458606 cites W2073888041 @default.
- W2904458606 cites W2076063371 @default.
- W2904458606 cites W2076106422 @default.
- W2904458606 cites W2076638640 @default.
- W2904458606 cites W2080998385 @default.
- W2904458606 cites W2088675571 @default.
- W2904458606 cites W2089674328 @default.
- W2904458606 cites W2091795590 @default.
- W2904458606 cites W2093334386 @default.
- W2904458606 cites W2094057249 @default.
- W2904458606 cites W2094439101 @default.
- W2904458606 cites W2095219277 @default.
- W2904458606 cites W2095390121 @default.
- W2904458606 cites W2095839043 @default.
- W2904458606 cites W2097971372 @default.
- W2904458606 cites W2098130177 @default.
- W2904458606 cites W2101307187 @default.
- W2904458606 cites W2102582914 @default.
- W2904458606 cites W2104971503 @default.
- W2904458606 cites W2105454321 @default.
- W2904458606 cites W2108204150 @default.
- W2904458606 cites W2108247069 @default.
- W2904458606 cites W2110588041 @default.
- W2904458606 cites W2111681458 @default.
- W2904458606 cites W2111898165 @default.
- W2904458606 cites W2115680394 @default.
- W2904458606 cites W2117703621 @default.
- W2904458606 cites W2118005163 @default.
- W2904458606 cites W2118647616 @default.
- W2904458606 cites W2121049046 @default.
- W2904458606 cites W2128029766 @default.
- W2904458606 cites W2128274900 @default.
- W2904458606 cites W2139430599 @default.
- W2904458606 cites W2139749211 @default.
- W2904458606 cites W2140191557 @default.
- W2904458606 cites W2141293928 @default.
- W2904458606 cites W2143408829 @default.
- W2904458606 cites W2144305800 @default.
- W2904458606 cites W2150138014 @default.
- W2904458606 cites W2157514610 @default.
- W2904458606 cites W2157977745 @default.