ﻻ يوجد ملخص باللغة العربية
A long-standing practical challenge in the optimization of higher-order languages is inlining functions with free variables. Inlining code statically at a function call site is safe if the compiler can guarantee that the free variables have the same bindings at the inlining point as they do at the point where the function is bound as a closure (code and free variables). There have been many attempts to create a heuristic to check this correctness condition, from Shivers kCFA-based reflow analysis to Mights Delta-CFA and anodization, but all of those have performance unsuitable for practical compiler implementations. In practice, modern language implementations rely on a series of tricks to capture some common cases (e.g., closures whose free variables are only top-level identifiers such as +) and rely on hand-inlining by the programmer for anything more complicated. This work provides the first practical, general approach for inlining functions with free variables. We also provide a proof of correctness, an evaluation of both the execution time and performance impact of this optimization, and some tips and tricks for implementing an efficient and precise control-flow analysis.
Paisley is an extensible lightweight embedded domain-specific language for nondeterministic pattern matching in Java. Using simple APIs and programming idioms, it brings the power of functional-logic processing of arbitrary data objects to the Java p
We address the following question: what can one say, for a tuple $(Y_1,dots,Y_d)$ of normal operators in a tracial operator algebra setting with prescribed sizes of the eigenspaces for each $Y_i$, about the sizes of the eigenspaces for any non-commut
We formulate a free probabilistic analog of the Wasserstein manifold on $mathbb{R}^d$ (the formal Riemannian manifold of smooth probability densities on $mathbb{R}^d$), and we use it to study smooth non-commutative transport of measure. The points of
As is well known, the common elementary functions defined over the real numbers can be generalized to act not only over the complex number field but also over the skew (non-commuting) field of the quaternions. In this paper, we detail a number of ele
The use of annotations, referred to as assertions or contracts, to describe program properties for which run-time tests are to be generated, has become frequent in dynamic programing languages. However, the frameworks proposed to support such run-tim