Bidirectional typing
J Dunfield, N Krishnaswami - ACM Computing Surveys (CSUR), 2021 - dl.acm.org
Bidirectional typing combines two modes of typing: type checking, which checks that a
program satisfies a known type, and type synthesis, which determines a type from the …
program satisfies a known type, and type synthesis, which determines a type from the …
[PDF][PDF] Refined criteria for gradual typing
Siek and Taha [2006] coined the term gradual typing to describe a theory for integrating
static and dynamic typing within a single language that 1) puts the programmer in control of …
static and dynamic typing within a single language that 1) puts the programmer in control of …
Behavioral types in programming languages
A recent trend in programming language research is to use behavioral type theory to ensure
various correctness properties of largescale, communication-intensive systems. Behavioral …
various correctness properties of largescale, communication-intensive systems. Behavioral …
Design and evaluation of gradual typing for Python
Combining static and dynamic typing within the same language offers clear benefits to
programmers. It provides dynamic typing in situations that require rapid prototyping …
programmers. It provides dynamic typing in situations that require rapid prototyping …
The gradualizer: a methodology and algorithm for generating gradual type systems
Many languages are beginning to integrate dynamic and static typing. Siek and Taha offered
gradual typing as an approach to this integration that provides a coherent and full-span …
gradual typing as an approach to this integration that provides a coherent and full-span …
Type-driven gradual security with references
In security-typed programming languages, types statically enforce noninterference between
potentially conspiring values, such as the arguments and results of functions. But to adopt …
potentially conspiring values, such as the arguments and results of functions. But to adopt …
Principal type schemes for gradual programs
Gradual typing is a discipline for integrating dynamic checking into a static type system.
Since its introduction in functional languages, it has been adapted to a variety of type …
Since its introduction in functional languages, it has been adapted to a variety of type …
Foundations of typestate-oriented programming
Typestate reflects how the legal operations on imperative objects can change at runtime as
their internal state changes. A typestate checker can statically ensure, for instance, that an …
their internal state changes. A typestate checker can statically ensure, for instance, that an …
How developers use the dynamic features of programming languages: the case of smalltalk
The dynamic and reflective features of programming languages are powerful constructs that
programmers often mention as extremely useful. However, the ability to modify a program at …
programmers often mention as extremely useful. However, the ability to modify a program at …