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

Links:
BibTeX entry
@inproceedings{LPAR-22:Polymorphic_success_types_for,
  author    = {Francisco J. L\textbackslash{}'opez-Fraguas and Manuel Montenegro and Gorka Su\textbackslash{}'arez-Garc\textbackslash{}'ia},
  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},
  pages     = {515--533},
  year      = {2018},
  publisher = {EasyChair},
  bibsource = {EasyChair, https://easychair.org},
  issn      = {2398-7340},
  url       = {https://easychair.org/publications/paper/FzsM},
  doi       = {10.29007/w2m2}}
Download PDFOpen PDF in browser