<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Exploring Large Language Models for Code Explanation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Paheli Bhattacharya</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Manojit Chakraborty</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Kartheek N S N Palepu</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Vikas Pandey</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ishan Dindorkar</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rakesh Rajpurohit</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Rishabh Gupta</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bosch Global Software Technologies</institution>
          ,
          <addr-line>Bangalore</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Bosch Research and Technology Centre</institution>
          ,
          <addr-line>Bangalore</addr-line>
          ,
          <country country="IN">India</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Automating code documentation through explanatory text can prove highly beneficial in code understanding. Large Language Models (LLMs) have made remarkable strides in Natural Language Processing, especially within software engineering tasks such as code generation and code summarization. This study specifically delves into the task of generating natural-language summaries for code snippets, using various LLMs. The findings indicate that Code LLMs outperform their generic counterparts, and zero-shot methods yield superior results when dealing with datasets with dissimilar distributions between training and testing sets.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Code Comment Generation</kwd>
        <kwd>Code Summarization</kwd>
        <kwd>Large Language Models</kwd>
        <kwd>AI for Software Engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>IRSE
conala-train 1666 re.sub(’[^A-Z]’, ”, s)</p>
    </sec>
    <sec id="sec-2">
      <title>2. Related Work</title>
      <p>
        Code explanation [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], also termed as code summarization [
        <xref ref-type="bibr" rid="ref12 ref3">3, 12</xref>
        ] and comment generation [
        <xref ref-type="bibr" rid="ref13 ref2">13,
2</xref>
        ], is an important problem in the field of software engineering. Traditional approaches [
        <xref ref-type="bibr" rid="ref14 ref15">14, 15,
16</xref>
        ] as well as deep learning methods [
        <xref ref-type="bibr" rid="ref13 ref2">13, 2</xref>
        ] have been attempted for this task.
      </p>
      <p>
        Large Language Models have been successfully employed in a wide variety of natural
language generation tasks [17]. The zero shot and few shot capabilities of these systems make
them highly adaptable to any NLP task. There are several general domain, open source LLMs
like LLama-2 [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Alpaca [18] and Falcon [19]. There are also Code LLMs which have been
trained or finetuned on code-specific data (usually source code files, covering 80+ programming
languages). The most popular LLMs for code are OpenAI CodeX and Co-pilot. Among the open
source models, we have StarCoder [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], CodeUp [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], CodeLlama [20] and Llama-2-Coder [21].
      </p>
      <p>
        Large Language Models have been used for Code explanation in a few shot setting [
        <xref ref-type="bibr" rid="ref3">3, 22</xref>
        ].
Ahmed et.al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] found that giving few shot examples from the same project gives better results
than from a diferent project. Geng et.al. [ 22] show that selecting relevant examples in a few
shot setting is an important design criteria.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Dataset</title>
      <p>
        In this work, we consider a dataset of 100 samples released at the Information Retrieval in
Software Engineering (IRSE) track at Forum for Information Retrieval Evaluation (FIRE) 2023 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Each sample in the dataset is a ( ,  ) pair. The explanation is a
natural language description that denotes what task the code snippet is performing. We refer
to this dataset as "IRSE" in the rest of the paper. Additionally, we use a publicly available
conala-train [23] dataset as a secondary data source for few-shot and instruction finetuning.
This dataset consists of 1666 unique samples of ( ,  ) pairs.
      </p>
      <p>Table 1 shows a few examples from both the datasets. It can be observed that while the code
snippets in are comparable in length (21 and 14 tokens respectively), the code explanations in
the IRSE dataset are lengthier (mean length = 84 words) than the ones in the conala-train set
(mean length = 15 words).</p>
    </sec>
    <sec id="sec-4">
      <title>4. Evaluation</title>
      <p>The model generated textual descriptions are evaluated with respect to the ground truth
