dc.contributor.author |
Aronis, S |
en |
dc.contributor.author |
Sagonas, K |
en |
dc.date.accessioned |
2014-03-01T02:53:31Z |
|
dc.date.available |
2014-03-01T02:53:31Z |
|
dc.date.issued |
2011 |
en |
dc.identifier.uri |
https://dspace.lib.ntua.gr/xmlui/handle/123456789/36375 |
|
dc.subject |
abstract classes |
en |
dc.subject |
behaviours |
en |
dc.subject |
erlang |
en |
dc.subject.other |
Abstract class |
en |
dc.subject.other |
Abstraction layer |
en |
dc.subject.other |
behaviours |
en |
dc.subject.other |
Design Patterns |
en |
dc.subject.other |
erlang |
en |
dc.subject.other |
Formal definition |
en |
dc.subject.other |
Function specification |
en |
dc.subject.other |
Functional characteristics |
en |
dc.subject.other |
Abstracting |
en |
dc.subject.other |
Computer programming languages |
en |
dc.subject.other |
Functional programming |
en |
dc.subject.other |
Program compilers |
en |
dc.subject.other |
Static analysis |
en |
dc.title |
Typed callbacks for more robust behaviours |
en |
heal.type |
conferenceItem |
en |
heal.identifier.primary |
10.1145/2034654.2034660 |
en |
heal.identifier.secondary |
http://dx.doi.org/10.1145/2034654.2034660 |
en |
heal.publicationDate |
2011 |
en |
heal.abstract |
Behaviours are one of the most widely used features of Erlang/OTP. They offer a convenient and well-tested abstraction layer for frequently employed design patterns in concurrent Erlang programming. In effect, they allow programmers to focus on the functional characteristics of their applications without having to resort to Erlang's concurrency-supporting primitives. However, when it comes to ensuring that behaviours are properly used and callbacks are as expected, the current Erlang/OTP compiler performs only minimal checks. This is no fault of the compiler though, because most/all of the callbacks' API exists only in the documentation or the comments accompanying the code; as such, it cannot always be trusted and it is almost impossible to have it mechanically processed. In this paper, we propose a small extension to the language of function specifications of Erlang to allow the formal definition of the behaviours' callback API. We have implemented this extension on the development branch of Erlang/OTP and provide evidence of how it can be leveraged by static analysis tools such as Dialyzer to detect behaviour misuses. © 2011 ACM. |
en |
heal.journalName |
Erlang'11 - Proceedings of the 2011 ACM SIGPLAN Erlang Workshop |
en |
dc.identifier.doi |
10.1145/2034654.2034660 |
en |
dc.identifier.spage |
23 |
en |
dc.identifier.epage |
29 |
en |