当前位置: X-MOL 学术J. Comput. Lang. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Deriving overloaded success type schemes in Erlang
Journal of Computer Languages ( IF 1.7 ) Pub Date : 2020-04-19 , DOI: 10.1016/j.cola.2020.100965
Francisco J. López-Fraguas , Manuel Montenegro , Gorka Suárez-García

Erlang is a programming language which brings together the features of functional programming and actor-based concurrency. Although it is a dynamically-typed language, there exists a tool (Dialyzer) that analyses Erlang programs in order to detect type discrepancies at compile-time. This tool is based on the notion of success types, which are overapproximations to the actual semantics of expressions, so that the evaluation of an ‘ill-typed’ expression will eventually fail at runtime. Dialyzer allows programmers to provide their own type specifications. Although such specifications can be polymorphic and overloaded (i.e., reflecting different executing branches) for documentation purposes, the type analysis disregards the information provided by polymorphic type schemes and so does, in some cases, with overloaded types. In this paper we introduce: (1) a type system that allows us to obtain polymorphic overloaded success type schemes for programs, (2) a semantic definition of this kind of types, and (3) correctness results that prove that the adequacy of the obtained types w.r.t. the semantics of expressions.



中文翻译:

推导Erlang中的重载成功类型方案

Erlang是一种编程语言,它将功能性编程和基于参与者的并发的功能结合在一起。尽管它是一种动态类型的语言,但是存在一个工具(Dialyzer),该工具可以分析Erlang程序,以便在编译时检测类型差异。该工具基于成功类型的概念,这与表达式的实际语义过于近似,因此对“不良类型”表达式的求值最终将在运行时失败。Dialyzer允许程序员提供自己的类型规格。尽管出于说明目的,这样的规范可以是多态的并且可以重载(即,反映不同的执行分支),但是类型分析会忽略多态类型方案提供的信息,在某些情况下,重载类型也是如此。在本文中,我们介绍:(1)一个使我们能够获得程序的多态重载成功类型方案的类型系统,(2)这种类型的语义定义,以及(3)证明该类型是否足够的正确性结果。获得的类型带有表达式的语义。

更新日期:2020-04-19
down
wechat
bug