Erlang is a strict, dynamically typed functional programming language popular for its use in distributed and fault-tolerant applications.
The absence of static type checking allows ill-typed programs to cause type errors at run time.
The benefits of catching these type errors at compile time are the primary motivation for introducing a static type system for Erlang.
The greatest challenge is to find a balance between keeping the type checking sound while retaining the flexibility and philosophy of the Erlang.
However, since Erlang allows higher-rank polymorphism, it is unavoidable to require type annotations for some functions to ensure decidability.
In this paper, we propose a static type system for Erlang based on bidirectional type checking.
In bidirectional type checking, terms are either used to \emph{infer} a type, or they are \emph{checked} against a given type.
With the bidirectional type checking, we are trying to keep type checking sound without limiting the language's philosophy.
In addition, type annotations are only required when inference fails, which only occurs at predictable places, such as usage of higher-ranked polymorphism.
Thu 26 AugDisplayed time zone: Seoul change
23:30 - 01:00 | |||
23:30 30mTalk | Detecting Oxbow Code in Erlang Codebases with the Highest Degree of Certainty Erlang DOI | ||
00:00 30mTalk | Bidirectional Typing for Erlang Erlang Nithin Vadukkumchery Rajendrakumar TU Kaiserslautern, Annette Bieniusa Technische Universität Kaiserslautern DOI | ||
00:30 10mVision and Emerging Results | Lightning Talk: Experience teaching Erlang/Elixir on YouTube Erlang Adolfo Neto Federal University of Technology - Paraná | ||
00:40 10mVision and Emerging Results | Lightning Talk: AtomVM: A flyweight BEAM for microcontrollers Erlang |