{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,3]],"date-time":"2026-03-03T05:54:45Z","timestamp":1772517285159,"version":"3.50.1"},"reference-count":47,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2025,6,6]],"date-time":"2025-06-06T00:00:00Z","timestamp":1749168000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2025,6,6]],"date-time":"2025-06-06T00:00:00Z","timestamp":1749168000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"funder":[{"name":"Faculty of Technical Sciences, University of Novi Sad","award":["01-50\/295"],"award-info":[{"award-number":["01-50\/295"]}]},{"name":"Ministry of Science, Technological Development and Innovation, Serbia","award":["451-03-137\/2025-03\/200156"],"award-info":[{"award-number":["451-03-137\/2025-03\/200156"]}]}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Softw Syst Model"],"published-print":{"date-parts":[[2026,2]]},"DOI":"10.1007\/s10270-025-01296-z","type":"journal-article","created":{"date-parts":[[2025,6,6]],"date-time":"2025-06-06T01:09:25Z","timestamp":1749172165000},"page":"81-108","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Automating the development of API-based generators using code idioms mining"],"prefix":"10.1007","volume":"25","author":[{"given":"Nenad","family":"Todorovi\u0107","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Aleksandar","family":"Luki\u0107","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Nikola","family":"Todorovi\u0107","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bojana","family":"Draga\u0161","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gordana","family":"Milosavljevi\u0107","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2025,6,6]]},"reference":[{"key":"1296_CR1","doi-asserted-by":"crossref","unstructured":"Stylos, J., Faulring, A., Yang, Z., Myers, B.A.: Improving api documentation using api usage information. In: 2009 IEEE Symposium on Visual Languages and Human-Centric Computing (VL\/HCC), pp. 119\u201326 (2009). IEEE","DOI":"10.1109\/VLHCC.2009.5295283"},{"key":"1296_CR2","doi-asserted-by":"crossref","unstructured":"Robillard, M.P.: What makes apis hard to learn? answers from developers. IEEE Software 26(6) (2009)","DOI":"10.1109\/MS.2009.193"},{"key":"1296_CR3","unstructured":"V\u00f6lter, M.: A catalog of patterns for program generation. In: EuroPLoP, pp. 285\u2013320 (2003)"},{"key":"1296_CR4","unstructured":"Square: JavaPoet. https:\/\/github.com\/square\/javapoet. [Accessed 6-Aug-2024]"},{"key":"1296_CR5","unstructured":"Foundation, .N.: Roslyn \u2014 The .NET Compiler Platform. https:\/\/dotnetfoundation.org\/projects\/project-detail\/dotnet-compiler-platform. [Accessed 6-Aug-2024]"},{"issue":"1","key":"1296_CR6","doi-asserted-by":"publisher","first-page":"5","DOI":"10.1007\/s10270-019-00773-6","volume":"19","author":"A Bucchiarone","year":"2020","unstructured":"Bucchiarone, A., Cabot, J., Paige, R.F., Pierantonio, A.: Grand challenges in model-driven engineering: an analysis of the state of the research. Software and Systems Modeling 19(1), 5\u201313 (2020)","journal-title":"Software and Systems Modeling"},{"key":"1296_CR7","doi-asserted-by":"crossref","unstructured":"Vogelsang, A., Amorim, T., Pudlitz, F., Gersing, P., Philipps, J.: Should i stay or should i go? on forces that drive and prevent mbse adoption in the embedded systems industry. In: International Conference on Product-Focused Software Process Improvement, pp. 182\u2013198 (2017). Springer","DOI":"10.1007\/978-3-319-69926-4_14"},{"key":"1296_CR8","doi-asserted-by":"crossref","unstructured":"Allamanis, M., Sutton, C.: Mining idioms from source code. In: Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 472\u2013483 (2014)","DOI":"10.1145\/2635868.2635901"},{"key":"1296_CR9","doi-asserted-by":"crossref","unstructured":"Sivaraman, A., Abreu, R., Scott, A., Akomolede, T., Chandra, S.: Mining idioms in the wild. In: Proceedings of the 44th International Conference on Software Engineering: Software Engineering in Practice, pp. 187\u2013196 (2022)","DOI":"10.1145\/3510457.3513046"},{"key":"1296_CR10","doi-asserted-by":"crossref","unstructured":"Clements, P., Northrop, L.: Software product lines. Addison-Wesley Boston (2002)","DOI":"10.1109\/MS.2002.1020285"},{"key":"1296_CR11","first-page":"3053","volume":"11","author":"T Cohn","year":"2010","unstructured":"Cohn, T., Blunsom, P., Goldwater, S.: Inducing tree-substitution grammars. The Journal of Machine Learning Research 11, 3053\u20133096 (2010)","journal-title":"The Journal of Machine Learning Research"},{"key":"1296_CR12","unstructured":"Liang, P., Jordan, M.I., Klein, D.: Type-based mcmc. In: Human Language Technologies: The 2010 Annual Conference of the North American Chapter of the Association for Computational Linguistics, pp. 573\u2013581 (2010)"},{"issue":"4","key":"1296_CR13","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3212695","volume":"51","author":"M Allamanis","year":"2018","unstructured":"Allamanis, M., Barr, E.T., Devanbu, P., Sutton, C.: A survey of machine learning for big code and naturalness. ACM Computing Surveys (CSUR) 51(4), 1\u201337 (2018)","journal-title":"ACM Computing Surveys (CSUR)"},{"key":"1296_CR14","unstructured":"Todorovi\u0107, N., Luki\u0107, A., Kolo\u0161njaji, M.: RoseLibML. https:\/\/github.com\/lukic-aleksandar\/RoseLibML. [Accessed 30-Jun-2024]"},{"key":"1296_CR15","unstructured":"Apache: BCEL. https:\/\/github.com\/apache\/commons-bcel. [Accessed 26-Feb-2024]"},{"key":"1296_CR16","unstructured":"Bruneton, E.: ASM. https:\/\/asm.ow2.io\/. [Accessed 26-Feb-2024]"},{"key":"1296_CR17","doi-asserted-by":"crossref","unstructured":"Staron, M.: Adopting model driven software development in industry\u2013a case study at two companies. In: International Conference on Model Driven Engineering Languages and Systems, pp. 57\u201372 (2006). Springer","DOI":"10.1007\/11880240_5"},{"key":"1296_CR18","doi-asserted-by":"publisher","first-page":"144","DOI":"10.1016\/j.scico.2013.03.017","volume":"89","author":"J Hutchinson","year":"2014","unstructured":"Hutchinson, J., Whittle, J., Rouncefield, M.: Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure. Science of Computer Programming 89, 144\u2013161 (2014)","journal-title":"Science of Computer Programming"},{"key":"1296_CR19","doi-asserted-by":"crossref","unstructured":"Draga\u0161, B., Todorovi\u0107, N., Raja\u010di\u0107, T., Milosavljevi\u0107, G.: Seamlessmdd: Framework for seamless integration of generated and hand-written code. In: International Conference on Web Engineering, pp. 163\u2013177 (2024). Springer","DOI":"10.1007\/978-3-031-62362-2_12"},{"key":"1296_CR20","doi-asserted-by":"crossref","unstructured":"Greifenberg, T., H\u00f6lldobler, K., Kolassa, C., Look, M., Nazari, P.M.S., M\u00fcller, K., Perez, A.N., Plotnikov, D., Reiss, D., Roth, A., et\u00a0al.: A comparison of mechanisms for integrating handwritten and generated code for object-oriented programming languages. In: 2015 3rd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 74\u201385 (2015). IEEE","DOI":"10.1007\/978-3-319-27869-8_7"},{"issue":"4","key":"1296_CR21","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3340545","volume":"28","author":"C Bernaschina","year":"2019","unstructured":"Bernaschina, C., Falzone, E., Fraternali, P., Gonzalez, S.L.H.: The virtual developer: Integrating code generation and manual development with conflict resolution. ACM Transactions on Software Engineering and Methodology (TOSEM) 28(4), 1\u201338 (2019)","journal-title":"ACM Transactions on Software Engineering and Methodology (TOSEM)"},{"key":"1296_CR22","doi-asserted-by":"publisher","first-page":"490","DOI":"10.1007\/978-3-031-50755-7_46","volume-title":"Disruptive Information Technologies for a Smart Society","author":"N Todorovi\u0107","year":"2024","unstructured":"Todorovi\u0107, N., Draga\u0161, B., Milosavljevi\u0107, G.: Supporting integrative code generation with traceability links and code fragment integrity checks. In: Trajanovic, M., Filipovic, N., Zdravkovic, M. (eds.) Disruptive Information Technologies for a Smart Society, pp. 490\u2013501. Springer, Cham (2024)"},{"key":"1296_CR23","doi-asserted-by":"crossref","unstructured":"Iyer, S., Cheung, A., Zettlemoyer, L.: Learning programmatic idioms for scalable semantic parsing. arXiv preprint arXiv:1904.09086 (2019)","DOI":"10.18653\/v1\/D19-1545"},{"key":"1296_CR24","doi-asserted-by":"crossref","unstructured":"Hasabnis, N., Gottschlich, J.: Controlflag: a self-supervised idiosyncratic pattern detection system for software control structures. In: Proceedings of the 5th ACM SIGPLAN International Symposium on Machine Programming, pp. 32\u201342 (2021)","DOI":"10.1145\/3460945.3464954"},{"key":"1296_CR25","doi-asserted-by":"crossref","unstructured":"Mens, K., Nijssen, S., Pham, H.-S.: The good, the bad, and the ugly: mining for patterns in student source code. In: Proceedings of the 3rd International Workshop on Education Through Advanced Software Engineering and Artificial Intelligence, pp. 1\u20138 (2021)","DOI":"10.1145\/3472673.3473958"},{"issue":"2","key":"1296_CR26","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/335191.335372","volume":"29","author":"J Han","year":"2000","unstructured":"Han, J., Pei, J., Yin, Y.: Mining frequent patterns without candidate generation. ACM sigmod record 29(2), 1\u201312 (2000)","journal-title":"ACM sigmod record"},{"key":"1296_CR27","doi-asserted-by":"crossref","unstructured":"Chi, Y., Yang, Y., Xia, Y., Muntz, R.R.: Cmtreeminer: Mining both closed and maximal frequent subtrees. In: Pacific-asia Conference on Knowledge Discovery and Data Mining, pp. 63\u201373 (2004). Springer","DOI":"10.1007\/978-3-540-24775-3_9"},{"key":"1296_CR28","doi-asserted-by":"crossref","unstructured":"Orlov, D.: Finding idioms in source code using subtree counting techniques. In: Leveraging Applications of Formal Methods, Verification and Validation: Engineering Principles: 9th International Symposium on Leveraging Applications of Formal Methods, ISoLA 2020, Rhodes, Greece, October 20\u201330, 2020, Proceedings, Part II 9, pp. 44\u201354 (2020). Springer","DOI":"10.1007\/978-3-030-61470-6_4"},{"key":"1296_CR29","doi-asserted-by":"crossref","unstructured":"Pham, H.S., Nijssen, S., Mens, K., Di\u00a0Nucci, D., Molderez, T., De\u00a0Roover, C., Fabry, J., Zaytsev, V.: Mining patterns in source code using tree mining algorithms. In: International Conference on Discovery Science, pp. 471\u2013480 (2019). Springer","DOI":"10.1007\/978-3-030-33778-0_35"},{"issue":"12","key":"1296_CR30","first-page":"2754","volume":"87","author":"T Asai","year":"2004","unstructured":"Asai, T., Abe, K., Kawasoe, S., Sakamoto, H., Arimura, H., Arikawa, S.: Efficient substructure discovery from large semi-structured data. IEICE TRANSACTIONS on Information and Systems 87(12), 2754\u20132763 (2004)","journal-title":"IEICE TRANSACTIONS on Information and Systems"},{"issue":"7","key":"1296_CR31","doi-asserted-by":"publisher","first-page":"651","DOI":"10.1109\/TSE.2018.2832048","volume":"44","author":"M Allamanis","year":"2018","unstructured":"Allamanis, M., Barr, E.T., Bird, C., Devanbu, P., Marron, M., Sutton, C.: Mining semantic loop idioms. IEEE Transactions on Software Engineering 44(7), 651\u2013668 (2018)","journal-title":"IEEE Transactions on Software Engineering"},{"key":"1296_CR32","doi-asserted-by":"crossref","unstructured":"Ch\u00e9nard, G., Khriss, I., Salah, A.: Towards the automatic discovery of platform transformation templates of legacy object-oriented systems. In: Proceedings of the 6th International Workshop on Models and Evolution, pp. 51\u201356 (2012)","DOI":"10.1145\/2523599.2523609"},{"key":"1296_CR33","unstructured":"Force, A.T.: Architecture-driven modernization roadmap. Technical report, Technical report, OMG, 2006. Draft (2006)"},{"key":"1296_CR34","doi-asserted-by":"crossref","unstructured":"Rost, W.: Mining of dsls and generator templates from reference applications. In: Proceedings of the 23rd ACM\/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings, pp. 1\u20137 (2020)","DOI":"10.1145\/3417990.3419492"},{"key":"1296_CR35","doi-asserted-by":"crossref","unstructured":"Lano, K., Xue, Q.: Code generation by example. In: MODELSWARD, pp. 84\u201392 (2022)","DOI":"10.5220\/0010973600003119"},{"issue":"2","key":"1296_CR36","doi-asserted-by":"publisher","first-page":"170","DOI":"10.1007\/s42979-022-01573-4","volume":"4","author":"K Lano","year":"2023","unstructured":"Lano, K., Xue, Q.: Code generation by example using symbolic machine learning. SN Computer Science 4(2), 170 (2023)","journal-title":"SN Computer Science"},{"key":"1296_CR37","first-page":"9","volume":"2020","author":"K Lano","year":"2020","unstructured":"Lano, K., Xue, Q., Kolahdouz-Rahimi, S.: Agile specification of code generators for model-driven engineering. Proceedings of ICSEA 2020, 9\u201315 (2020)","journal-title":"Proceedings of ICSEA"},{"issue":"1","key":"1296_CR38","doi-asserted-by":"publisher","first-page":"139","DOI":"10.1007\/s10270-021-00893-y","volume":"21","author":"L Burgue\u00f1o","year":"2022","unstructured":"Burgue\u00f1o, L., Cabot, J., Li, S., G\u00e9rard, S.: A generic lstm neural network architecture to infer heterogeneous model transformations. Software and Systems Modeling 21(1), 139\u2013156 (2022)","journal-title":"Software and Systems Modeling"},{"key":"1296_CR39","doi-asserted-by":"crossref","unstructured":"Combemale, B., Gray, J., Rumpe, B.: Large language models as an \u201coperating\u201d system for software and systems modeling. Software and Systems Modeling 22(5), 1391\u20131392 (2023)","DOI":"10.1007\/s10270-023-01126-0"},{"key":"1296_CR40","doi-asserted-by":"crossref","unstructured":"Acher, M., Martinez, J.: Generative ai for reengineering variants into software product lines: An experience report. In: Proceedings of the 27th ACM International Systems and Software Product Line Conference-Volume B, pp. 57\u201366 (2023)","DOI":"10.1145\/3579028.3609016"},{"key":"1296_CR41","unstructured":"OpenAI: GPT-4. https:\/\/openai.com\/gpt-4. [Accessed 26-Feb-2024]"},{"key":"1296_CR42","doi-asserted-by":"crossref","unstructured":"Cohn, T., Goldwater, S., Blunsom, P.: Inducing compact but accurate tree-substitution grammars. In: Proceedings of Human Language Technologies: The 2009 Annual Conference of the North American Chapter of the Association for Computational Linguistics, pp. 548\u2013556 (2009)","DOI":"10.3115\/1620754.1620834"},{"key":"1296_CR43","doi-asserted-by":"crossref","unstructured":"Gabel, M., Su, Z.: A study of the uniqueness of source code. In: Proceedings of the Eighteenth ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 147\u2013156 (2010)","DOI":"10.1145\/1882291.1882315"},{"key":"1296_CR44","doi-asserted-by":"publisher","first-page":"721","DOI":"10.1109\/TPAMI.1984.4767596","volume":"6","author":"S Geman","year":"1984","unstructured":"Geman, S., Geman, D.: Stochastic relaxation, gibbs distributions, and the bayesian restoration of images. IEEE Transactions on pattern analysis and machine intelligence 6, 721\u2013741 (1984)","journal-title":"IEEE Transactions on pattern analysis and machine intelligence"},{"key":"1296_CR45","doi-asserted-by":"crossref","unstructured":"Peng, X., Gildea, D.: Type-based mcmc for sampling tree fragments from forests. In: Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pp. 1735\u20131745 (2014)","DOI":"10.3115\/v1\/D14-1180"},{"key":"1296_CR46","unstructured":"Todorovic, N., Lukic, A., Zoranovic, B., Vaderna, R., Vukovic, \u017d., Stoja, S.: Roselib: A library for simplifying .net compiler platform usage. In: Konjovic, Z., Zdravkovic, M., Trajanovic, M. (Eds.) ICIST 2018 Proceedings Vol.1, Pp.216-221, 2018, pp. 216\u2013221 (2018)"},{"key":"1296_CR47","unstructured":"Todorovi\u0107, N.: Student projects. https:\/\/github.com\/nenadTod\/student-projects.git. [Accessed 10-Sep-2024] (2024)"}],"container-title":["Software and Systems Modeling"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-025-01296-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10270-025-01296-z","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10270-025-01296-z.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,3,3]],"date-time":"2026-03-03T05:00:42Z","timestamp":1772514042000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10270-025-01296-z"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,6]]},"references-count":47,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2026,2]]}},"alternative-id":["1296"],"URL":"https:\/\/doi.org\/10.1007\/s10270-025-01296-z","relation":{},"ISSN":["1619-1366","1619-1374"],"issn-type":[{"value":"1619-1366","type":"print"},{"value":"1619-1374","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,6]]},"assertion":[{"value":"17 March 2024","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"23 February 2025","order":2,"name":"revised","label":"Revised","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"30 April 2025","order":3,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"6 June 2025","order":4,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}