International audienceRuntime metaprogramming enables many useful applications and is often a convenient solution to solve problems in a generic way, which makes it widely used in frameworks, middleware, and domain-specific languages. However, powerful metaobject protocols are rarely supported and even common concepts such as reflective method invocation or dynamic proxies are not optimized. Solutions proposed in literature either restrict the metaprogramming capabilities or require application or library developers to apply performance improving techniques. For overhead-free runtime metaprogramming, we demonstrate that dispatch chains, a generalized form of polymorphic inline caches common to self-optimizing interpreters, are a simple opti...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Compiler writers have crafted many heuristics over the years to approximately solve NP-hard problems...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...
International audienceRuntime metaprogramming enables many useful applications and is often a conven...
Just-in-time compilers and their aggressive speculative optimizations reduced the performance gap be...
International audienceThe quality of compiler-optimized code for high-performance applications lags ...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters to...
DynSem is a domain-specific language for concise specification of the dynamic semantics of programmi...
International audienceReflective facilities in OO languages are used both for implementing language ...
ABSTRACT This paper describes techniques for improving the performance of meta framework developed b...
Metaprogramming is a technique that consists in writing programs that treat other programs as data. ...
The quality of compiler-optimized code for high-performance applications lags way behind what optimi...
Program generation is indispensable. We propose a novel unification of two existing metaprogramming ...
Journal ArticleThe spread of object-oriented technology has led to object-oriented programming langu...
International audienceBehavioral reflection is crucial to support for example functional upgrades, on...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Compiler writers have crafted many heuristics over the years to approximately solve NP-hard problems...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...
International audienceRuntime metaprogramming enables many useful applications and is often a conven...
Just-in-time compilers and their aggressive speculative optimizations reduced the performance gap be...
International audienceThe quality of compiler-optimized code for high-performance applications lags ...
Tracing and partial evaluation have been proposed as meta-compilation techniques for interpreters to...
DynSem is a domain-specific language for concise specification of the dynamic semantics of programmi...
International audienceReflective facilities in OO languages are used both for implementing language ...
ABSTRACT This paper describes techniques for improving the performance of meta framework developed b...
Metaprogramming is a technique that consists in writing programs that treat other programs as data. ...
The quality of compiler-optimized code for high-performance applications lags way behind what optimi...
Program generation is indispensable. We propose a novel unification of two existing metaprogramming ...
Journal ArticleThe spread of object-oriented technology has led to object-oriented programming langu...
International audienceBehavioral reflection is crucial to support for example functional upgrades, on...
Domain-Specific Languages (DSL’s) offer language-level abstractions that General-purpose languages d...
Compiler writers have crafted many heuristics over the years to approximately solve NP-hard problems...
In dynamic object-oriented languages, low-level mechanisms such as just-in-time compilation, object ...