Live functional programming with typed holes

C Omar, I Voysey, R Chugh, MA Hammer - Proceedings of the ACM on …, 2019 - dl.acm.org
Live programming environments aim to provide programmers (and sometimes audiences)
with continuous feedback about a program's dynamic behavior as it is being edited. The …

Gradual typing: a new perspective

G Castagna, V Lanvin, T Petrucciani… - Proceedings of the ACM on …, 2019 - dl.acm.org
We define a new, more semantic interpretation of gradual types and use it to``gradualize''two
forms of polymorphism: subtyping polymorphism and implicit parametric polymorphism. In …

The gradualizer: a methodology and algorithm for generating gradual type systems

M Cimini, JG Siek - ACM SIGPLAN Notices, 2016 - dl.acm.org
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 …

Blame and coercion: Together again for the first time

J Siek, P Thiemann, P Wadler - Proceedings of the 36th ACM SIGPLAN …, 2015 - dl.acm.org
C#, Dart, Pyret, Racket, TypeScript, VB: many recent languages integrate dynamic and static
types via gradual typing. We systematically develop three calculi for gradual typing and the …

Gradual soundness: Lessons from static python

KC Lu, B Greenman, C Meyer, D Viehland… - arXiv preprint arXiv …, 2022 - arxiv.org
Context: Gradually-typed languages allow typed and untyped code to interoperate, but
typically come with significant drawbacks. In some languages, the types are unreliable; in …

A gradual type system for Elixir

M Cassola, A Talagorria, A Pardo, M Viera - Proceedings of the 24th …, 2020 - dl.acm.org
Elixir is a functional programming language with dynamic typing. In this paper we propose a
type system that makes it possible to perform static type-checking on a significant fragment …

How to evaluate the performance of gradual type systems

B Greenman, A Takikawa, MS New, D Feltey… - Journal of Functional …, 2019 - cambridge.org
A sound gradual type system ensures that untyped components of a program can never
break the guarantees of statically typed components. This assurance relies on runtime …

Space-efficient manifest contracts

M Greenberg - Proceedings of the 42nd Annual ACM SIGPLAN …, 2015 - dl.acm.org
The standard algorithm for higher-order contract checking can lead to unbounded space
consumption and can destroy tail recursion, altering a program's asymptotic space …

A Gradual Probabilistic Lambda Calculus

W Ye, M Toro, F Olmedo - Proceedings of the ACM on Programming …, 2023 - dl.acm.org
Probabilistic programming languages have recently gained a lot of attention, in particular
due to their applications in domains such as machine learning and differential privacy. To …

Programming with union, intersection, and negation types

G Castagna - The French School of Programming, 2023 - Springer
In this essay I present the advantages and, I dare say, the beauty of programming in a
language with set-theoretic types, that is, types that include union, intersection, and negation …