A Polyvariant Type Analysis for Erlang

作者: Sven-Olof Nyström

DOI:

关键词:

摘要: This paper presents a type analysis for the programming language Erlang. The computes interprocedural control-flow and data-flow information, should be applicable to any higher-order functional with call-by-value semantics. uses novel method polyvariance, static limiting, where an approximation of call graph is analyzed determine whether function treated as polyvariant or monovariant. A general framework presented. used experimental investigations evaluate cost potential benefits compare different approaches analysis. results show that limiting gives same better precision other analyses, while having more predictable times. However, experiments only small improvements in various analyses.

参考文章(15)
Peter Golde, Anders Hejlsberg, Scott Wiltamuth, C# Language Specification Addison-Wesley Longman Publishing Co., Inc.. ,(2003)
Mikael Pettersson, Konstantinos Sagonas, Erik Johansson, The HiPE/x86 Erlang Compiler: System Description and Performance Evaluation international symposium on functional and logic programming. pp. 228- 244 ,(2002) , 10.1007/3-540-45788-7_14
Manuvir Das, Ben Liblit, Manuel Fähndrich, Jakob Rehof, Estimating the Impact of Scalable Pointer Analysis on Optimization static analysis symposium. pp. 260- 278 ,(2001) , 10.1007/3-540-47764-0_15
Donglin Liang, Mary Jean Harrold, Efficient points-to analysis for whole-program analysis foundations of software engineering. ,vol. 24, pp. 199- 215 ,(1999) , 10.1145/318774.318943
J. Michael Ashley, R. Kent Dybvig, A practical and flexible flow analysis for higher-order languages ACM Transactions on Programming Languages and Systems. ,vol. 20, pp. 845- 868 ,(1998) , 10.1145/291891.291898
Simon Marlow, Philip Wadler, A practical subtyping system for Erlang international conference on functional programming. ,vol. 32, pp. 136- 149 ,(1997) , 10.1145/258948.258962
Andrew K. Wright, Suresh Jagannathan, Polymorphic splitting: an effective polyvariant flow analysis ACM Transactions on Programming Languages and Systems. ,vol. 20, pp. 166- 207 ,(1998) , 10.1145/271510.271523
O. Shivers, Control flow analysis in scheme programming language design and implementation. ,vol. 23, pp. 164- 174 ,(1988) , 10.1145/960116.54007
Manuvir Das, Unification-based pointer analysis with directional assignments Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation - PLDI '00. ,vol. 35, pp. 35- 46 ,(2000) , 10.1145/349299.349309