How to evaluate the performance of gradual type systems

B. E.N. Greenman*, A. S.U.M.U. Takikawa, Max S. New, Daniel Feltey, Robert Findler, J. A.N. Vitek, Matthias Felleisen

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

22 Scopus citations

Abstract

A sound gradual type system ensures that untyped components of a program can never break the guarantees of statically typed components. This assurance relies on runtime checks, which in turn impose performance overhead in proportion to the frequency and nature of interaction between typed and untyped components. The literature on gradual typing lacks rigorous descriptions of methods for measuring the performance of gradual type systems. This gap has consequences for the implementors of gradual type systems and developers who use such systems. Without systematic evaluation of mixed-typed programs, implementors cannot precisely determine how improvements to a gradual type system affect performance. Developers cannot predict whether adding types to part of a program will significantly degrade (or improve) its performance. This paper presents the first method for evaluating the performance of sound gradual type systems. The method quantifies both the absolute performance of a gradual type system and the relative performance of two implementations of the same gradual type system. To validate the method, the paper reports on its application to 20 programs and 3 implementations of Typed Racket.

Original languageEnglish (US)
Article numbere4
JournalJournal of Functional Programming
Volume29
DOIs
StatePublished - 2019

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'How to evaluate the performance of gradual type systems'. Together they form a unique fingerprint.

Cite this