Skip to main content

Matching Code Patterns Across Programming Language

  • Conference paper
  • First Online:
The Recent Advances in Transdisciplinary Data Science (SDSC 2022)

Abstract

Microservice analysis has seen a surge of interest in recent years due to the challenges and rewards inherent in analyzing large distributed systems. Microservices are highly decentralized, providing many benefits, including improved performance, shorter development cycles, and enhanced scalability. However, these benefits come at the cost of hiding knowledge about system operation. Business logic, domain models, and other architectural aspects of microservices are fractured and hidden in the code of individual microservices. To address this challenge, we developed the Relative Static Structure Analyzer (ReSSA), a language-agnostic analysis tool driven by small parsers that extract information from code upon matching user-defined patterns. This paper presents our work in developing the underlying parsers that power ReSSA definitions for three common languages used in microservices, NodeJS, Go, and Python. We detail the process and challenges of parsing the languages into our intermediate format and describe the benchmark systems we will use as testbeds for our parsers.

This material is based upon work supported by the National Science Foundationunder Grant No. 1854049 and a grant from Red Hat Research.

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 64.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 84.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

Similar content being viewed by others

References

  1. Rajagopalan, S.: pymicro. https://github.com/rshriram/pymicro (2015)

  2. Raycad: raycad/go-microservices: Golangmicroservicesexample, https://github.com/raycad/go-microservices

  3. Tiwari, S.: Microservices in nodejs. https://github.com/ShankyTiwari/Microservicesin-Nodejs (2019)

  4. Walker, A., Laird, I., Cerny, T.: On automatic software architecture reconstruction of microservice applications. In: Kim, H., Kim, K.J., Park, S. (eds.) Information Science and Applications. LNEE, vol. 739, pp. 223–234. Springer, Singapore (2021). https://doi.org/10.1007/978-981-33-6385-4_21

    Chapter  Google Scholar 

  5. Schiewe, M., Curtis, J., Bushong, V., Cerny, T.: Advancing static code analysis with language-agnostic component identification. IEEE Access 10, 30743–30761 (2022).  https://doi.org/10.1109/ACCESS.2022.3160485

Download references

Acknowledgement

This material is based upon work supported by the National Science Foundation under Grant No. 1854049 and a grant from Red Hat Research.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Tomas Cerny .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Bushong, V., Coffey, M., Lehman, A., Jaroszewski, E., Cerny, T. (2022). Matching Code Patterns Across Programming Language. In: Han, H., Baker, E. (eds) The Recent Advances in Transdisciplinary Data Science. SDSC 2022. Communications in Computer and Information Science, vol 1725. Springer, Cham. https://doi.org/10.1007/978-3-031-23387-6_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-031-23387-6_13

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-031-23386-9

  • Online ISBN: 978-3-031-23387-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics