Abstract
Static software analyser tools use different levels of intermediate source code representations that depend on the syntax and semantics of the language to be analysed. Most of the analyser tools use graph representation to efficiently retrieve information. Building such graphs for dynamically typed languages, such as Erlang, is not straightforward. In this paper we present static analysis methods to define the Dependency Graph representation of Erlang programs. The introduced methods cover the data-, control-, behaviour-flow and dependency analyses for sequential and parallel language constructs.
Supported by TECH_08_A2-SZOMIN08.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
The DIALYZER: a DIscrepancy AnaLYZer for ERlang programs, http://www.it.uu.se/research/group/hipe/dialyzer
RefactorErl Home Page (2011), http://plc.inf.elte.hu/erlang/
Bozó, I., Horpácsi, D., Horváth, Z., Kitlei, R., Kőszegi, J., Tejfel, M., Tóth, M.: Refactorerl – source code analysis and refactoring in erlang. In: Proceeding of the 12th Symposium on Programming Languages and Software Tools, Tallin, Estonia (2011)
Bozó, I., Tóth, M.: Selecting erlang test cases using impact analysis. In: Proceedings of Symposium on Computer Languages, Implementations and Tools, Kassandra, Halkidiki, Greece (2011)
Carlsson, R.: An introduction to core erlang. In: Proceedings of the PLI 2001 Erlang Workshop (2001)
Ericsson, A.B.: EDOC – Erlang program documentation generator. Latest version, http://www.erlang.org/documentation/doc5.4.2.1/lib/edoc-0.1/doc/html/index.html
Ericsson, A.B.: Erlang Reference Manual, http://www.erlang.org/doc/reference_manual/part_frame.html
Horpácsi, D., Kőszegi, J.: Static analysis of function calls in erlang – refining the static function call graph with dynamic call information by using data-flow analysis. In: Proceedings of the Central and Eastern European Conference on Software Engineering Techniques, Debrecen, Hungary (August 2011)
Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. In: PhD thesis, University of Michigan, Ann Arbor, MI (1979)
Li, H., Thompson, S.: Tool support for refactoring functional programs. In: WRT 2008: Proceedings of the 2nd Workshop on Refactoring Tools, pp. 1–4. ACM, New York (2008)
Lövei, L., Hajós, L., Tóth, M.: Erlang Semantic Query Language. In: Proceedings of the 8th International Conference on Applied Informatics, ICAI 2010 (January 2010)
Michael Ashley, J., Kent Dybvig, R.: A practical and flexible flow analysis for higher-order languages. ACM Transactions on Programming Languages and Systems 20(4), 845–868 (1998)
Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, Inc. (1997)
Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer (1999) (corrected 2005)
Shivers, O.: Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University (1991)
Stafford, J.: A formal, language-independent, and compositional approach to control dependence analysis. PhD thesis, University of Colorado, Boulder, Colorado, USA (2000)
Tóth, M., Bozó, I., Horváth, Z., Erdődi, A.: Static analysis and refactoring towards erlang multicore programming. In: Pre-proceedings of the Fourth Workshop on Programming Language Approaches to Concurrency and Communication-cEntric Software, PLACES 2011, Saarbrcken, Germany (2011)
Tóth, M., Bozó, I., Horváth, Z., Lövei, L., Tejfel, M., Kozsik, T.: Impact Analysis of Erlang Programs Using Behaviour Dependency Graphs. In: Horváth, Z., Plasmeijer, R., Zsók, V. (eds.) CEFP 2009. LNCS, vol. 6299, pp. 372–390. Springer, Heidelberg (2010)
Tóth, M., Bozó, I., Horváth, Z., Tejfel, M.: First order flow analysis for Erlang. In: 8th Joint Conference on Mathematics and Computer Science, MACS 2010 (2010)
Tóth, M., Bozó, I., Kőszegi, J., Horváth, Z.: Applying the Query Language to support program comprehension. Acta Electrotechnica et Informatica 11(03), 3–10 (2011) ISSN 1335-8243 (print), ISSN 1338-3957 (online)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Tóth, M., Bozó, I. (2012). Static Analysis of Complex Software Systems Implemented in Erlang. In: Zsók, V., Horváth, Z., Plasmeijer, R. (eds) Central European Functional Programming School. CEFP 2011. Lecture Notes in Computer Science, vol 7241. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-32096-5_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-32096-5_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-32095-8
Online ISBN: 978-3-642-32096-5
eBook Packages: Computer ScienceComputer Science (R0)