explanations using the following measures:
(i) Token-based: BLEU [24] score combines precision scores of n-grams (typically up to
4grams) using weighted geometric mean, with higher weight given to shorter n-grams. BLEU-1,
BLEU-2, and BLEU-N (for any integer N) extend the evaluation to unigrams, bigrams, and
n-grams of varying lengths, respectively.
(ii) Semantics-based: We use this measure to assess the semantic similarity between the model
generated explanation () and the ground truth explanation (). We project both  and  in
a continuous embedding space→,− an→d− respectively using the pretrained CodeBERT [25]
model. We then take a cosine similarity between the embeddings →(−→,− ) to get the
score.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Methodology</title>
      <p>
        We experiment with 5 LLMs (i) Generic LLM: Llama-2-70B-Chat model [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which is the
largest, open source model available. (ii) Code LLM – Llama-2-Coder-7B [21],
CodeLlama13B-Instruct [20], CodeUp-13B-Chat [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and StarCoder [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] (15.5B) models, using the zero-shot,
few-shot and instruction fine-tuning strategies, described below:
(i) Zero-shot: In this setting, we directly prompt the LLM to generate output for a particular
input code snippet. We experiment with several prompts, some of which are listed in Table 2
as prompts P1 and P2. Based on the model cards, we provide the prompt template P1 to the
Llama-2-70B Chat, CodeLlama-13B-Instruct and CodeUp-13B-Chat models. The template P2 is
provided to StarCoder and Llama-2-Coder-7B models.
(ii) Few-shot: In few shot prompting, we provide a few examples that demonstrate the nature
of the task. For the task of code explanation [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] suggest using 10 examples in a few-shot setup.
Therefore, we provide 10 randomly selected ( ,   )
pairs selected from the conala-train set (ref. Section 3).
(iii) Instruction Finetuning: For instruction finetuning of LLMs, we take CodeUp-13B-Chat
model [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We take each sample from conala-train dataset and generate instruction based
training instances using the following format:
Below is an instruction that describes a task, paired with an input that provides further context.
Write a response that appropriately completes the request.
### Instruction : Below is a line of python code that describes a task. Write one line of summary
that appropriately describes the task that the code is performing.
### Input : (,  =  : (− ([
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]), [0]))
### Output : Sort a nested list by two elements
      </p>
      <p>We load the CodeUp-13B-Chat model with 4-bit quantization using QLoRA [26] and
bitsandbytes [27] methods. We then perform parameter-eficient finetuning (PEFT) [ 28] of the model
using the above prepared dataset.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Results</title>
      <p>Table 3 shows the performance of the 5 diferent LLMs over three approaches – zero-shot,
few-shot and zero-shot over the Instruction finetuned model. CodeLlama-13B-Instruct and
Llama-2-Coder-7B have the best zero-shot performance over the other LLMs. Note that although
the generic Llama2 model is the largest in size (70B), it has poor performance when compared
to the smaller Code LLM models (13B, 7B). This shows that domain specific models perform
better than generic ones.</p>
      <p>While the few shot strategy is expected to give better performance than zero-shot, in this
study we find that the performance is worse. This is mainly because the few shot examples
had been selected from the conala-train set. As discussed in Section 3 and Table 1 the code
explanation lengths in the IRSE dataset and the conala-train dataset vary hugely. Since the
LLMs see few shot examples from the conala-train, it generates shorter length code explanations
for input samples coming from the IRSE dataset. This train-test distribution mismatch causes
the models to perform worse in the few shot scenario as compared to the zero-shot.</p>
      <p>Similar arguments can be drawn for the Instruction finetuning+Zero shot approach, as the
training data comes from the conala-train dataset which is diferent from the IRSE dataset.</p>
    </sec>
    <sec id="sec-7">
      <title>7. Conclusion</title>
      <p>In this work we explore the performance of 5 LLMs, both generic and code-specifc, for the task
