Demand-driven type analysis for dynamically-typed functional languages

作者: Danny Dube , Marc Feeley

DOI:

关键词:

摘要: We present a new static type analysis for dynamically-typed languages that produces high quality results at cost remains practicable. The has the ability to adapt needs of optimiser and characteristics program hand. result is an analyser quickly transforms itself be better equipped attack program. Experiments show our approach can pretty clever in optimisations it enables. The adaptable because accomplished using parametric Many properties framework are presented proved dissertation. Among which there guarantee termination any instance produces, capacity analyse perfectly well error-free terminating programs, mimic many conventional analyses. are realised through use demands demand processing rules. Demands express request demonstration property deemed useful optimiser. rules allow directly translated into precise proposals modifications potentially helpful ensure pertinent other demands. A complete demand-driven based on pattern-matching exposed been implemented. prototype implementing demonstrated work great potential. Further research conducted make method usable everyday compilers. Still, this understandable, considering whole work, except notions related analysis, original material.

参考文章(52)
Alexander Aiken, Edward L. Wimmers, T. K. Lakshman, Soft typing with conditional types symposium on principles of programming languages. pp. 163- 173 ,(1994) , 10.1145/174675.177847
R. Sekar, I. V. Ramakrishnan, Fast strictness analysis based on demand propagation ACM Transactions on Programming Languages and Systems. ,vol. 17, pp. 896- 937 ,(1995) , 10.1145/218570.218573
Bruno Courcelle, Fundamental properties of infinite trees Theoretical Computer Science. ,vol. 25, pp. 95- 169 ,(1983) , 10.1007/978-94-009-7893-5_13
Olin Shivers, The semantics of Scheme control-flow analysis partial evaluation and semantic-based program manipulation. ,vol. 26, pp. 190- 198 ,(1991) , 10.1145/115865.115884
Anindya Banerjee, A modular, polyvariant and type-based closure analysis international conference on functional programming. ,vol. 32, pp. 1- 10 ,(1997) , 10.1145/258948.258951
J. Michael Ashley, The effectiveness of flow analysis for inlining international conference on functional programming. ,vol. 32, pp. 99- 111 ,(1997) , 10.1145/258948.258959
François Bourdoncle, Abstract interpretation by dynamic partitioning Journal of Functional Programming. ,vol. 2, pp. 407- 435 ,(1992) , 10.1017/S0956796800000496
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
W.H. Harrison, Compiler Analysis of the Value Ranges for Variables IEEE Transactions on Software Engineering. ,vol. SE-3, pp. 243- 250 ,(1977) , 10.1109/TSE.1977.231133
J. Michael Ashley, Charles Consel, Fixpoint computation for polyvariant static analyses of higher-order applicative programs ACM Transactions on Programming Languages and Systems. ,vol. 16, pp. 1431- 1448 ,(1994) , 10.1145/186025.186037