• Home
  • Search
  • Abstracting gradual typing moving forward: precise and space-efficient
  • Cite Icon12
  • https://doi.org/10.1145/3434342Copy DOI Icon

Abstracting gradual typing moving forward: precise and space-efficient

Show More
  • Abstract
  • Highlights & Summary
  • PDF
  • Literature Map
  • References
  • Citations
  • Similar Papers
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.

Loading PDF

Similar Papers
  • PDF
  • Research Article
  • Citations5

Migrating gradual types

  • Jan 01, 2022
  • Journal of Functional Programming
  • John Peter Campora +3
  • Research Article
  • Citations49

The ins and outs of gradual type inference

  • Jan 18, 2012
  • ACM SIGPLAN Notices
  • Aseem Rastogi +2
  • Research Article
  • Citations5

Static vs. dynamic type systems

  • Oct 24, 2011
  • ACM SIGPLAN Notices
  • Andreas Stuchlik +1
  • Conference Article
  • Citations4

Application optimization when using gradual typing

  • Jul 26, 2011
  • Esteban Allende +1
  • Research Article
  • Citations12

Some trade-offs in reducing the overhead of assertion run-time checks via static analysis

  • Dec 28, 2017
  • Science of Computer Programming
  • Nataliia Stulova +2
  • Conference Article
  • Citations25

Always-available static and dynamic feedback

  • May 21, 2011
  • Michael Bayne +2
  • Research Article
  • Citations1

Special issue on program comprehension

  • Jul 26, 2014
  • Empirical Software Engineering
  • Michael W Godfrey +1
  • Conference Article
  • Citations21

Typed Lua

  • Jun 09, 2014
  • André Murbach Maidl +2
  • Research Article
  • Citations106

Design and evaluation of gradual typing for python

  • Oct 14, 2014
  • ACM SIGPLAN Notices
  • Michael M Vitousek +3
  • Conference Article
  • Citations8

Static Performance Guarantees for Programs with Runtime Checks

  • Sep 03, 2018
  • Maximiliano Klemen +4
  • Research Article
  • Citations9

Consistent Subtyping for All

  • Nov 21, 2019
  • ACM Transactions on Programming Languages and Systems
  • Ningning Xie +3
  • Conference Article
  • Citations28

Interpretations of the gradually-typed lambda calculus

  • Sep 09, 2012
  • Jeremy G Siek +1
  • Conference Article
  • Citations5

Extending Dylan's type system for better type inference and error detection

  • Oct 19, 2010
  • Hannes Mehnert
  • Research Article
  • Citations93

CCured

  • Jan 01, 2002
  • ACM SIGPLAN Notices
  • George C Necula +2
  • Book Chapter
  • Citations34

Adding Dynamic Types to C $^\sharp$

  • Jan 01, 2010
  • Gavin Bierman +2
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.