Dynamically typed programming languages such as JavaScript and Python defer type checking to run time. In order to maximize performance, dynamic language VM implementations must attempt to eliminate redundant dynamic type checks. However, type inference analyses are often costly and involve tradeoffs between compilation time and resulting precision. This has lead to the creation of increasingly complex multi-tiered VM architectures. This paper introduces lazy basic block versioning, a simple JIT compilation technique which effectively removes redundant type checks from critical code paths. This novel approach lazily generates type-specialized versions of basic blocks on-the-fly while propagating context-dependent type information. This doe...
Transient gradual typing imposes run-time type tests that typically cause a linear slowdown. This pe...
Dynamic programming languages continue to increase in popularity. While just-in-time (JIT) compilati...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...
Previous work proposed lazy basic block versioning, a technique for just-in-time compilation of dyna...
Dynamically typed languages such as JavaScript present a challenge to just-in-time compilers. In con...
Dynamically-typed languages allow faster software development by not posing the type constraints. St...
Both static and dynamic typing provide different benefits to the programmer. Statically typed langua...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...
Decades of research on type systems have led to advances in the kinds of programming features that c...
Type feedback and type inference are two common methods used to optimize dynamic languages such as J...
Dynamic languages are widely used for different kinds of applications including rapid prototyping, W...
Type inference and type reconstruction derive static types for program elements that have no static...
Dynamic scripting languages have recently experienced a dramatic growth. JavaScript in particular is...
Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed p...
To efficiently execute dynamically typed languages, many language implementations have adopted a two...
Transient gradual typing imposes run-time type tests that typically cause a linear slowdown. This pe...
Dynamic programming languages continue to increase in popularity. While just-in-time (JIT) compilati...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...
Previous work proposed lazy basic block versioning, a technique for just-in-time compilation of dyna...
Dynamically typed languages such as JavaScript present a challenge to just-in-time compilers. In con...
Dynamically-typed languages allow faster software development by not posing the type constraints. St...
Both static and dynamic typing provide different benefits to the programmer. Statically typed langua...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...
Decades of research on type systems have led to advances in the kinds of programming features that c...
Type feedback and type inference are two common methods used to optimize dynamic languages such as J...
Dynamic languages are widely used for different kinds of applications including rapid prototyping, W...
Type inference and type reconstruction derive static types for program elements that have no static...
Dynamic scripting languages have recently experienced a dramatic growth. JavaScript in particular is...
Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed p...
To efficiently execute dynamically typed languages, many language implementations have adopted a two...
Transient gradual typing imposes run-time type tests that typically cause a linear slowdown. This pe...
Dynamic programming languages continue to increase in popularity. While just-in-time (JIT) compilati...
Current proposals for adding gradual typing to JavaScript, such as Closure, TypeScript and Dart, for...