Static Types with Less Syntax: Locus Types
Loading...
Date
2017-05-01
Authors
Domurad, Adam
Journal Title
Journal ISSN
Volume Title
Publisher
University of Waterloo
Abstract
Optionally and gradually-typed languages allow types to be introduced
to dynamic code as needed. While this approach allows some gradual
movement from dynamically to statically-typed code, it requires
rewriting object-constructing code to use conventional static types.
We introduce a flexible notion of type, deemed "locus types", that
aims to minimize syntactic burden and the need for refactoring when
introducing types to dynamic code. Locus types are gained by objects
that pass through an annotated code site, following the creed of "code
is types". Their structure is inferred from local type information
computed through flow-based type refinement. The design of
LocusTypeScript, a language extending TypeScript with locus types, is
detailed. Tooling support, building on that of TypeScript, for
programming with locus types is described. As well, the general
properties and applicability of locus types are explored.
LocusTypeScript's simple algorithm for computing stable flow-based
refinement types is presented. The implications and performance impact
of making locus types sound are discussed.
Description
Keywords
Gradual typing, programming languages, type inference, JavaScript, optional typing, TypeScript, type systems