Download PDFOpen PDF in browser

Polymorphic success types for Erlang

19 pagesPublished: October 23, 2018

Abstract

Erlang is a dynamically typed concurrent functional language of increasing interest in industry and academia. Official Erlang distributions come equipped with Dialyzer, a useful static analysis tool able to anticipate runtime errors by inferring so-called success types, which are overapproximations to the real semantics of expressions. However, Dialyzer exhibits two main weaknesses: on the practical side, its ability to deal with functions that are typically polymorphic is rather poor; and on the theoretical side, a fully developed theory for its underlying type system –comparable to, say, Hindley-Milner system– does not seem to exist, something that we consider a regrettable circumstance. This work presents a type derivation system to obtain polymorphic success types for Erlang programs, along with correctness results with respect to a suitable semantics for the language.

Keyphrases: erlang, polymorphism, success types, types

In: Gilles Barthe, Geoff Sutcliffe and Margus Veanes (editors). LPAR-22. 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning, vol 57, pages 515-533.

BibTeX entry
@inproceedings{LPAR-22:Polymorphic_success_types_Erlang,
  author    = {Francisco J. López-Fraguas and Manuel Montenegro and Gorka Suárez-García},
  title     = {Polymorphic success types for Erlang},
  booktitle = {LPAR-22. 22nd International Conference on Logic for Programming, Artificial Intelligence and Reasoning},
  editor    = {Gilles Barthe and Geoff Sutcliffe and Margus Veanes},
  series    = {EPiC Series in Computing},
  volume    = {57},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {/publications/paper/FzsM},
  doi       = {10.29007/w2m2},
  pages     = {515-533},
  year      = {2018}}
Download PDFOpen PDF in browser