Type-directed operational semantics for gradual typing

Guardado en:
Detalles Bibliográficos
Publicado en:Journal of Functional Programming vol. 34 (Sep 2024)
Autor principal: YE, WENJIA
Otros Autores: BRUNO C D S OLIVEIRA
Publicado:
Cambridge University Press
Materias:
Acceso en línea:Citation/Abstract
Full Text - PDF
Etiquetas: Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
Descripción
Resumen:The semantics of gradually typed languages is typically given indirectly via an elaboration into a cast calculus. This contrasts with more conventional formulations of programming language semantics, where the semantics of a language is given directly using, for instance, an operational semantics. This paper presents a new approach to give the semantics of gradually typed languages directly. We use a recently proposed variant of small-step operational semantics called type-directed operational semantics (TDOS). In a TDOS, type annotations become operationally relevant and can affect the result of a program. In the context of a gradually typed language, type annotations are used to trigger type-based conversions on values. We illustrate how to employ a TDOS on gradually typed languages using two calculi. The first calculus, called <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000078_inline1.png" />\(\lambda B^{g}\)</inline-formula>, is inspired by the semantics of the blame calculus, but it has implicit type conversions, enabling it to be used as a gradually typed language. The second calculus, called <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000078_inline2.png" />\(\lambda e\)</inline-formula>, explores an eager semantics for gradually typed languages using a TDOS. For both calculi, type safety is proved. For the <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000078_inline3.png" />\(\lambda B^{g}\)</inline-formula> calculus, we also present a variant with blame labels and illustrate how the TDOS can also deal with such an important feature of gradually typed languages. We also show that the semantics of <inline-formula><inline-graphic mime-subtype="png" xlink:href="S0956796824000078_inline4.png" />\(\lambda B^{g}\)</inline-formula> with blame labels is sound and complete with respect to the semantics of the blame calculus, and that both calculi come with a gradual guarantee. All the results have been formalized in the Coq theorem prover.
ISSN:0956-7968
1469-7653
DOI:10.1017/S0956796824000078
Fuente:Advanced Technologies & Aerospace Database