Skip to main content

Static Analysis of Complex Software Systems Implemented in Erlang

  • Chapter
Central European Functional Programming School (CEFP 2011)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7241))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. The DIALYZER: a DIscrepancy AnaLYZer for ERlang programs, http://www.it.uu.se/research/group/hipe/dialyzer

  2. RefactorErl Home Page (2011), http://plc.inf.elte.hu/erlang/

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Carlsson, R.: An introduction to core erlang. In: Proceedings of the PLI 2001 Erlang Workshop (2001)

    Google Scholar 

  6. 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

  7. Ericsson, A.B.: Erlang Reference Manual, http://www.erlang.org/doc/reference_manual/part_frame.html

  8. 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)

    Google Scholar 

  9. Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. In: PhD thesis, University of Michigan, Ann Arbor, MI (1979)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Google Scholar 

  12. 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)

    Article  Google Scholar 

  13. Muchnick, S.S.: Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, Inc. (1997)

    Google Scholar 

  14. Nielson, F., Nielson, H.R., Hankin, C.: Principles of Program Analysis. Springer (1999) (corrected 2005)

    Google Scholar 

  15. Shivers, O.: Control-Flow Analysis of Higher-Order Languages. PhD thesis, Carnegie Mellon University (1991)

    Google Scholar 

  16. Stafford, J.: A formal, language-independent, and compositional approach to control dependence analysis. PhD thesis, University of Colorado, Boulder, Colorado, USA (2000)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Chapter  Google Scholar 

  19. 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)

    Google Scholar 

  20. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics