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 thr...
International audienceLive programming, originally introduced by Smalltalk and Lisp, and now gaining...
Program portability is an important software engineering consideration. However, when high-level lan...
International audienceWith the rise of domain-specific languages (DSLs), research in language implem...
Many of today’s programming languages are broken. Poor performance, lack of features and hard-to-rea...
International audienceBootstrapping is well known in the context of compilers, where a bootstrapped ...
Implementing a managed language efficiently is hard, and it is becoming more difficult as the c...
System programming tasks such as implementing language virtual machines (VMs), are, by convention, a...
Today new programming languages proliferate, but many of them suffer from poor performance...
To support development tools like debuggers, runtime systems need to provide a meta-programming inte...
Virtual machines raise the abstraction level of the execution environment at the cost of restricting...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...
International audienceVirtual Machines (VMs) are critical language execution engines. When tooling t...
International audienceProgramming idioms, design patterns and application li- braries often introduc...
International audienceReflective architectures are a powerful solution for code browsing, debugging o...
Language Virtual Machines (VMs) are pervasive in every laptop, server, and smartphone, as is the cas...
International audienceLive programming, originally introduced by Smalltalk and Lisp, and now gaining...
Program portability is an important software engineering consideration. However, when high-level lan...
International audienceWith the rise of domain-specific languages (DSLs), research in language implem...
Many of today’s programming languages are broken. Poor performance, lack of features and hard-to-rea...
International audienceBootstrapping is well known in the context of compilers, where a bootstrapped ...
Implementing a managed language efficiently is hard, and it is becoming more difficult as the c...
System programming tasks such as implementing language virtual machines (VMs), are, by convention, a...
Today new programming languages proliferate, but many of them suffer from poor performance...
To support development tools like debuggers, runtime systems need to provide a meta-programming inte...
Virtual machines raise the abstraction level of the execution environment at the cost of restricting...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...
International audienceVirtual Machines (VMs) are critical language execution engines. When tooling t...
International audienceProgramming idioms, design patterns and application li- braries often introduc...
International audienceReflective architectures are a powerful solution for code browsing, debugging o...
Language Virtual Machines (VMs) are pervasive in every laptop, server, and smartphone, as is the cas...
International audienceLive programming, originally introduced by Smalltalk and Lisp, and now gaining...
Program portability is an important software engineering consideration. However, when high-level lan...
International audienceWith the rise of domain-specific languages (DSLs), research in language implem...