Evolving the Enterprise Software Systems Landscape: Towards Anti-Patterns in Smalltalk-to-Java Code Transformation
Marek Bělohoubek, Robert Pergl
DOI: http://dx.doi.org/10.15439/2024F3128
Citation: Proceedings of the 19th Conference on Computer Science and Intelligence Systems (FedCSIS), M. Bolanowski, M. Ganzha, L. Maciaszek, M. Paprzycki, D. Ślęzak (eds). ACSIS, Vol. 39, pages 567–572 (2024)
Abstract. In the rapidly evolving landscape of enterprise software systems, there is a marked escalation in the proliferation of new technologies, tools, languages, and methodologies daily. These innovations are pivotal not only for the development of new systems but also for the maintenance and augmentation of existing infrastructures. Consequently, it is imperative to devise systems that are responsive to these advancements, fostering the integration of novel tools and methodologies into the current systems. This integration often necessitates mechanisms for transforming source code across diverse programming languages. In the course of developing a transformation tool from Smalltalk to Java, we encountered several code patterns that significantly impede the transformation process. This paper aims to elucidate one such transformation anti-pattern. We provide a comprehensive overview, a formal delineation, illustrations derived from actual code, and propose refactoring strategies for both Smalltalk and Java environments.
References
- M. Hilbert and P. López, “The world’s technological capacity to store, communicate, and compute information,” science, vol. 332, no. 6025, pp. 60–65, 2011.
- R. Kurzweil, The Law of Accelerating Returns. Berlin, Heidelberg: Springer Berlin Heidelberg, 2004, pp. 381–416.
- O. Dvořák and R. Pergl, “Tackling rapid technology changes by applying enterprise engineering theories,” Science of Computer Programming, vol. 215, p. 102747, 2022.
- R. L. Engelbrecht et al., “Implementing a smalltalk to java translator,” Ph.D. dissertation, University of Pretoria, 2006.
- A. C. Kay, The Early History of Smalltalk. New York, NY, USA: Association for Computing Machinery, 1996, p. 511–598.
- “Custom Software Application Development Services - Cincom VisualWorks® | Cincom Smalltalk®,” 9 2023. [Online]. Available: https://www.cincomsmalltalk.com/main/products/visualworks/
- Squeak.org, “Squeak/Smalltalk.” [Online]. Available: https://squeak.org/
- “Pharo - Welcome to Pharo!” [Online]. Available: https://pharo.org/
- I. Cosmina, An Introduction to Java and Its History. Berkeley, CA: Apress, 2022, pp. 1–31.
- F. Yellin and T. Lindholm, “The java virtual machine specification,” 1996.
- J. Blizničenko and R. Pergl, “Generating UML Models with Inferred Types from Pharo Code,” in International Workshop on Smalltalk Technologies, Koln, Germany, Aug. 2019. [Online]. Available: https://hal.science/hal-04053497
- M. Naftalin and P. Wadler, Java Generics and Collections: Speed Up the Java Development Process. O’Reilly Media, 2006. [Online]. Available: https://books.google.cz/books?id=zaoK0Z2STlkC
- M. Bělohoubek and R. Pergl, “The state of smalltalk to java transformation: Approaches review,” in World Conference on Information Systems and Technologies. Springer, 2024, pp. 235–241.
- N. Sundaresan, “Translation of nested pascal routines to c,” ACM Sigplan Notices, vol. 25, no. 5, pp. 69–81, 1990.
- D. S. Higgins, “A structured fortran translator,” ACM SIGPLAN Notices, vol. 10, no. 2, pp. 42–48, 1975.
- E. Jin and Y. Sun, “An algorithm-adaptive source code converter to automate the translation from python to java,” JLPEA, 2020.
- L. Xia, B. Hua, and Z. Peng, “An empirical study of c to rust transpilers,” School of Software Engineering, University of Science and Technology of China, and Suzhou Institute for Advanced Research, University of Science and Technology of China-04/27, 2023.
- F. Bertolotti, W. Cazzola, and L. Favalli, “∗ piler: Compilers in search of compilations,” Journal of Systems and Software, vol. 212, p. 112006, 2024.
- F. Bertolotti, W. Cazzola, D. Ostuni, and C. Castoldi, “When the dragons defeat the knight: Basilisk an architectural pattern for platform and language independent development,” Journal of Systems and Software, vol. 215, p. 112088, 2024.
- V. Rajathi, M. Harishankar, J. S. DS et al., “Origin-the transcoder,” in 2022 1st International Conference on Computational Science and Technology (ICCST). IEEE, 2022, pp. 179–182.
- J. D. Weisz, M. Muller, S. I. Ross, F. Martinez, S. Houde, M. Agarwal, K. Talamadupula, and J. T. Richards, “Better together? an evaluation of ai-supported code translation,” in Proceedings of the 27th International Conference on Intelligent User Interfaces, 2022, pp. 369–391.