Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Justin Frank

dblp:366/7204 · DBLP profile ↗
← Back
2ranked-venue papers
1as first author
2since 2021 · last 2024
0009-0007-7024-7331ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 first-author · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Programming languages and type systems · 77% Software testing · 23%

Topics — the 7 heaviest of 7, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type theory › dependent types
indexed types
0.812024
Indexed Types for a Statically Safe WebAssembly · Proc. ACM Program. Lang. 2024
Programming languages and type systems › language-based security
memory safety
0.812024
Indexed Types for a Statically Safe WebAssembly · Proc. ACM Program. Lang. 2024
Software testing
random testing
0.812024
Generating Well-Typed Terms That Are Not "Useless" · Proc. ACM Program. Lang. 2024
Programming languages and type systems › lambda calculus
simply typed lambda calculus
0.812024
Generating Well-Typed Terms That Are Not "Useless" · Proc. ACM Program. Lang. 2024
Programming languages and type systems
type systems
0.812024
Indexed Types for a Statically Safe WebAssembly · Proc. ACM Program. Lang. 2024
Software testing
compiler testing
0.212024
Generating Well-Typed Terms That Are Not "Useless" · Proc. ACM Program. Lang. 2024
Programming languages and type systems
webassembly
0.212024
Indexed Types for a Statically Safe WebAssembly · Proc. ACM Program. Lang. 2024

Methods — techniques the papers use, named apart from their topics

type checking · 0.8step relations · 0.8nonlocal generation · 0.8dynamic check elimination · 0.8
YearPublicationVenuePosition
2024 Generating Well-Typed Terms That Are Not "Useless"
abstract
Random generation of well-typed terms lies at the core of effective random testing of compilers for functional languages. Existing techniques have had success following a top-down type-oriented approach to generation that makes choices locally, which suffers from an inherent limitation: the type of an expression is often generated independently from the expression itself. Such generation frequently yields functions with argument types that cannot be used to produce a result in a meaningful way, leaving those arguments unused. Such “use-less” functions can hinder both performance, as the argument generation code is dead but still needs to be compiled, and effectiveness, as a lot of interesting optimizations are tested less frequently. In this paper, we introduce a novel algorithm that is significantly more effective at generating functions that use their arguments. We formalize both the “local” and the “nonlocal” algorithms as step-relations in an extension of the simply-typed lambda calculus with type and arguments holes, showing how delaying the generation of types for subexpressions by allowing nonlocal generation steps leads to “useful” functions. We implement our algorithm demonstrating that it’s much closer to real programs in terms of argument usage rate, and we replicate a case study from the literature that finds bugs in the strictness analyzer of GHC, with our approach finding bugs four times faster than the current state-of-the-art local approach.
Justin Frank, Benjamin Quiring, Leonidas Lampropoulos
Proc. ACM Program. Lang.1
2024 Indexed Types for a Statically Safe WebAssembly
abstract
We present Wasm-precheck, a superset of WebAssembly (Wasm) that uses indexed types to express and check simple constraints over program values. This additional static reasoning enables safely removing dynamic safety checks from Wasm, such as memory bounds checks. We implement Wasm-precheck as an extension of the Wasmtime compiler and runtime, evaluate the run-time and compile-time performance of Wasm-precheck vs Wasm configurations with explicit dynamic checks, and find an average run-time performance gain of 1.71 x faster in the widely used PolyBenchC benchmark suite, for a small overhead in binary size ( 7.18 % larger) and type-checking time (1.4% slower). We also prove type and memory safety of Wasm-precheck, prove Wasm safely embeds into Wasm-precheck ensuring backwards compatibility, prove Wasm-precheck type-erases to Wasm, and discuss design and implementation trade-offs.
Adam T. Geller, Justin Frank, William J. Bowman
Proc. ACM Program. Lang.2