Skip to main content

Automated Multi-Language Artifact Binding and Rename Refactoring between Java and DSLs Used by Java Frameworks

  • Conference paper
ECOOP 2014 – Object-Oriented Programming (ECOOP 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8586))

Included in the following conference series:

Abstract

Developing non-trivial software applications involves using multiple programming languages. Although each language is used to describe a particular aspect of the system, artifacts defined inside those languages reference each other across language boundaries; such references are often only resolved at runtime. However, it is important for developers to be aware of these references during development time for programming understanding, bug prevention, and refactoring. In this work, we report on a) an approach and tool for automatically identifying multi-language relevant artifacts, finding references between artifacts in different languages, and (rename-) refactoring them, and b) on an experimental evaluation of the approach on seven open-source case studies which use a total of six languages found in three frameworks. As our main result, we provide insights into the incidence of multi-language bindings in the case studies as well as the feasibility of automated multi-language rename refactorings.

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. Chen, N., Johnson, R.: Toward Refactoring in a Polyglot World. In: Proceedings of the 2nd Workshop on Refactoring Tools, pp. 1–4. ACM (2008)

    Google Scholar 

  2. Christensen, A.S., Møller, A., Schwartzbach, M.I.: Precise Analysis of String Expressions. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 1–18. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  3. Fjeldberg, H.C.: Polyglot Programming. A Business Perspective. Master thesis, Norwegian University of Science and Technology (2008)

    Google Scholar 

  4. Fowler, M., Beck, K., Brant, J., Opdyke, W., Roberts, D.: Refactoring: Improving the Design of Existing Code. Pearson Education (2012)

    Google Scholar 

  5. Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional (2010)

    Google Scholar 

  6. Kempf, M., Kleeb, R., Klenk, M., Sommerlad, P.: Cross language refactoring for Eclipse plug-ins. In: Proceedings of the 2nd Workshop on Refactoring Tools, pp. 1:1–1:4. ACM (2008)

    Google Scholar 

  7. Klenk, M., Kleeb, R., Kempf, M., Sommerlad, P.: Refactoring support for the Groovy-Eclipse plug-in. In: Companion to the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications, pp. 727–728. ACM (2008)

    Google Scholar 

  8. Kontogiannis, K., Linos, P., Wong, K.: Comprehension and Maintenance of Large-Scale Multi-Language Software Applications. In: Proceedings of the 22nd IEEE International Conference on Software Maintenance, pp. 497–500. IEEE Computer Society (2006)

    Google Scholar 

  9. Linos, P.: PolyCare: A Tool for Re-engineering Multi-language Program Integrations. In: Proceeding of the 1st IEEE International Conference on Engineering of Complex Computer Systems, pp. 338–341. IEEE Computer Society Press (1995)

    Google Scholar 

  10. Livshits, B., Whaley, J., Lam, M.S.: Reflection Analysis for Java. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, pp. 139–160. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  11. Mayer, P., Schroeder, A.: Patterns of Cross-Language Linking in Java Frameworks. In: Proceedings of the 21st IEEE International Conference on Program Comprehension, pp. 113–122 (2013)

    Google Scholar 

  12. Mayer, P., Schroeder, A.: Towards Automated Cross-Language Refactorings between Java and DSLs used by Java Frameworks. In: Proceedings of the 6th ACM Workshop on Refactoring Tools, pp. 1–4 (2013)

    Google Scholar 

  13. Nguyen, H.V., Nguyen, H.A., Nguyen, T.T., Nguyen, T.N.: BabelRef: detection and renaming tool for cross-language program entities in dynamic web applications. In: Proceedings of the 34th International Conference on Software Engineering, pp. 1391–1394. IEEE Press (2012)

    Google Scholar 

  14. Pfeiffer, R.-H., Wąsowski, A.: Cross-Language Support Mechanisms Significantly Aid Software Development. In: France, R.B., Kazmeier, J., Breu, R., Atkinson, C. (eds.) MODELS 2012. LNCS, vol. 7590, pp. 168–184. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  15. Pfeiffer, R.-H., Wąsowski, A.: TexMo: A Multi-language Development Environment. In: Vallecillo, A., Tolvanen, J.-P., Kindler, E., Störrle, H., Kolovos, D. (eds.) ECMFA 2012. LNCS, vol. 7349, pp. 178–193. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  16. Schink, H., Kuhlemann, M., Saake, G., Lämmel, R.: Hurdles in Multi-language Refactoring of Hibernate Applications. In: Proceedings of the 6th International Conference on Software and Data Technologies, pp. 129–134. SciTePress (2011)

    Google Scholar 

  17. Sobernig, S., Zdun, U.: Evaluating java runtime reflection for implementing cross-language method invocations. In: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, pp. 139–147. ACM (2010)

    Google Scholar 

  18. Steimann, F., Thies, A.: From Public to Private to Absent: Refactoring Java Programs under Constrained Accessibility. In: Drossopoulou, S. (ed.) ECOOP 2009. LNCS, vol. 5653, pp. 419–443. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  19. Strein, D., Kratz, H., Lowe, W.: Cross-Language Program Analysis and Refactoring. In: Proceedings of the 6th IEEE International Workshop on Source Code Analysis and Manipulation, pp. 207–216. IEEE Computer Society (2006)

    Google Scholar 

  20. Strein, D., Lincke, R., Lundberg, J., Löwe, W.: An Extensible Meta-Model for Program Analysis. IEEE Transactions on Software Engineering 33(9), 592–607 (2007)

    Article  Google Scholar 

  21. Tatlock, Z., Tucker, C., Shuffelton, D., Jhala, R., Lerner, S.: Deep typechecking and refactoring. In: Proceedings of the 23rd ACM SIGPLAN Conference on Object-Oriented Programming Systems Languages and Applications, pp. 37–52. ACM (2008)

    Google Scholar 

  22. Vakilian, M., Chen, N., Negara, S., Rajkumar, B.A., Bailey, B.P., Johnson, R.E.: Use, disuse, and misuse of automated refactorings. In: Proceedings of the 34th International Conference on Software Engineering, pp. 233–243. IEEE Press (2012)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

1 Electronic Supplementary Material

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Mayer, P., Schroeder, A. (2014). Automated Multi-Language Artifact Binding and Rename Refactoring between Java and DSLs Used by Java Frameworks. In: Jones, R. (eds) ECOOP 2014 – Object-Oriented Programming. ECOOP 2014. Lecture Notes in Computer Science, vol 8586. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-44202-9_18

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-44202-9_18

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-44201-2

  • Online ISBN: 978-3-662-44202-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics