{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,5]],"date-time":"2026-07-05T04:23:39Z","timestamp":1783225419357,"version":"3.54.6"},"reference-count":50,"publisher":"Springer Science and Business Media LLC","issue":"1","license":[{"start":{"date-parts":[[2024,10,17]],"date-time":"2024-10-17T00:00:00Z","timestamp":1729123200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2024,10,17]],"date-time":"2024-10-17T00:00:00Z","timestamp":1729123200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100003725","name":"National Research Foundation of Korea","doi-asserted-by":"crossref","award":["2022R1A2C200366011"],"award-info":[{"award-number":["2022R1A2C200366011"]}],"id":[{"id":"10.13039\/501100003725","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100003725","name":"National Research Foundation of Korea","doi-asserted-by":"crossref","award":["2021R1A5A1021944"],"award-info":[{"award-number":["2021R1A5A1021944"]}],"id":[{"id":"10.13039\/501100003725","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100010418","name":"Institute for Information and Communications Technology Promotion","doi-asserted-by":"publisher","award":["2022-0-00460"],"award-info":[{"award-number":["2022-0-00460"]}],"id":[{"id":"10.13039\/501100010418","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100004358","name":"Samsung Electronics Co., Ltd","doi-asserted-by":"crossref","award":["G01210570"],"award-info":[{"award-number":["G01210570"]}],"id":[{"id":"10.13039\/100004358","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Korea Advanced Institute of Science and Technology"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2025,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Rust, a modern system programming language, introduces new types that prevent memory bugs and data races. This makes translating legacy system programs from C to Rust a promising approach to enhance their reliability. Since manual code translation is time-consuming, it is desirable to automate the translation. To yield satisfactory results, the translator should have the ability to perform <jats:italic>type migration<\/jats:italic>, i.e., removing C types and introducing Rust types in the code. In this work, we aim to automatically port an entire C program to Rust by translating each C function to a Rust function with a signature containing proper Rust types through type migration. This goal is challenging because (1) type migration cannot be achieved through syntactic mappings between type names, and (2) after type migration, function bodies should be correctly restructured based on the precise understanding of the functions\u2019 behavior. To address these difficulties, we leverage large language models (LLMs), which possess knowledge of program semantics and programming idioms. However, na\u00efvely instructing LLMs to translate each function produces unsatisfactory Rust code, containing unmigrated or improperly migrated types and a huge number of type errors. To resolve these issues, we propose three techniques: (1) generating candidate signatures, (2) providing translated callees\u2019 signatures to LLMs, and (3) iteratively fixing type errors using compiler feedback. Our evaluation shows that the proposed approach yields a 63.5% increase in migrated types and a 71.5% decrease in type errors compared to the baseline (the na\u00efve LLM-based translation) with modest performance overhead.<\/jats:p>","DOI":"10.1007\/s10664-024-10573-2","type":"journal-article","created":{"date-parts":[[2024,10,17]],"date-time":"2024-10-17T14:02:54Z","timestamp":1729173774000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":25,"title":["Type-migrating C-to-Rust translation using a large language model"],"prefix":"10.1007","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-4067-7369","authenticated-orcid":false,"given":"Jaemin","family":"Hong","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0019-9772","authenticated-orcid":false,"given":"Sukyoung","family":"Ryu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2024,10,17]]},"reference":[{"key":"10573_CR1","doi-asserted-by":"publisher","unstructured":"Ahmed T, Devanbu P (2023) Few-shot training llms for project-specific code-summarization. In: Proceedings of the 37th IEEE\/ACM international conference on automated software engineering. Association for Computing Machinery, New York, NY, USA, ASE \u201922. https:\/\/doi.org\/10.1145\/3551349.3559555","DOI":"10.1145\/3551349.3559555"},{"key":"10573_CR2","doi-asserted-by":"publisher","unstructured":"Chen H, Mao Y, Wang X, Zhou D, Zeldovich N, Kaashoek MF (2011) Linux kernel vulnerabilities: State-of-the-art defenses and open problems. In: Proceedings of the second asia-pacific workshop on systems. Association for Computing Machinery, New York, NY, USA, APSys \u201911. https:\/\/doi.org\/10.1145\/2103799.2103805","DOI":"10.1145\/2103799.2103805"},{"key":"10573_CR3","unstructured":"Chen M, Tworek J, Jun H, Yuan Q, de\u00a0Oliveira\u00a0Pinto HP, Kaplan J, Edwards H, Burda Y, Joseph N, Brockman G, Ray A, Puri R, Krueger G, Petrov M, Khlaaf H, Sastry G, Mishkin P, Chan B, Gray S, Ryder N, Pavlov M, Power A, Kaiser L, Bavarian M, Winter C, Tillet P, Such FP, Cummings D, Plappert M, Chantzis F, Barnes E, Herbert-Voss A, Guss WH, Nichol A, Paino A, Tezak N, Tang J, Babuschkin I, Balaji S, Jain S, Saunders W, Hesse C, Carr AN, Leike J, Achiam J, Misra V, Morikawa E, Radford A, Knight M, Brundage M, Murati M, Mayer K, Welinder P, McGrew B, Amodei D, McCandlish S, Sutskever I, Zaremba W (2021a) Evaluating large language models trained on code. arXiv:2107.03374"},{"key":"10573_CR4","unstructured":"Chen M, Tworek J, Jun H, Yuan Q, de\u00a0Oliveira\u00a0Pinto HP, Kaplan J, Edwards H, Burda Y, Joseph N, Brockman G, Ray A, Puri R, Krueger G, Petrov M, Khlaaf H, Sastry G, Mishkin P, Chan B, Gray S, Ryder N, Pavlov M, Power A, Kaiser L, Bavarian M, Winter C, Tillet P, Such FP, Cummings D, Plappert M, Chantzis F, Barnes E, Herbert-Voss A, Guss WH, Nichol A, Paino A, Tezak N, Tang J, Babuschkin I, Balaji S, Jain S, Saunders W, Hesse C, Carr AN, Leike J, Achiam J, Misra V, Morikawa E, Radford A, Knight M, Brundage M, Murati M, Mayer K, Welinder P, McGrew B, Amodei D, McCandlish S, Sutskever I, Zaremba W (2021b) Evaluating large language models trained on code. arXiv:2107.03374"},{"key":"10573_CR5","unstructured":"Chen X, Liu C, Song D (2018) Tree-to-tree neural networks for program translation. In: Bengio S, Wallach H, Larochelle H, Grauman K, Cesa-Bianchi N, Garnett R (eds) Advances in neural information processing systems. Curran Associates, Inc., vol\u00a031. https:\/\/proceedings.neurips.cc\/paper_files\/paper\/2018\/file\/d759175de8ea5b1d9a2660e45554894f-Paper.pdf"},{"key":"10573_CR6","unstructured":"Danial A (2023) cloc. https:\/\/github.com\/AlDanial\/cloc"},{"key":"10573_CR7","unstructured":"De\u00a0Simone S (2022) Linux 6.1 officially adds support for Rust in the kernel. https:\/\/www.infoq.com\/news\/2022\/12\/linux-6-1-rust\/"},{"key":"10573_CR8","doi-asserted-by":"crossref","unstructured":"Dong Y, Jiang X, Jin Z, Li G (2024) Self-collaboration code generation via chatgpt. arXiv:2304.07590","DOI":"10.1145\/3672459"},{"key":"10573_CR9","doi-asserted-by":"publisher","unstructured":"Emre M, Schroeder R, Dewey K, Hardekopf B (2021) Translating C to safer Rust. Proc ACM Program Lang 5(OOPSLA). https:\/\/doi.org\/10.1145\/3485498","DOI":"10.1145\/3485498"},{"key":"10573_CR10","doi-asserted-by":"publisher","unstructured":"Emre M, Boyland P, Parekh A, Schroeder R, Dewey K, Hardekopf B (2023) Aliasing limits on translating C to safe Rust. Proc ACM Program Lang 7(OOPSLA1). https:\/\/doi.org\/10.1145\/3586046","DOI":"10.1145\/3586046"},{"key":"10573_CR11","doi-asserted-by":"publisher","unstructured":"Fan Z, Gao X, Mirchev M, Roychoudhury A, Tan SH (2023) Automated repair of programs from large language models. In: 2023 IEEE\/ACM 45th International Conference on Software Engineering (ICSE), pp 1469\u20131481. https:\/\/doi.org\/10.1109\/ICSE48619.2023.00128","DOI":"10.1109\/ICSE48619.2023.00128"},{"key":"10573_CR12","doi-asserted-by":"crossref","unstructured":"Feng Z, Guo D, Tang D, Duan N, Feng X, Gong M, Shou L, Qin B, Liu T, Jiang D, Zhou M (2020) CodeBERT: A pre-trained model for programming and natural languages. arXiv:2002.08155","DOI":"10.18653\/v1\/2020.findings-emnlp.139"},{"key":"10573_CR13","unstructured":"GNU (2023) GNU package blurbs. https:\/\/www.gnu.org\/manual\/blurbs.html"},{"key":"10573_CR14","unstructured":"Goregaokar M (2017) Fearless concurrency in Firefox Quantum. https:\/\/blog.rust-lang.org\/2017\/11\/14\/Fearless-Concurrency-In-Firefox-Quantum.html"},{"key":"10573_CR15","unstructured":"Guo D, Ren S, Lu S, Feng Z, Tang D, Liu S, Zhou L, Duan N, Svyatkovskiy A, Fu S, Tufano M, Deng SK, Clement C, Drain D, Sundaresan N, Yin J, Jiang D, Zhou M (2021) GraphCodeBERT: Pre-training code representations with data flow. arXiv:2009.08366"},{"key":"10573_CR16","doi-asserted-by":"publisher","unstructured":"Hong J, Ryu S (2023) Concrat: An automatic C-to-Rust lock API translator for concurrent programs. In: Proceedings of the 45th International Conference on Software Engineering, IEEE Press, ICSE \u201923, p 716-728. https:\/\/doi.org\/10.1109\/ICSE48619.2023.00069,","DOI":"10.1109\/ICSE48619.2023.00069"},{"key":"10573_CR17","unstructured":"Hutt T (2021) Would Rust secure cURL? https:\/\/blog.timhutt.co.uk\/curl-vulnerabilities-rust\/"},{"key":"10573_CR18","doi-asserted-by":"publisher","unstructured":"Jung R, Jourdan JH, Krebbers R, Dreyer D (2017) RustBelt: Securing the foundations of the Rust programming language. Proc ACM Program Lang 2(POPL).https:\/\/doi.org\/10.1145\/3158154","DOI":"10.1145\/3158154"},{"key":"10573_CR19","doi-asserted-by":"publisher","unstructured":"Karaivanov S, Raychev V, Vechev M (2014) Phrase-based statistical translation of programming languages. In: Proceedings of the 2014 ACM international symposium on new ideas, new paradigms, and reflections on programming & software. Association for Computing Machinery, New York, NY, USA, Onward! 2014, pp 173-184. https:\/\/doi.org\/10.1145\/2661136.2661148","DOI":"10.1145\/2661136.2661148"},{"key":"10573_CR20","unstructured":"Kojima T, Gu SS, Reid M, Matsuo Y, Iwasawa Y (2022) Large language models are zero-shot reasoners. In: Koyejo S, Mohamed S, Agarwal A, Belgrave D, Cho K, Oh A (eds) Advances in neural information processing systems. Curran Associates, Inc., vol\u00a035, pp 22199\u201322213"},{"key":"10573_CR21","unstructured":"Lachaux MA, Roziere B, Szafraniec M, Lample G (2021) DOBF: A deobfuscation pre-training objective for programming languages. In: Ranzato M, Beygelzimer A, Dauphin Y, Liang P, Vaughan JW (eds) Advances in neural information processing systems. Curran Associates, Inc., vol\u00a034, pp 14967\u201314979. https:\/\/proceedings.neurips.cc\/paper_files\/paper\/2021\/file\/7d6548bdc0082aacc950ed35e91fcccb-Paper.pdf"},{"key":"10573_CR22","doi-asserted-by":"crossref","unstructured":"Li J, Li G, Li Y, Jin Z (2023a) Structured chain-of-thought prompting for code generation. arXiv:2305.06599","DOI":"10.1145\/3690635"},{"key":"10573_CR23","unstructured":"Li J, Zhao Y, Li Y, Li G, Jin Z (2023b) Acecoder: Utilizing existing code to enhance code generation. arXiv:2303.17780"},{"key":"10573_CR24","doi-asserted-by":"publisher","unstructured":"Liu F, Li J, Zhang L (2023) Syntax and domain aware model for unsupervised program translation. In: 2023 IEEE\/ACM 45th International Conference on Software Engineering (ICSE), pp 755\u2013767. https:\/\/doi.org\/10.1109\/ICSE48619.2023.00072","DOI":"10.1109\/ICSE48619.2023.00072"},{"key":"10573_CR25","doi-asserted-by":"publisher","unstructured":"Matsakis ND, Klock FS (2014) The Rust language. In: Proceedings of the 2014 ACM SIGAda annual conference on high integrity language technology. Association for Computing Machinery, New York, NY, USA, HILT \u201914, p 103-104. https:\/\/doi.org\/10.1145\/2663171.2663188","DOI":"10.1145\/2663171.2663188"},{"key":"10573_CR26","unstructured":"Mialon G, Dess\u00ec R, Lomeli M, Nalmpantis C, Pasunuru R, Raileanu R, Roziere B, Schick T, Dwivedi-Yu J, Celikyilmaz A, Grave E, LeCun Y, Scialom T (2023) Augmented language models: a survey. arXiv:2302.07842"},{"key":"10573_CR27","doi-asserted-by":"publisher","unstructured":"Nguyen AT, Nguyen TT, Nguyen TN (2013) Lexical statistical machine translation for language migration. In: Proceedings of the 2013 9th Joint meeting on foundations of software engineering. Association for Computing Machinery, New York, NY, USA, ESEC\/FSE 2013, pp 651-654. https:\/\/doi.org\/10.1145\/2491411.2494584","DOI":"10.1145\/2491411.2494584"},{"key":"10573_CR28","doi-asserted-by":"publisher","unstructured":"Nguyen AT, Nguyen HA, Nguyen TT, Nguyen TN (2014) Statistical learning approach for mining API usage mappings for code migration. In: Proceedings of the 29th ACM\/IEEE international conference on automated software engineering. Association for Computing Machinery, New York, NY, USA, ASE \u201914, p 457-468. https:\/\/doi.org\/10.1145\/2642937.2643010","DOI":"10.1145\/2642937.2643010"},{"key":"10573_CR29","doi-asserted-by":"publisher","unstructured":"Nguyen AT, Nguyen TT, Nguyen TN (2015) Divide-and-conquer approach for multi-phase statistical migration for source code. In: Proceedings of the 30th IEEE\/ACM international conference on automated software engineering. IEEE Press, ASE \u201915, pp 585-596. https:\/\/doi.org\/10.1109\/ASE.2015.74","DOI":"10.1109\/ASE.2015.74"},{"key":"10573_CR30","unstructured":"OpenAI (2022) Introducing ChatGPT. https:\/\/openai.com\/blog\/chatgpt"},{"key":"10573_CR31","unstructured":"OpenAI (2023) OpenAI documentation: Models. https:\/\/platform.openai.com\/docs\/models"},{"key":"10573_CR32","unstructured":"OpenAI (2024) GPT-4o mini: advancing cost-efficient intelligence. https:\/\/openai.com\/index\/gpt-4o-mini-advancing-cost-efficient-intelligence\/"},{"key":"10573_CR33","unstructured":"Ouyang L, Wu J, Jiang X, Almeida D, Wainwright C, Mishkin P, Zhang C, Agarwal S, Slama K, Ray A, Schulman J, Hilton J, Kelton F, Miller L, Simens M, Askell A, Welinder P, Christiano PF, Leike J, Lowe R (2022) Training language models to follow instructions with human feedback. In: Koyejo S, Mohamed S, Agarwal A, Belgrave D, Cho K, Oh A (eds) Advances in neural information processing systems. Curran Associates, Inc., vol\u00a035, pp 27730\u201327744"},{"key":"10573_CR34","doi-asserted-by":"publisher","unstructured":"Pan R, Ibrahimzada AR, Krishna R, Sankar D, Wassi LP, Merler M, Sobolev B, Pavuluri R, Sinha S, Jabbarvand R (2024) Lost in translation: A study of bugs introduced by large language models while translating code. In: Proceedings of the IEEE\/ACM 46th international conference on software engineering. Association for Computing Machinery, New York, NY, USA, ICSE \u201924. https:\/\/doi.org\/10.1145\/3597503.3639226","DOI":"10.1145\/3597503.3639226"},{"key":"10573_CR35","unstructured":"Ren S, Guo D, Lu S, Zhou L, Liu S, Tang D, Sundaresan N, Zhou M, Blanco A, Ma S (2020) CodeBLEU: a method for automatic evaluation of code synthesis. 2009.10297"},{"key":"10573_CR36","unstructured":"Roziere B, Lachaux MA, Chanussot L, Lample G (2020) Unsupervised translation of programming languages. In: Larochelle H, Ranzato M, Hadsell R, Balcan M, Lin H (eds) Advances in neural information processing systems. Curran Associates, Inc., vol\u00a033, pp 20601\u201320611. https:\/\/proceedings.neurips.cc\/paper_files\/paper\/2020\/file\/ed23fbf18c2cd35f8c7f8de44f85c08d-Paper.pdf"},{"key":"10573_CR37","unstructured":"Roziere B, Zhang J, Charton F, Harman M, Synnaeve G, Lample G (2022) Leveraging automated unit tests for unsupervised code translation. In: The Tenth international conference on learning representations, ICLR 2022, Virtual Event, April 25-29, 2022, OpenReview.net. https:\/\/openreview.net\/forum?id=cmt-6KtR4c4"},{"key":"10573_CR38","unstructured":"Rust (2022) The Rust programming language. http:\/\/rust-lang.org\/"},{"key":"10573_CR39","unstructured":"Rust (2023a) Crate libc. https:\/\/docs.rs\/libc"},{"key":"10573_CR40","unstructured":"Rust (2023b) The Rust standard library: List of all items. https:\/\/doc.rust-lang.org\/std\/all.html"},{"key":"10573_CR41","unstructured":"Rust (2023c) The Rust standard library: Module std::option. https:\/\/doc.rust-lang.org\/std\/option\/"},{"key":"10573_CR42","unstructured":"Rust (2023d) The Rust standard library: Primitive type never. https:\/\/doc.rust-lang.org\/std\/primitive.never.html"},{"key":"10573_CR43","unstructured":"Szafraniec M, Roziere B, Leather H, Charton F, Labatut P, Synnaeve G (2023) Code translation with compiler representations. arXiv:2207.03578"},{"key":"10573_CR44","doi-asserted-by":"crossref","unstructured":"Wang Y, Wang W, Joty S, Hoi SCH (2021) CodeT5: Identifier-aware unified pre-trained encoder-decoder models for code understanding and generation. arXiv:2109.00859","DOI":"10.18653\/v1\/2021.emnlp-main.685"},{"key":"10573_CR45","unstructured":"Wingerter F (2022) C2Rust is back. https:\/\/immunant.com\/blog\/2022\/06\/back\/"},{"key":"10573_CR46","doi-asserted-by":"publisher","unstructured":"Xia CS, Wei Y, Zhang L (2023) Automated program repair in the era of large pre-trained language models. In: 2023 IEEE\/ACM 45th international conference on software engineering (ICSE), pp 1482\u20131494. https:\/\/doi.org\/10.1109\/ICSE48619.2023.00129","DOI":"10.1109\/ICSE48619.2023.00129"},{"key":"10573_CR47","doi-asserted-by":"publisher","unstructured":"Yang Z, Keung JW, Sun Z, Zhao Y, Li G, Jin Z, Liu S, Li Y (2024) Improving domain-specific neural code generation with few-shot meta-learning. Inf Softw Technol 166:107365. https:\/\/doi.org\/10.1016\/j.infsof.2023.107365. https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0950584923002203","DOI":"10.1016\/j.infsof.2023.107365"},{"key":"10573_CR48","doi-asserted-by":"publisher","unstructured":"Yang Z, Liu F, Yu Z, Keung JW, Li J, Liu S, Hong Y, Ma X, Jin Z, Li G (2024b) Exploring and unleashing the power of large language models in automated code translation. Proc ACM Softw Eng 1(FSE). https:\/\/doi.org\/10.1145\/3660778","DOI":"10.1145\/3660778"},{"key":"10573_CR49","doi-asserted-by":"publisher","first-page":"459","DOI":"10.1007\/978-3-031-37709-9_22","volume-title":"Computer Aided Verification","author":"H Zhang","year":"2023","unstructured":"Zhang H, David C, Yu Y, Wang M (2023) Ownership guided c to rust translation. In: Enea C, Lal A (eds) Computer Aided Verification. Springer Nature Switzerland, Cham, pp 459\u2013482"},{"key":"10573_CR50","doi-asserted-by":"publisher","unstructured":"Zhong H, Thummalapenta S, Xie T, Zhang L, Wang Q (2010) Mining API mapping for language migration. In: Proceedings of the 32nd ACM\/IEEE international conference on software engineering - Volume 1, Association for Computing Machinery, New York, NY, USA, ICSE \u201910, p 195-204. https:\/\/doi.org\/10.1145\/1806799.1806831","DOI":"10.1145\/1806799.1806831"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-024-10573-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-024-10573-2\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-024-10573-2.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,7]],"date-time":"2025-01-07T14:08:26Z","timestamp":1736258906000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-024-10573-2"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2024,10,17]]},"references-count":50,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2025,1]]}},"alternative-id":["10573"],"URL":"https:\/\/doi.org\/10.1007\/s10664-024-10573-2","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2024,10,17]]},"assertion":[{"value":"10 October 2024","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"17 October 2024","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}},{"order":1,"name":"Ethics","group":{"name":"EthicsHeading","label":"Declarations"}},{"value":"The authors declare that they have no conflict of interest.","order":2,"name":"Ethics","group":{"name":"EthicsHeading","label":"Conflict of interest"}}],"article-number":"3"}}