skip to main content
10.1145/3123569.3123570acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

eAOP: an aspect oriented programming framework for Erlang

Published:08 September 2017Publication History

ABSTRACT

Aspect oriented programming (AOP) is a paradigm ideal for defining cross-cutting concerns within an existing application. Although several AOP frameworks exist for more renowned languages such as Java and C#, little to no frameworks have been developed for actor oriented languages such as Erlang. We thus present eAOP, a new AOP framework specifically designed to instrument actor-oriented constructs in Erlang such as message sends and receives, along with other traditional constructs such as function calls.

References

  1. G. Agha. An overview of actor languages. ACM, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. J. Armstrong. Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf, 2007.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. D. P. Attard, I. Cassar, A. Francalanza, L. Aceto, and A. Ingolfsdottir. A runtime monitoring tool for actor-based systems. Behavioural Types: from Theory to Tools., 2017.Google ScholarGoogle Scholar
  4. V. Bala, E. Duesterwald, and S. Banerjia. Dynamo: a transparent dynamic optimization system. ACM, 35:1–12, 2000.Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. A. Bawiskar, P. Sawant, V. Kankate, and B. Meshram. Spring Framework: A Companion to JavaEE. IJCEM, 1:41–49, 2012.Google ScholarGoogle Scholar
  6. G. A. T. Bayona. Aspect oriented programming meets design patterns. Master’s thesis, University of Manchester, Faculty of Engineering and Physical Sciences, 2013.Google ScholarGoogle Scholar
  7. D. Bruening and Q. Zhao. Practical memory checking with Dr. Memory. In IEEE/ACM Symposium on Code Generation and Optimization , pages 213–223. IEEE, 2011. Google ScholarGoogle ScholarCross RefCross Ref
  8. D. Bruening, Q. Zhao, and S. Amarasinghe. Transparent dynamic instrumentation. ACM , 47:133–144, 2012.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. N. Cacho, C. Sant’Anna, E. Figueiredo, A. Garcia, T. Batista, and C. Lucena. Composing design patterns: A scalability study of aop. In AOSD, pages 109–121. ACM, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. I. Cassar and A. Francalanza. On synchronous and asynchronous monitor instrumentation for actor-based systems. arXiv:1502.03514, 2015.Google ScholarGoogle Scholar
  11. I. Cassar and A. Francalanza. Runtime adaptation for actor systems. In RV, pages 38–54. Springer, 2015. Google ScholarGoogle ScholarCross RefCross Ref
  12. I. Cassar and A. Francalanza. On implementing a monitor-oriented programming framework for actor systems. In IFM, pages 176–192. Springer, 2016. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. I. Cassar, A. Francalanza, L. Aceto, and A. Ingólfsdóttir. A Survey of Runtime Monitoring Instrumentation Techniques. In PrePost, EPTCS, 2017. (To appear). Google ScholarGoogle ScholarCross RefCross Ref
  14. F. Chen and G. Roşu. MOP: An efficient and generic Runtime Verification framework. In ACM SIGPLAN Notices 2007, volume 42, pages 569–588. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. F. Chen and G. Roşu. Java-MOP: A Monitoring Oriented Programming Environment for Java , pages 546–550. 2005.Google ScholarGoogle Scholar
  16. S. Chiba and R. Ishikawa. Aspect-oriented programming beyond dependency injection. ECOOP, pages 121–143, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using AspectC to improve the modularity of path-specific customization in operating system code. In ACM SIGSOFT , volume 26, pages 88–98. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Ericsson. Compiler reference manual. Online. http://erlang.org/doc/man/compile. html#file-2 .Google ScholarGoogle Scholar
  19. M. Fayad and D. C. Schmidt. Object-oriented application frameworks. Commun. ACM , 40(10):32–38, Oct. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. I. Figueroa, N. Tabareau, and É. Tanter. Effective Aspects: A Typed Monadic Embedding of Pointcuts and Advice , pages 145–192. Springer, 2014.Google ScholarGoogle Scholar
  21. G. Fraiteur. A Thread-Safe Extension to Object-Oriented Programming. Technical report, PostSharp Technologies.Google ScholarGoogle Scholar
  22. A. Francalanza and A. Seychell. Synthesising correct concurrent runtime monitors. FMSD, 46(3):226–261, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. Francalanza, L. Aceto, and A. Ingólfsdóttir. On verifying hennessy-milner logic with recursion at runtime. In RV, pages 71–86, 2015. Google ScholarGoogle ScholarCross RefCross Ref
  24. K. Gregor, H. Erik, H. Jim, K. Mik, P. Jeffrey, and G. G. William. An Overview of AspectJ. In ECOOP, 2001.Google ScholarGoogle Scholar
  25. K. Havelund and G. Roşu. An Overview of the RV tool Java PathExplorer. FMSD, 24(2):189–215, 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. A. Hernandez. Yaws 1.89: Directory Traversal Vulnerability. Available online at www.exploit-db.com/exploits/15371/ , 2010. Accessed on 24/5/2017.Google ScholarGoogle Scholar
  27. I. Jacobson and P.-W. Ng. Aspect-oriented software development with use cases. Addison-Wesley Professional, 2004.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming, pages 220–242. Springer, 1997. Google ScholarGoogle ScholarCross RefCross Ref
  29. M. Kim, M. Viswanathan, S. Kannan, I. Lee, and O. Sokolsky. Java-MaC: A run-time assurance approach for Java programs. FMSD, 24(2):129–155, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. R. Laddad. AspectJ in action: practical aspect-oriented programming. Dreamtech Press, 2003.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Mountainminds GmbH & Co. KG. EclEmma - Java Code Coverage for Eclipse. Online. www.eclemma.org/ .Google ScholarGoogle Scholar
  32. N. Nethercote. Dynamic binary analysis and instrumentation. PhD thesis, University of Cambridge, 2004.Google ScholarGoogle Scholar
  33. H. Rajan and K. Sullivan. Aspect language features for concern coverage profiling. AOSD, pages 181–191. ACM, 2005.Google ScholarGoogle Scholar
  34. C. Sant’Anna, A. Garcia, U. Kulesza, C. Lucena, and A. v. Staa. Design patterns as aspects: A quantitative assessment. JBCS, 10(2):42–55, 2004.Google ScholarGoogle Scholar
  35. K. Sirbi and P. J. Kulkarni. Stronger enforcement of security using AOP and Spring AOP. arXiv:1006.4550, 2010.Google ScholarGoogle Scholar
  36. O. Spinczyk, A. Gal, and W. SchrÃűder-Preikschat. AspectC++: An AspectOriented Extension to the C++ Programming Language. In CRPIT ’02, pages 53–60, 2002.Google ScholarGoogle Scholar
  37. G. Xu, Z. Yang, H. Huang, Q. Chen, L. Chen, and F. Xu. JAOUT: Automated generation of Aspect-oriented unit test. In APSEC, pages 374–381, Nov 2004.Google ScholarGoogle Scholar

Index Terms

  1. eAOP: an aspect oriented programming framework for Erlang

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          Erlang 2017: Proceedings of the 16th ACM SIGPLAN International Workshop on Erlang
          September 2017
          65 pages
          ISBN:9781450351799
          DOI:10.1145/3123569

          Copyright © 2017 ACM

          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 8 September 2017

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article

          Acceptance Rates

          Overall Acceptance Rate51of68submissions,75%

          Upcoming Conference

          ICFP '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader