Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The marriage of effects and monads
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Erlang's exception handling revisited
ERLANG '04 Proceedings of the 2004 ACM SIGPLAN workshop on Erlang
Advanced Topics in Types and Programming Languages
Advanced Topics in Types and Programming Languages
Implementation and Application of Functional Languages
Hi-index | 0.00 |
Motivated by a concrete goal, namely to extend Erlang with the ability to employ user-defined guards, we developed a parameterized static analysis tool called PURITY, that classifies functions as referentially transparent (i.e., sideeffect free with no dependency on the execution environment and never raising an exception), side-effect free with no dependencies but possibly raising exceptions, or side-effect free but with possible dependencies and possibly raising exceptions. We have applied PURITY on a large corpus of Erlang code bases and report experimental results showing the percentage of functions that the analysis definitely classifies in each category. Moreover, we discuss how our analysis has been incorporated on a development branch of the Erlang/OTP compiler in order to allow extending the language with user-defined guards.