Title
Well-Typed Languages are Sound.
Abstract
Type soundness is an important property of modern programming languages. In this paper we explore the idea that "well-typed languages are sound": the idea that the appropriate typing discipline over language specifications guarantees that the language is type sound. We instantiate this idea for a certain class of languages defined using small step operational semantics by ensuring the progress and preservation theorems. Our first contribution is a syntactic discipline for organizing and restricting language specifications so that they automatically satisfy the progress theorem. This discipline is not novel but makes explicit the way expert language designers have been organizing a certain class of languages for long time. We give a formal account of this discipline by representing language specifications as (higher-order) logic programs and by giving a meta type system over that collection of formulas. Our second contribution is a methodology and meta type system for guaranteeing that languages satisfy the preservation theorem. Ultimately, we proved that language specifications that conform to our meta type systems are guaranteed to be type sound. We have implemented these ideas in the TypeSoundnessCertifier, a tool that takes language specifications in the form of logic programs and type checks them according to our meta type systems. For those languages that pass our type checker, our tool automatically produces a proof of type soundness that can be machine-checked by the Abella proof assistant. For those languages that fail our type checker, the tool pinpoints the design mistakes that hinder type soundness. We have applied the TypeSoundnessCertifier to a large number of programming languages, including those with recursive types, polymorphism, letrec, exceptions, lists and other common types and operators.
Year
Venue
Field
2016
arXiv: Programming Languages
Type system,Fifth-generation programming language,Second-generation programming language,Programming language,Computer science,Abstract family of languages,Theoretical computer science,Data type,Third-generation programming language,Type safety,Ontology language
DocType
Volume
Citations 
Journal
abs/1611.05105
0
PageRank 
References 
Authors
0.34
0
3
Name
Order
Citations
PageRank
Matteo Cimini1647.02
Dale Miller22485232.26
Jeremy G. Siek356345.96