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

Khurram A. Jafery

dblp:190/7678 · DBLP profile ↗
← Back
2ranked-venue papers
1as first author
1since 2021 · last 2021
—ORCID · none

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

Software engineering, systems software and programming languages · 2 · 1 first-author · 1 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 · 93% Program analysis · 7%

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

TopicWeightPapersLastEvidence papers
Programming languages and type systems › type systems
gradual typing
0.512021
Abstracting gradual typing moving forward: precise and space-efficient · Proc. ACM Program. Lang. 2021
Programming languages and type systems › type checking
runtime type checking
0.512021
Abstracting gradual typing moving forward: precise and space-efficient · Proc. ACM Program. Lang. 2021
Programming languages and type systems
type systems
0.512021
Abstracting gradual typing moving forward: precise and space-efficient · Proc. ACM Program. Lang. 2021
Programming languages and type systems › control structures
pattern matching
0.312017
Sums of uncertainty: refinements go gradual · POPL 2017
Programming languages and type systems › type systems
refinement types
0.312017
Sums of uncertainty: refinements go gradual · POPL 2017
Program analysis › static analysis
abstract interpretation
0.112021
Abstracting gradual typing moving forward: precise and space-efficient · Proc. ACM Program. Lang. 2021

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

forward-completeness · 0.5abstract interpretation · 0.5type theory · 0.3refinement typing · 0.3
YearPublicationVenuePosition
2021 Abstracting gradual typing moving forward: precise and space-efficient
abstract
Abstracting Gradual Typing (AGT) is a systematic approach to designing gradually-typed languages. Languages developed using AGT automatically satisfy the formal semantic criteria for gradual languages identified by Siek et al. Nonetheless, vanilla AGT semantics can still have important shortcomings. First, a gradual language's runtime checks should preserve the space-efficiency guarantees inherent to the underlying static and dynamic languages. To the contrary, the default operational semantics of AGT break proper tail calls. Second, a gradual language's runtime checks should enforce basic modular type-based invariants expected from the static type discipline. To the contrary, the default operational semantics of AGT may fail to enforce some invariants in surprising ways. We demonstrate this in the GTFL ≲ language of Garcia et al. This paper addresses both problems at once by refining the theory underlying AGT's dynamic checks. Garcia et al. observe that AGT involves two abstractions of static types: one for the static semantics and one for the dynamic semantics. We recast the latter as an abstract interpretation of subtyping itself, while gradual types still abstract static types. Then we show how forward-completeness (Giacobazzi and Quintarelli) is key to supporting both space-efficient execution and reliable runtime type enforcement.
Felipe Bañados, Alison M. Clark, Khurram A. Jafery, Ronald Garcia
Proc. ACM Program. Lang.3
2017 Sums of uncertainty: refinements go gradual
abstract
A long-standing shortcoming of statically typed functional languages is that type checking does not rule out pattern-matching failures (run-time match exceptions). Refinement types distinguish different values of datatypes; if a program annotated with refinements passes type checking, pattern-matching failures become impossible. Unfortunately, refinement is a monolithic property of a type, exacerbating the difficulty of adding refinement types to nontrivial programs.
Khurram A. Jafery, Jana Dunfield
POPL1