Using Standard Typing Algorithms Incrementally

by   Matteo Busi, et al.

Modern languages are equipped with static type checking/inference that helps programmers to keep a clean programming style and to reduce errors. However, the ever-growing size of programs and their continuous evolution require building fast and efficient analyzers. A promising solution is incrementality, so one only re-types those parts of the program that are new or changed, rather than the entire codebase. We propose an algorithmic schema driving the definition of an incremental typing algorithm that exploits with no changes to the existing, standard ones. Ours is a grey-box approach, meaning that just the shape of the input, that of the results and some domain-specific knowledge are needed to instantiate our schema. Here, we present the foundations of our approach and we show it at work to derive three different incremental typing algorithms. The first two implement type checking and inference for a functional language. The last one type-checks an imperative language to detect information flow and non-interference. A prototypical implementation of an incremental type checker is available on the web.



There are no comments yet.


page 1

page 2

page 3

page 4


Type Safety with JSON Subschema

JSON is a popular data format used pervasively in web APIs, cloud comput...

A Type Checking Algorithm for Higher-rank, Impredicative and Second-order Types

We study a type checking algorithm that is able to type check a nontrivi...

Fungi: Typed incremental computation with names

Incremental computations attempt to exploit input similarities over time...

Putting gradual types to work

In this paper, we describe our experience incorporating gradual types in...

Approximate Normalization and Eager Equality Checking for Gradual Inductive Families

Harnessing the power of dependently typed languages can be difficult. Pr...

Typed Image-based Programming with Structure Editing

Many beloved programming systems are image-based: self-contained worlds ...

Fast and Precise Type Checking for JavaScript

In this paper we present the design and implementation of Flow, a fast a...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.