{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,21]],"date-time":"2025-03-21T16:40:02Z","timestamp":1742575202183,"version":"3.40.2"},"publisher-location":"Berlin, Heidelberg","reference-count":43,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783662708095","type":"print"},{"value":"9783662708101","type":"electronic"}],"license":[{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,1,1]],"date-time":"2025-01-01T00:00:00Z","timestamp":1735689600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2025]]},"DOI":"10.1007\/978-3-662-70810-1_3","type":"book-chapter","created":{"date-parts":[[2025,3,21]],"date-time":"2025-03-21T16:05:19Z","timestamp":1742573119000},"page":"118-161","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Anti-patterns and\u00a0Code Smells for\u00a0Multi-language Systems"],"prefix":"10.1007","author":[{"given":"Mouna","family":"Abidi","sequence":"first","affiliation":[]},{"given":"Manel","family":"Grichi","sequence":"additional","affiliation":[]},{"given":"Foutse","family":"Khomh","sequence":"additional","affiliation":[]},{"given":"Yann-Ga\u00ebl","family":"Gu\u00e9h\u00e9neuc","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2025,3,21]]},"reference":[{"issue":"3","key":"3_CR1","doi-asserted-by":"publisher","first-page":"12","DOI":"10.1145\/1498926.1498930","volume":"31","author":"J Matthews","year":"2009","unstructured":"Matthews, J., Findler, R.B.: Operational semantics for multi-language programs. ACM Trans. Program. Lang. Syst. (TOPLAS) 31(3), 12 (2009)","journal-title":"ACM Trans. Program. Lang. Syst. (TOPLAS)"},{"key":"3_CR2","doi-asserted-by":"crossref","unstructured":"Kochhar, P.S., Wijedasa, D., Lo, D.: A large scale study of multiple programming languages and code quality. In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol.\u00a01, pp. 563\u2013573. IEEE (2016)","DOI":"10.1109\/SANER.2016.112"},{"key":"3_CR3","unstructured":"Tan, G., Croft, J.: An empirical security study of the native code in the JDK. In: Proceedings of the 17th Conference on Security Symposium, ser. SS 2008, pp. 365\u2013377. USENIX Association, Berkeley (2008)"},{"key":"3_CR4","doi-asserted-by":"crossref","unstructured":"Tomassetti, F., Torchiano, M.: An empirical assessment of polyglot-ism in github. In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, ser. EASE 2014, pp. 17:1\u201317:4. ACM, New York (2014)","DOI":"10.1145\/2601248.2601269"},{"key":"3_CR5","doi-asserted-by":"crossref","unstructured":"Pfeiffer, R.-H., Wkasowski, A.: Texmo: a multi-language development environment. In: Proceedings of the 8th European Conference on Modelling Foundations and Applications, ser. ECMFA 2012, pp. 178\u2013193. Springer, Heidelberg (2012)","DOI":"10.1007\/978-3-642-31491-9_15"},{"key":"3_CR6","doi-asserted-by":"crossref","unstructured":"Mushtaq, Z., Rasool, G.: Multilingual source code analysis: state of the art and challenges. In: 2015 International Conference on Open Source Systems Technologies (ICOSST), pp. 170\u2013175 (2015)","DOI":"10.1109\/ICOSST.2015.7396422"},{"key":"3_CR7","doi-asserted-by":"crossref","unstructured":"Boughanmi, F.: Multi-language and heterogeneously-licensed software analysis. In: 17th Working Conference on Reverse Engineering (2010)","DOI":"10.1109\/WCRE.2010.43"},{"key":"3_CR8","unstructured":"Galin, D.: Software Quality Assurance: From Theory to Implementation. Pearson Education India (2004)"},{"key":"3_CR9","doi-asserted-by":"crossref","unstructured":"Shihab, E.: Practical software quality prediction. In: 2014 IEEE International Conference on Software Maintenance and Evolution (ICSME), pp. 639\u2013644. IEEE (2014)","DOI":"10.1109\/ICSME.2014.114"},{"key":"3_CR10","unstructured":"Vlissides, J., Helm, R., Johnson, R., Gamma, E.: Design patterns: elements of reusable object-oriented software, vol.\u00a049, no. 120, p.\u00a011. Addison-Wesley, Reading (1995)"},{"key":"3_CR11","doi-asserted-by":"crossref","unstructured":"Gu\u00e9h\u00e9neuc, Y.-G., Albin-Amiot, H.: Using design patterns and constraints to automate the detection and correction of inter-class design defects. In: 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems, 2001. TOOLS 39, pp. 296\u2013305. IEEE (2001)","DOI":"10.1109\/TOOLS.2001.941682"},{"issue":"3","key":"3_CR12","doi-asserted-by":"publisher","first-page":"545","DOI":"10.1007\/s10115-013-0721-z","volume":"42","author":"G Czibula","year":"2015","unstructured":"Czibula, G., Marian, Z., Czibula, I.G.: Detecting software design defects using relational association rule mining. Knowl. Inf. Syst. 42(3), 545\u2013577 (2015)","journal-title":"Knowl. Inf. Syst."},{"key":"3_CR13","doi-asserted-by":"crossref","unstructured":"Khomh, F., Di\u00a0Penta, M., Gueheneuc, Y.-G.: An exploratory study of the impact of code smells on software change-proneness. In: 16th Working Conference on Reverse Engineering, 2009. WCRE 2009, pp. 75\u201384. IEEE (2009)","DOI":"10.1109\/WCRE.2009.28"},{"key":"3_CR14","unstructured":"van Emden, E., Moonen, L.: Java quality assurance by detecting code smells. In: Ninth Working Conference on Reverse Engineering, 2002. Proceedings, pp. 97\u2013106 (2002)"},{"key":"3_CR15","doi-asserted-by":"crossref","unstructured":"Khomh, F., Di Penta, M., Gueheneuc, Y.: An exploratory study of the impact of code smells on software change-proneness. In: 2009 16th Working Conference on Reverse Engineering, pp. 75\u201384 (2009)","DOI":"10.1109\/WCRE.2009.28"},{"key":"3_CR16","doi-asserted-by":"crossref","unstructured":"Abbes, M., Khomh, F., Gueheneuc, Y., Antoniol, G.: An empirical study of the impact of two antipatterns, blob and spaghetti code, on program comprehension. In: 2011 15th European Conference on Software Maintenance and Reengineering, pp. 181\u2013190 (2011)","DOI":"10.1109\/CSMR.2011.24"},{"key":"3_CR17","unstructured":"Liang, S.: Java Native Interface: Programmer\u2019s Guide and Reference. Addison-Wesley Longman Publishing Co., Inc. (1999)"},{"issue":"1","key":"3_CR18","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1002\/smr.243","volume":"14","author":"M Goedicke","year":"2002","unstructured":"Goedicke, M., Zdun, U.: Piecemeal legacy migrating with an architectural pattern language: a case study. J. Softw. Maint. Evol. Res. Pract. 14(1), 1\u201330 (2002)","journal-title":"J. Softw. Maint. Evol. Res. Pract."},{"key":"3_CR19","doi-asserted-by":"crossref","unstructured":"Neitsch, A., Wong, K., Godfrey, M.W.: Build system issues in multilanguage software. In: 2012 28th IEEE International Conference on Software Maintenance (ICSM), pp. 140\u2013149. IEEE (2012)","DOI":"10.1109\/ICSM.2012.6405265"},{"key":"3_CR20","first-page":"89","volume":"36","author":"A Malinova","year":"2008","unstructured":"Malinova, A.: Design approaches to wrapping native legacy codes. Sci. Works Plovdiv Univ. 36, 89\u2013100 (2008)","journal-title":"Sci. Works Plovdiv Univ."},{"key":"3_CR21","doi-asserted-by":"crossref","unstructured":"Neumann, G., Zdun, U.: Pattern-based design and implementation of an XML and RDF parser and interpreter: a case study. In: European Conference on Object-Oriented Programming, pp. 392\u2013414. Springer (2002)","DOI":"10.1007\/3-540-47993-7_17"},{"key":"3_CR22","doi-asserted-by":"crossref","unstructured":"Furr, M., Foster, J.S.: Checking type safety of foreign function calls. In: Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, ser. PLDI 2005, pp. 62\u201372. ACM (2005)","DOI":"10.1145\/1065010.1065019"},{"key":"3_CR23","unstructured":"Alexander, C., Ishikawa, S., Silverstein, M., i\u00a0Rami\u00f3, J.R., Jacobson, M., Fiksdahl-King, I.: A pattern language. Gustavo Gili (1977)"},{"key":"3_CR24","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E Gamma","year":"1995","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Longman Publishing Co., Inc., Boston (1995)"},{"key":"3_CR25","unstructured":"Martin, R.C.: Agile Software Development: Principles, Patterns, and Practices. Prentice Hall (2002)"},{"key":"3_CR26","unstructured":"Brown, W.H., Malveau, R.C., McCormick, H.W., Mowbray, T.J.: AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis. Wiley (1998)"},{"key":"3_CR27","unstructured":"Fowler, M., Beck, K.: Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional (1999)"},{"key":"3_CR28","unstructured":"Webster, B.F.: Pitfalls of object oriented development. Book (1995)"},{"key":"3_CR29","doi-asserted-by":"crossref","unstructured":"Soh, Z., Yamashita, A., Khomh, F., Gu\u00e9h\u00e9neuc, Y.-G.: Do code smells impact the effort of different maintenance programming activities? In: 2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER), vol.\u00a01, pp. 393\u2013402. IEEE (2016)","DOI":"10.1109\/SANER.2016.103"},{"key":"3_CR30","doi-asserted-by":"crossref","unstructured":"Yamashita, A., Moonen, L.: Do developers care about code smells? An exploratory survey. In: 2013 20th Working Conference on Reverse Engineering (WCRE), pp. 242\u2013251. IEEE (2013)","DOI":"10.1109\/WCRE.2013.6671299"},{"key":"3_CR31","doi-asserted-by":"crossref","unstructured":"Romano, D., Raila, P., Pinzger, M., Khomh, F.: Analyzing the impact of antipatterns on change-proneness using fine-grained source code changes. In: 2012 19th Working Conference on Reverse Engineering (WCRE), pp. 437\u2013446. IEEE (2012)","DOI":"10.1109\/WCRE.2012.53"},{"key":"3_CR32","unstructured":"Goedicke, M., Neumann, G., Zdun, U.: Object system layer. In: 5th European Conference on Pattern Languages of Programms (EuroPLoP 2000) (2000)"},{"key":"3_CR33","unstructured":"Goedicke, M., Neumann, G., Zdun, U.: Message redirector. In: 6th European Conference on Pattern Languages of Programms (EuroPLoP 2001) (2001)"},{"key":"3_CR34","doi-asserted-by":"crossref","unstructured":"Kondoh, G., Onodera, T.: Finding bugs in java native interface programs. In: Proceedings of the 2008 International Symposium on Software Testing and Analysis, ser. ISSTA 2008, pp. 109\u2013118. ACM, New York (2008)","DOI":"10.1145\/1390630.1390645"},{"key":"3_CR35","unstructured":"Osmani, A.: Learning JavaScript Design Patterns: A JavaScript and jQuery Developer\u2019s Guide. O\u2019Reilly Media, Inc. (2012)"},{"key":"3_CR36","doi-asserted-by":"crossref","unstructured":"Li, S., Tan, G.: Finding bugs in exceptional situations of JNI programs. In: Proceedings of the 16th ACM Conference on Computer and Communications Security, ser. CCS 2009, pp. 442\u2013452. ACM, New York (2009)","DOI":"10.1145\/1653662.1653716"},{"key":"3_CR37","doi-asserted-by":"crossref","unstructured":"Ayers, A., Schooler, R., Metcalf, C., Agarwal, A., Rhee, J., Witchel, E.: Traceback: first fault diagnosis by reconstruction of distributed control flow. In: ACM SIGPLAN Notices, vol.\u00a040, no.\u00a06, pp. 201\u2013212. ACM (2005)","DOI":"10.1145\/1064978.1065035"},{"key":"3_CR38","doi-asserted-by":"crossref","unstructured":"Mayer, P., Schroeder, A.: Cross-language code analysis and refactoring. In: 2012 IEEE 12th International Working Conference on Source Code Analysis and Manipulation, pp. 94\u2013103. IEEE (2012)","DOI":"10.1109\/SCAM.2012.11"},{"key":"3_CR39","unstructured":"Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects, vol.\u00a02. Wiley (2013)"},{"key":"3_CR40","doi-asserted-by":"crossref","unstructured":"Sneed, H.M.: Migrating from cobol to java. In: 2010 IEEE International Conference on Software Maintenance, pp. 1\u20137. IEEE (2010)","DOI":"10.1109\/ICSM.2010.5609583"},{"key":"3_CR41","unstructured":"Fowler, M.: Strangler application (2004). https:\/\/martinfowler.com\/bliki\/StranglerFigApplication.html"},{"key":"3_CR42","doi-asserted-by":"crossref","unstructured":"Abidi, M., Khomh, F., Gu\u00e9h\u00e9neuc, Y.-G.: Anti-patterns for multi-language systems. In: Proceedings of the 24th European Conference on Pattern Languages of Programs, pp. 1\u201314 (2019)","DOI":"10.1145\/3361149.3364227"},{"key":"3_CR43","doi-asserted-by":"crossref","unstructured":"Abidi, M., Grichi, M., Khomh, F., Gu\u00e9h\u00e9neuc, Y.-G.: Code smells for multi-language systems. In: Proceedings of the 24th European Conference on Pattern Languages of Programs, pp. 1\u201313 (2019)","DOI":"10.1145\/3361149.3361161"}],"container-title":["Lecture Notes in Computer Science","Transactions on Pattern Languages of Programming V"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-662-70810-1_3","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,21]],"date-time":"2025-03-21T16:05:46Z","timestamp":1742573146000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-662-70810-1_3"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025]]},"ISBN":["9783662708095","9783662708101"],"references-count":43,"URL":"https:\/\/doi.org\/10.1007\/978-3-662-70810-1_3","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025]]},"assertion":[{"value":"21 March 2025","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}