of code explanation. We use zero-shot, few shot and instruction finetuning approaches over the
LLMs and assess their performance. We find that Code LLMs perform better than larger generic
LLMs. Also, zero-shot prompting works well in the scenario where we do not have enough
examples to prompt/finetune the model.
Comprehension (ICPC), IEEE, 2013, pp. 13–22.
[16] L. Moreno, J. Aponte, G. Sridhara, A. Marcus, L. Pollock, K. Vijay-Shanker, Automatic
generation of natural language summaries for java classes, in: 2013 21st International
conference on program comprehension (ICPC), IEEE, 2013, pp. 23–32.
[17] J. Yang, H. Jin, R. Tang, X. Han, Q. Feng, H. Jiang, B. Yin, X. Hu, Harnessing the power of
llms in practice: A survey on chatgpt and beyond, arXiv preprint arXiv:2304.13712 (2023).
[18] R. Taori, I. Gulrajani, T. Zhang, Y. Dubois, X. Li, C. Guestrin, P. Liang, T. B. Hashimoto,
Alpaca: A strong, replicable instruction-following model, Stanford Center for Research on
Foundation Models. https://crfm. stanford. edu/2023/03/13/alpaca. html 3 (2023) 7.
[19] G. Penedo, Q. Malartic, D. Hesslow, R. Cojocaru, A. Cappelli, H. Alobeidli, B. Pannier,
E. Almazrouei, J. Launay, The RefinedWeb dataset for Falcon LLM: outperforming curated
corpora with web data, and web data only, arXiv preprint arXiv:2306.01116 (2023).
[20] B. Rozière, J. Gehring, F. Gloeckle, S. Sootla, I. Gat, X. E. Tan, Y. Adi, J. Liu, T. Remez, J. Rapin,
et al., Code llama: Open foundation models for code, arXiv preprint arXiv:2308.12950
(2023). URL: https://huggingface.co/codellama.
[21] Manuel Romero, llama-2-coder-7b (revision d30d193), 2023. URL: https://huggingface.co/
mrm8488/llama-2-coder-7b. doi:10.57967/hf/0931.
[22] M. Geng, S. Wang, D. Dong, H. Wang, G. Li, Z. Jin, X. Mao, X. Liao, Large language models
are few-shot summarizers: Multi-intent comment generation via in-context learning (2024).
[23] P. Yin, B. Deng, E. Chen, B. Vasilescu, G. Neubig, Learning to mine aligned code and natural
language pairs from stack overflow, in: International Conference on Mining Software
Repositories, ACM, 2018, pp. 476–486. URL: https://conala-corpus.github.io/.
[24] K. Papineni, S. Roukos, T. Ward, W.-J. Zhu, Bleu: A method for automatic evaluation of
machine translation, Association for Computational Linguistics, USA, 2002, p. 311–318.
[25] Z. Feng, D. Guo, D. Tang, N. Duan, X. Feng, M. Gong, L. Shou, B. Qin, T. Liu, D. Jiang, et al.,
Codebert: A pre-trained model for programming and natural languages, in: Findings of
the Association for Computational Linguistics: EMNLP 2020, 2020, pp. 1536–1547.
[26] T. Dettmers, A. Pagnoni, A. Holtzman, L. Zettlemoyer, Qlora: Eficient finetuning of
quantized llms, 2023. arXiv:2305.14314.
[27] T. Dettmers, M. Lewis, S. Shleifer, L. Zettlemoyer, 8-bit optimizers via block-wise
quantization, 9th International Conference on Learning Representations, ICLR (2022).
[28] S. Mangrulkar, S. Gugger, L. Debut, Y. Belkada, S. Paul, B. Bossan, Peft: State-of-the-art
parameter-eficient fine-tuning methods, https://github.com/huggingface/peft, 2022.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Liang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Zhu</surname>
          </string-name>
          ,
          <article-title>Automatic generation of text descriptive comments for code blocks</article-title>
          ,
          <source>in: Proceedings of the AAAI Conference on Artificial Intelligence</source>
          , volume
          <volume>32</volume>
          ,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sharma</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fard</surname>
          </string-name>
          ,
          <article-title>Lamner: code comment generation using character language model and named entity recognition</article-title>
          ,
          <source>in: Proceedings of the 30th IEEE/ACM International Conference on Program Comprehension</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>48</fpage>
          -
          <lpage>59</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>T.</given-names>
            <surname>Ahmed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Devanbu</surname>
          </string-name>
          ,
          <article-title>Few-shot training llms for project-specific code-summarization</article-title>
          ,
          <source>in: Proceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>I. Ozkaya</surname>
          </string-name>
          ,
          <article-title>Application of large language models to software engineering tasks: Opportunities, risks, and implications</article-title>
          ,
          <source>IEEE Software 40</source>
          (
          <year>2023</year>
          )
          <fpage>4</fpage>
          -
          <lpage>8</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Jiang</surname>
          </string-name>
          , S. Kim,
          <article-title>Codeup: A multilingual code generation llama2 model with parametereficient instruction-tuning</article-title>
          , https://huggingface.co/deepse,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>M.-F. Wong</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Guo</surname>
            ,
            <given-names>C.-N.</given-names>
          </string-name>
          <string-name>
            <surname>Hang</surname>
            ,
            <given-names>S.-W.</given-names>
          </string-name>
          <string-name>
            <surname>Ho</surname>
          </string-name>
          , C.-W. Tan,
          <article-title>Natural language generation and understanding of big code for AI-assisted programming: A review</article-title>
          ,
          <source>Entropy</source>
          <volume>25</volume>
          (
          <year>2023</year>
          )
          <article-title>888</article-title>
          . URL: https://doi.org/10.3390%2Fe25060888. doi:
          <volume>10</volume>
          .3390/e25060888.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Schäfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Nadi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Eghbali</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Tip</surname>
          </string-name>
          ,
          <article-title>An empirical evaluation of using large language models for automated unit test generation</article-title>
          ,
          <year>2023</year>
          . arXiv:
          <volume>2302</volume>
          .
          <fpage>06527</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>H.</given-names>
            <surname>Touvron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Martin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Stone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Albert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Almahairi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Babaei</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Bashlykov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Batra</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Bhargava</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bhosale</surname>
          </string-name>
          , et al.,
          <source>Llama</source>
          <volume>2</volume>
          :
          <article-title>Open foundation and fine-tuned chat models</article-title>
          ,
          <source>arXiv preprint arXiv:2307.09288</source>
          (
          <year>2023</year>
          ). URL: https://huggingface.co/meta-llama/ Llama-2
          <article-title>-70b-chat-hf.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>R. L.</surname>
          </string-name>
          et.al.,
          <article-title>Starcoder: may the source be with you!</article-title>
          ,
          <source>arXiv preprint arXiv:2305.06161</source>
          (
          <year>2023</year>
          ). URL: https://huggingface.co/bigcode/starcoder.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Paul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Paul</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Bandyopadhyay</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Dave</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Chattopadhyay</surname>
          </string-name>
          ,
          <string-name>
            <surname>P. P. Das</surname>
            ,
            <given-names>P. D.</given-names>
          </string-name>
          <string-name>
            <surname>Clough</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Majumder</surname>
          </string-name>
          ,
          <article-title>Generative ai for software metadata: Overview of the information retrieval in software engineering track at fire 2023, in: Forum for Information Retrieval Evaluation</article-title>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          ,
          <year>2023</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>MacNeil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Hellas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Sarsa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Denny</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bernstein</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Leinonen</surname>
          </string-name>
          ,
          <article-title>Experiences from using code explanations generated by large language models in a web software development e-book</article-title>
          ,
          <source>in: Proceedings of the 54th ACM Technical Symposium on Computer Science Education V. 1</source>
          ,
          <issue>2023</issue>
          , pp.
          <fpage>931</fpage>
          -
          <lpage>937</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Iyer</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Konstas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cheung</surname>
          </string-name>
          , L. Zettlemoyer,
          <article-title>Summarizing source code using a neural attention model</article-title>
          ,
          <source>in: 54th Annual Meeting of the Association for Computational Linguistics</source>
          <year>2016</year>
          , Association for Computational Linguistics,
          <year>2016</year>
          , pp.
          <fpage>2073</fpage>
          -
          <lpage>2083</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>X.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Xia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <article-title>Deep code comment generation</article-title>
          ,
          <source>in: Proceedings of the 26th Conference on Program Comprehension, Association for Computing Machinery</source>
          ,
          <year>2018</year>
          , p.
          <fpage>200</fpage>
          -
          <lpage>210</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>S.</given-names>
            <surname>Haiduc</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Aponte</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Moreno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marcus</surname>
          </string-name>
          ,
          <article-title>On the use of automated text summarization techniques for summarizing source code</article-title>
          ,
          <source>in: 2010 17th Working conference on reverse engineering</source>
          , IEEE,
          <year>2010</year>
          , pp.
          <fpage>35</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>B. P.</given-names>
            <surname>Eddy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Robinson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N. A.</given-names>
            <surname>Kraft</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. C.</given-names>
            <surname>Carver</surname>
          </string-name>
          ,
          <article-title>Evaluating source code summarization techniques: Replication and expansion</article-title>
          , in: 2013 21st International Conference on Program
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>