Using Standard Typing Algorithms Incrementally

08/01/2018
by   Matteo Busi, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/28/2019

Type Safety with JSON Subschema

JSON is a popular data format used pervasively in web APIs, cloud comput...
research
11/13/2017

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...
research
08/20/2018

Fungi: Typed incremental computation with names

Incremental computations attempt to exploit input similarities over time...
research
01/28/2021

Putting gradual types to work

In this paper, we describe our experience incorporating gradual types in...
research
03/16/2022

Gradual Tensor Shape Checking

Tensor shape mismatch is a common source of bugs in deep learning progra...
research
04/06/2022

P4BID: Information Flow Control in P4

Modern programmable network switches can implement custom applications u...
research
10/18/2021

Typed Image-based Programming with Structure Editing

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

Please sign up or login with your details

Forgot password? Click here to reset