{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,1]],"date-time":"2026-04-01T18:40:53Z","timestamp":1775068853865,"version":"3.50.1"},"reference-count":30,"publisher":"Springer Science and Business Media LLC","issue":"5","license":[{"start":{"date-parts":[[2022,4,6]],"date-time":"2022-04-06T00:00:00Z","timestamp":1649203200000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2022,4,6]],"date-time":"2022-04-06T00:00:00Z","timestamp":1649203200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Complex Intell. Syst."],"published-print":{"date-parts":[[2022,10]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Deep learning models have become state of the art in many language modelling tasks. Among such tasks, source code auto-completion is one of the important areas of research. This paper presents various methodologies for source code auto-completion using different Deep Learning models for Python and CSharp Programming Languages. In a resource-limited environment, it is paramount to reduce various overheads: one way of achieving that is to use the code sequences to train and evaluate rather than using other code structures such as semantics. This paper compares various deep learning architectures like CodeGPT\u00a0[1] from Microsoft, Roberta\u00a0[2] from huggingface\u00a0[3] and GPT2\u00a0[4] for source code auto-completion. Different dataset strategies are employed for comparison, such as (1) treating the whole code file as a single line, (2) using each line as single individual inputs, and (3) tokenizing the codes snippets before feeding them into the models. We consider the task of autocompletion on two different datasets: (1) Python dataset; (2) CSharp dataset. The Python dataset is processed by a fine-tuned CodeGPT with an overall accuracy of 71%. For the CSharp dataset with the GPT2 model, a PPL of 2.14 and 4.082 on the training and evaluation dataset is observed. Considering the results, we discuss the strength and weaknesses of different approaches in their application in the real world programming context.<\/jats:p>","DOI":"10.1007\/s40747-022-00708-7","type":"journal-article","created":{"date-parts":[[2022,4,6]],"date-time":"2022-04-06T08:13:16Z","timestamp":1649232796000},"page":"4357-4368","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":4,"title":["Source code auto-completion using various deep learning models under limited computing resources"],"prefix":"10.1007","volume":"8","author":[{"given":"Madhab","family":"Sharma","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-9825-3828","authenticated-orcid":false,"given":"Tapas Kumar","family":"Mishra","sequence":"additional","affiliation":[]},{"given":"Arun","family":"Kumar","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2022,4,6]]},"reference":[{"key":"708_CR1","unstructured":"Lu S, Guo D, Ren S, Huang J, Svyatkovskiy A, Blanco A, Clement C, Drain D, Jiang D, Tang D, Li G, Zhou L, Shou L, Zhou L, Tufano M, Gong M, Zhou M, Duan N, Sundaresan N, Deng SK, Fu S, Liu S (2021) Codexglue: a machine learning benchmark dataset for code understanding and generation"},{"key":"708_CR2","unstructured":"Liu Y, Ott M, Goyal N, Du J, Joshi M, Chen D, Levy O, Lewis M, Zettlemoyer L, Stoyanov V (2019) Roberta: a robustly optimized BERT pretraining approach. arXiv:1907.11692"},{"key":"708_CR3","doi-asserted-by":"crossref","unstructured":"Wolf T, Debut L, Sanh V, Chaumond J, Delangue C, Moi A, Cistac P, Rault T, Louf R, Funtowicz M, Brew J (2019) Huggingface\u2019s transformers: State-of-the-art natural language processing. arXiv:1910.03771","DOI":"10.18653\/v1\/2020.emnlp-demos.6"},{"issue":"8","key":"708_CR4","first-page":"9","volume":"1","author":"A Radford","year":"2019","unstructured":"Radford A, Wu J, Child R, Luan D, Amodei D, Sutskever I (2019) Language models are unsupervised multitask learners. OpenAI blog 1(8):9","journal-title":"OpenAI blog"},{"key":"708_CR5","doi-asserted-by":"crossref","unstructured":"Li J, Wang Y, Lyu MR, King I (2018) Code completion with neural attention and pointer networks. In: Proceedings of the 27th International Joint Conference on Artificial Intelligence, pp. 4159\u201325","DOI":"10.24963\/ijcai.2018\/578"},{"key":"708_CR6","doi-asserted-by":"crossref","unstructured":"Alon U, Zilberstein M, Levy O, Yahav E (2019) Code2vec: Learning distributed representations of code. Proceedings of ACM Program. Lang., vol. 3, no. POPL","DOI":"10.1145\/3290353"},{"key":"708_CR7","doi-asserted-by":"crossref","unstructured":"Chirkova N, Troshin S (2020) Empirical study of transformers for source code. arXiv:2010.07987","DOI":"10.1145\/3468264.3468611"},{"key":"708_CR8","unstructured":"Vaswani A, Shazeer N, Parmar N, Uszkoreit J, Jones L, Gomez AN, Kaiser Lu, Polosukhin I (2017) Attention is all you need. In: Advances in Neural Information Processing Systems, I. Guyon, U. V. Luxburg, S. Bengio, H. Wallach, R. Fergus, S. Vishwanathan, and R. Garnett, Eds., vol. 30. Curran Associates, Inc., pp 5998\u20136008"},{"key":"708_CR9","unstructured":"Devlin J, Chang M, Lee K, Toutanova K (2018) BERT: pre-training of deep bidirectional transformers for language understanding. arXiv:1810.04805"},{"key":"708_CR10","unstructured":"Radford A, Narasimhan K, Salimans T, Sutskever I (2018) Improving language understanding by generative pre-training. OpenAI"},{"key":"708_CR11","unstructured":"Yang Z, Dai Z, Yang Y, Carbonell J, Salakhutdinov RR, Le QV (2019) Xlnet: Generalized autoregressive pretraining for language understanding. In: Advances in neural information processing systems, H. Wallach, H. Larochelle, A. Beygelzimer, F. d$$^{\\prime }$$ Alch\u00e9-Buc, E. Fox, and R. Garnett, Eds., vol. 32. Curran Associates, Inc., pp 5753\u20135763"},{"key":"708_CR12","doi-asserted-by":"crossref","unstructured":"Ruder S, Peters ME, Swayamdipta S, Wolf T (2019) Transfer learning in natural language processing. In: Proceedings of the 2019 conference of the North American chapter of the association for computational linguistics: tutorials, pp 15\u201318","DOI":"10.18653\/v1\/N19-5004"},{"key":"708_CR13","doi-asserted-by":"crossref","unstructured":"Howard J, Ruder S (Jul. 2018) Universal language model fine-tuning for text classification. In: Proceedings of the 56th annual meeting of the association for computational linguistics (volume 1: long papers). Melbourne, Australia: Association for Computational Linguistics, pp 328\u2013339","DOI":"10.18653\/v1\/P18-1031"},{"key":"708_CR14","doi-asserted-by":"crossref","unstructured":"B-P, Raychev V, Veselin M (2016) Probabilistic model for code with decision trees. ACM SIGPLAN Notice 51(10):731\u2013747","DOI":"10.1145\/3022671.2984041"},{"key":"708_CR15","unstructured":"Alon U, Brody S, Levy O, Yahav E (2019) code2seq: Generating sequences from structured representations of code. In: 7th International Conference on Learning Representations, ICLR 2019, New Orleans, LA, USA, May 6\u20139, 2019. OpenReview.net"},{"key":"708_CR16","unstructured":"Alon U, Sadaka R, Levy O, Yahav E (2019) Structural language models for any-code generation. arXiv:1910.00577"},{"key":"708_CR17","doi-asserted-by":"crossref","unstructured":"Ahmad W, Chakraborty S, Ray B, Chang K-W (Jul. 2020) A transformer-based approach for source code summarization. In: Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. Online: Association for Computational Linguistics, pp 4998\u20135007","DOI":"10.18653\/v1\/2020.acl-main.449"},{"key":"708_CR18","doi-asserted-by":"crossref","unstructured":"Papineni K, Roukos S, Ward T, Zhu W-J (2002) Bleu: a method for automatic evaluation of machine translation. In: Proceedings of the 40th annual meeting of the Association for Computational Linguistics, pp 311\u2013318","DOI":"10.3115\/1073083.1073135"},{"key":"708_CR19","doi-asserted-by":"crossref","unstructured":"Svyatkovskiy A, Zhao Y, Fu S, Sundaresan N (2019) Pythia: Ai-assisted code completion system. Proceedings of the 25th ACM SIGKDD international conference on knowledge discovery & data mining","DOI":"10.1145\/3292500.3330699"},{"key":"708_CR20","unstructured":"Sabia M, Wang C (2014) Python Tools for Visual Studio. Packt Publishing Ltd"},{"key":"708_CR21","doi-asserted-by":"crossref","unstructured":"Svyatkovskiy A, Deng SK, Fu S, Sundaresan N (2020) Intellicode compose: code generation using transformer. In: Proceedings of the 28th ACM Joint Meeting on European software engineering conference and symposium on the foundations of software engineering, pp 1433\u20131443","DOI":"10.1145\/3368089.3417058"},{"issue":"S1","key":"708_CR22","doi-asserted-by":"publisher","first-page":"S63","DOI":"10.1121\/1.2016299","volume":"62","author":"F Jelinek","year":"1977","unstructured":"Jelinek F, Mercer RL, Bahl LR, Baker JK (1977) Perplexity-a measure of the difficulty of speech recognition tasks. J Acoust Soc Am 62(S1):S63\u2013S63","journal-title":"J Acoust Soc Am"},{"key":"708_CR23","doi-asserted-by":"crossref","unstructured":"Svyatkovskoy A, Lee S, Hadjitofi A, Riechert M, Franco J, Allamanis M (2020) Fast and memory-efficient neural code completion. arXiv:2004.13651","DOI":"10.1109\/MSR52588.2021.00045"},{"key":"708_CR24","doi-asserted-by":"crossref","unstructured":"Sennrich R, Haddow B, Birch A (Aug. 2016) Neural machine translation of rare words with subword units. In: Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). Berlin, Germany: Association for Computational Linguistics, pp 1715\u20131725","DOI":"10.18653\/v1\/P16-1162"},{"key":"708_CR25","doi-asserted-by":"crossref","unstructured":"Kim S, Zhao J, Tian Y, Chandra S (2020) Code prediction by feeding trees to transformers. arXiv:2003.13848","DOI":"10.1109\/ICSE43902.2021.00026"},{"key":"708_CR26","doi-asserted-by":"crossref","unstructured":"Rouhani BD, Mirhoseini A, Koushanfar F (2017) Deep3: leveraging three levels of parallelism for efficient deep learning. In: Proceedings of the 54th annual design automation conference, pp 1\u20136","DOI":"10.1145\/3061639.3062225"},{"key":"708_CR27","unstructured":"Spinellis D (2018) Tokenize source code into integer vectors, symbols, or discrete tokens. [Online]. Available: https:\/\/github.com\/dspinellis\/tokenizer"},{"key":"708_CR28","unstructured":"Hendrycks D, Gimpel K (2016) Bridging nonlinearities and stochastic regularizers with gaussian error linear units. arXiv:1606.08415"},{"key":"708_CR29","unstructured":"Mutton A, Dras M, Wan S, Dale R (2007) GLEU: Automatic evaluation of sentence-level fluency. In: Proceedings of the 45th Annual Meeting of the Association of Computational Linguistics. Prague, Czech Republic: Association for Computational Linguistics, pp 344\u2013351"},{"key":"708_CR30","doi-asserted-by":"crossref","unstructured":"Hammad Muhammad, Babur \u00d6nder, Abdul Basit Hamid, Brand Mark van den (2020) DeepClone: Modeling Clones to Generate Code Predictions. In: Reuse in Emerging Software Engineering Practices, Ben Sassi, Sihem and Ducasse, St\u00e9phane and Mili, Hafedh, Eds., Springer, New York, pp 135\u2013151","DOI":"10.1007\/978-3-030-64694-3_9"}],"container-title":["Complex &amp; Intelligent Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s40747-022-00708-7.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s40747-022-00708-7\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s40747-022-00708-7.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,9,27]],"date-time":"2022-09-27T14:01:11Z","timestamp":1664287271000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s40747-022-00708-7"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,4,6]]},"references-count":30,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2022,10]]}},"alternative-id":["708"],"URL":"https:\/\/doi.org\/10.1007\/s40747-022-00708-7","relation":{},"ISSN":["2199-4536","2198-6053"],"issn-type":[{"value":"2199-4536","type":"print"},{"value":"2198-6053","type":"electronic"}],"subject":[],"published":{"date-parts":[[2022,4,6]]},"assertion":[{"value":"15 September 2021","order":1,"name":"received","label":"Received","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"27 February 2022","order":2,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"6 April 2022","order":3,"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"}}]}}