<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xml:lang="en" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CMC</journal-id>
<journal-id journal-id-type="nlm-ta">CMC</journal-id>
<journal-id journal-id-type="publisher-id">CMC</journal-id>
<journal-title-group>
<journal-title>Computers, Materials &#x0026; Continua</journal-title>
</journal-title-group>
<issn pub-type="epub">1546-2226</issn>
<issn pub-type="ppub">1546-2218</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">81155</article-id>
<article-id pub-id-type="doi">10.32604/cmc.2026.081155</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>VulSCP: Automated Code Vulnerability Detection via Sequential Convolution and Parallel Attention Mechanism</article-title>
<alt-title alt-title-type="left-running-head">VulSCP: Automated Code Vulnerability Detection via Sequential Convolution and Parallel Attention Mechanism</alt-title>
<alt-title alt-title-type="right-running-head">VulSCP: Automated Code Vulnerability Detection via Sequential Convolution and Parallel Attention Mechanism</alt-title>
</title-group>
<contrib-group>
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Wang</surname><given-names>Zhe</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-2" contrib-type="author">
<name name-style="western"><surname>Yan</surname><given-names>Yu</given-names></name><xref ref-type="aff" rid="aff-2">2</xref></contrib>
<contrib id="author-3" contrib-type="author">
<name name-style="western"><surname>Tong</surname><given-names>Junqi</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-4" contrib-type="author">
<name name-style="western"><surname>Lin</surname><given-names>Yijun</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<contrib id="author-5" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Yin</surname><given-names>Dechun</given-names></name><xref ref-type="aff" rid="aff-1">1</xref><xref rid="cor1" ref-type="corresp">&#x002A;</xref><email>yindechun@ppsuc.edu.cn</email></contrib>
<contrib id="author-6" contrib-type="author">
<name name-style="western"><surname>Zhao</surname><given-names>Xiaoliang</given-names></name><xref ref-type="aff" rid="aff-1">1</xref></contrib>
<aff id="aff-1"><label>1</label><institution>School of Information and Network Security, People&#x2019;s Public Security University of China</institution>, <addr-line>Beijing</addr-line>, <country>China</country></aff>
<aff id="aff-2"><label>2</label><institution>Institute of Computing Technology, Chinese Academy of Sciences</institution>, <addr-line>Beijing</addr-line>, <country>China</country></aff>
</contrib-group>
<author-notes>
<corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Dechun Yin. Email: <email>yindechun@ppsuc.edu.cn</email></corresp>
</author-notes>
<pub-date date-type="collection" publication-format="electronic">
<year>2026</year>
</pub-date>
<pub-date date-type="pub" publication-format="electronic">
<day>15</day><month>06</month><year>2026</year>
</pub-date>
<volume>88</volume>
<issue>2</issue>
<elocation-id>42</elocation-id>
<history>
<date date-type="received">
<day>24</day>
<month>02</month>
<year>2026</year>
</date>
<date date-type="accepted">
<day>16</day>
<month>04</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2026 The Authors. Published by Tech Science Press.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>The Authors</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CMC_81155.pdf"></self-uri>
<abstract>
<p>As software applications grow increasingly large and complex, traditional code vulnerability detection methods struggle with performance and efficiency. Although code visualization-based algorithms have demonstrated effectiveness in capturing sparse features and complex workflows in large-scale source code, their capacity to extract global semantic information and intricate long-range dependencies remains limited. Recent large language model (LLM)-based approaches have shown promising accuracy by leveraging rich contextual information, but their high computational cost often limits practical efficiency. To address these challenges, we propose VulSCP, a new framework that integrates sequential convolution with a parallel attention mechanism. Specifically, VulSCP first constructs a semantically weighted graph from the source code, then employs sequential convolution to extract local vulnerability-related features, and finally enhances the global feature representation through parallel attention. Experimental results on large-scale C/C&#x002B;&#x002B; function-level datasets show that VulSCP achieves an accuracy of 85.14% and a false positive rate of 17.25%, outperforming the best baseline in accuracy by 1.73 percentage points and reducing the false positive rate by 3.38 percentage points. Moreover, while maintaining high detection accuracy, VulSCP achieves a low average inference time of 1.89 s per sample, showing favorable efficiency compared with the evaluated LLM-based methods. These results suggest that VulSCP is a promising approach for vulnerability detection in large and complex software systems, offering a favorable balance between accuracy and efficiency. The source code of VulSCP is publicly available at <ext-link ext-link-type="uri" xlink:href="https://github.com/Hwzx-ZeL/VulSCP">https://github.com/Hwzx-ZeL/VulSCP</ext-link>.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Code vulnerability detection</kwd>
<kwd>sequential convolution</kwd>
<kwd>parallel attention</kwd>
<kwd>program dependency graph</kwd>
<kwd>semantic graph representation</kwd>
</kwd-group>
<funding-group>
<award-group id="awg1">
<funding-source>Ministry of Public Security of the People&#x2019;s Republic of China</funding-source>
<award-id>2024ZB02</award-id>
</award-group>
</funding-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Recently, the increasing frequency of online software attacks has posed significant challenges to cybersecurity, and this situation is further compounded by the exponential growth in the scale and complexity of modern software systems. Statistics from the National Vulnerability Database (NVD) [<xref ref-type="bibr" rid="ref-1">1</xref>] indicate sustained expansion: disclosures grew by about <inline-formula id="ieqn-1"><mml:math id="mml-ieqn-1"><mml:mn>39</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula> year-over-year in 2024 relative to 2023 and have more than doubled since 2020 (approximately <inline-formula id="ieqn-2"><mml:math id="mml-ieqn-2"><mml:mn>2.18</mml:mn><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula>; about <inline-formula id="ieqn-3"><mml:math id="mml-ieqn-3"><mml:mn>21</mml:mn><mml:mi mathvariant="normal">&#x0025;</mml:mi></mml:math></inline-formula> compound annual growth over 2020&#x2013;2024). Early 2025 levels remain elevated, suggesting persistent upward pressure. An industry analysis [<xref ref-type="bibr" rid="ref-2">2</xref>] highlights a similar upward trend observed in practice. These dynamics not only reflect an accelerating pace of vulnerability disclosures but also underscore the increasing technical complexity of these threats. Consequently, an automated detection method that can effectively balance accuracy and computational efficiency is urgently needed, particularly in the context of large-scale software systems.</p>
<p>Traditional code vulnerability detection techniques are generally classified into two main categories: code similarity-based detection [<xref ref-type="bibr" rid="ref-3">3</xref>&#x2013;<xref ref-type="bibr" rid="ref-5">5</xref>] and pattern-based detection [<xref ref-type="bibr" rid="ref-6">6</xref>&#x2013;<xref ref-type="bibr" rid="ref-8">8</xref>]. Similarity-based methods are primarily designed to identify vulnerabilities introduced through code cloning. However, these methods often struggle to detect non-clone vulnerabilities, resulting in a high false negative rate. Pattern-based approaches rely on manually defined rules and feature matching to identify vulnerable code. However, due to the inherent limitations in rule formulation, these methods tend to exhibit elevated false positive rates. Deep learning&#x2013;based techniques [<xref ref-type="bibr" rid="ref-6">6</xref>,<xref ref-type="bibr" rid="ref-9">9</xref>] have emerged as a leading paradigm in static code analysis. By automatically learning vulnerability patterns from large-scale code corpora, these approaches offer a promising solution for achieving both improved detection accuracy and scalability.</p>
<p>Among existing deep learning&#x2013;based vulnerability detection methods, those that extract program semantics from source code and represent them as graphs, followed by graph-based analysis (e.g., Graph Neural Networks, GNNs), have demonstrated strong detection performance [<xref ref-type="bibr" rid="ref-10">10</xref>&#x2013;<xref ref-type="bibr" rid="ref-12">12</xref>]. These methods effectively integrate multiple code representations (e.g., AST, NSC, CFG, DFG) and achieve precise vulnerability analysis by modeling the graph structure of source code. However, graph neural network (GNN)&#x2013;based detection approaches still face significant challenges. On the one hand, the computational complexity of GNNs is substantially higher than that of conventional CNNs, leading to considerable resource consumption when processing large-scale codebases. On the other hand, the extraction of multiple code representations introduces substantial time overhead, which adversely impacts detection efficiency. To balance detection effectiveness and efficiency, we adopt sequential convolution to extract vulnerability-relevant features from a centrality-weighted semantic graph, rather than directly performing costly GNN-based reasoning on explicitly constructed code graphs. Specifically, source code is first embedded into a program dependence graph (PDG) that preserves both control-flow and data-flow dependencies, and the relative importance of code lines is further quantified from multiple complementary perspectives using three centrality measures. Nevertheless, the inherently local receptive field of sequential convolution limits its ability to model global code semantics and long-range dependencies. To better compensate for this limitation under efficiency constraints, we introduce a Parallel Attention (PA) mechanism [<xref ref-type="bibr" rid="ref-13">13</xref>]. Prior CNN-attention-based vulnerability detection models, such as CodeGATNet [<xref ref-type="bibr" rid="ref-14">14</xref>] and the hybrid QCNN-based framework [<xref ref-type="bibr" rid="ref-15">15</xref>], also employ attention to enhance feature modeling, but they differ from our method in both the underlying feature representation and the way attention is incorporated. In our framework, the centrality-weighted graph representation and PA play complementary roles: the former injects structural semantic priors into the input, while the latter dynamically reweights the resulting convolutional features to further emphasize vulnerability-relevant regions and long-range dependencies. Through grouped channel-spatial reweighting performed in parallel, PA improves global semantic perception while preserving the lightweight and efficient characteristics of the overall framework.</p>
<p>In recent years, large language models (LLMs) have demonstrated remarkable potential in the field of code vulnerability detection, attracting significant attention from both academia and industry. For example, the VulLLM framework [<xref ref-type="bibr" rid="ref-16">16</xref>] adopts a Multi-Task Instruction Fine-Tuning strategy that integrates vulnerability localization and explanation tasks, enabling the model to capture the root-cause characteristics of vulnerabilities rather than relying solely on superficial correlations. Similarly, the MSVID (Multitask Self-Instructed Fine-Tuning) method proposed by the CMU team [<xref ref-type="bibr" rid="ref-17">17</xref>] integrates graph neural networks (GNNs) with LLMs, further enhancing the recognition of complex vulnerability patterns. However, these LLM-based detection methods also face notable challenges. First, their performance degrades in complex vulnerability scenarios. Sejfia et al. [<xref ref-type="bibr" rid="ref-18">18</xref>] observed that detection accuracy drops significantly when vulnerabilities span multiple code units. Second, current approaches still rely heavily on lightweight LLMs. Applying LLMs with billions of parameters to vulnerability detection leads to extremely high computational resource demands and runtime overhead. Such high resource consumption and low efficiency hinder the practical adoption of large-scale LLMs (with over one billion parameters) in industrial vulnerability detection, where both effectiveness and efficiency are critical. Therefore, reducing resource consumption and improving efficiency while maintaining the detection performance of LLMs has become an urgent problem to be solved.</p>
<p>To address the limitations of existing approaches in code vulnerability detection, particularly their difficulty in capturing global semantic features and long-range dependencies, we propose VulSCP, a new and effective detection framework that integrates sequential convolution with a parallel attention mechanism. VulSCP begins by constructing a semantically weighted graph representation of source code, leveraging both control and data dependencies to preserve program semantics. Sequential convolution is then applied to capture local structural patterns associated with vulnerabilities. To further enhance global feature representation, VulSCP incorporates a parallel attention module, consisting of both channel-wise and spatial attention components, enabling the model to effectively emphasize critical features across different semantic dimensions.</p>
<p>Extensive experiments on large-scale C/C&#x002B;&#x002B; function-level vulnerability datasets support the effectiveness of VulSCP. The results indicate that the proposed framework performs favorably relative to recent and representative baselines, while maintaining a good balance between semantic modeling capability and computational efficiency. These observations highlight the potential of VulSCP for efficient vulnerability detection in large-scale software settings. The major contributions of this work are as follows:<list list-type="bullet">
<list-item>
<p><bold>Semantic Graph Representation with Centrality:</bold> To efficiently capture sparse features and complex workflows in large-scale source code, we normalize the source code and construct graph-based representations. By incorporating code centrality metrics, we generate semantically weighted graphs that preserve both data-flow and control-flow semantics.</p></list-item>
<list-item>
<p><bold>PA-Enhanced Global Semantic Modeling:</bold> To address the limited ability of existing models to capture global semantics and complex logical dependencies, we integrate a parallel attention mechanism. This design balances computational efficiency with enhanced representation of global features.</p></list-item>
<list-item>
<p><bold>Improved Accuracy and Efficiency:</bold> Extensive experiments demonstrate that VulSCP achieves lower false positive rates and higher accuracy than recent and representative vulnerability detection baselines. Moreover, VulSCP maintains a low detection latency of 1.89 s per code sample, offering favorable efficiency compared with large-model-based detection methods.</p></list-item>
</list></p>
</sec>
<sec id="s2">
<label>2</label>
<title>Related Works</title>
<p><bold>Traditional vulnerability detection methods.</bold> Flawfinder [<xref ref-type="bibr" rid="ref-19">19</xref>] performs lexical analysis using a built-in database of known insecure functions and evaluates risks based on context, but it does not conduct data flow or control flow analysis. Cppcheck [<xref ref-type="bibr" rid="ref-20">20</xref>] tokenizes C/C&#x002B;&#x002B; source files and matches token sequences to detect vulnerabilities, enabling it to handle complex code structures. FindBugs [<xref ref-type="bibr" rid="ref-21">21</xref>] analyzes Java bytecode via static analysis and examines data flows in the code to identify potential vulnerabilities. Clang Static Analyzer [<xref ref-type="bibr" rid="ref-22">22</xref>] simulates code execution paths using static analysis to detect flaws. Micro Focus Fortify [<xref ref-type="bibr" rid="ref-23">23</xref>] combines static, dynamic, and runtime analyses to uncover security vulnerabilities in software. Checkmarx [<xref ref-type="bibr" rid="ref-24">24</xref>] relies on expert-defined rules to identify code issues. RATS [<xref ref-type="bibr" rid="ref-25">25</xref>] performs static analysis to detect security concerns in source code. Traditional vulnerability detection methods primarily rely on predefined rules and employ pattern matching and lexical analysis. However, these approaches often lack deep semantic understanding and are heavily dependent on manually crafted rules, making them prone to missing complex security issues and resulting in suboptimal detection performance.</p>
<p><bold>Deep learning&#x2013;based vulnerability detection methods.</bold> In recent years, deep learning has led to notable advances in vulnerability detection. Li et al. [<xref ref-type="bibr" rid="ref-6">6</xref>] proposed a slice-level detection model based on bidirectional long short-term memory networks (BLSTMs), utilizing program slicing for vulnerability identification. Russell et al. [<xref ref-type="bibr" rid="ref-26">26</xref>] extracted code features and trained CNNs and RNNs for function-level detection. Duan et al. [<xref ref-type="bibr" rid="ref-27">27</xref>] introduced a detection model that combines attention mechanisms with BLSTMs and uses tensor-based feature encoding. Feng et al. [<xref ref-type="bibr" rid="ref-28">28</xref>] developed a tool that extracts AST sequences and trains a gated recurrent unit (GRU) model. TokenCNN [<xref ref-type="bibr" rid="ref-26">26</xref>] converts source code into vector representations and applies CNNs for detection. VulDeePecker [<xref ref-type="bibr" rid="ref-6">6</xref>] extracts code slices and uses BLSTM models for vulnerability identification. SySeVR [<xref ref-type="bibr" rid="ref-8">8</xref>] generates slices based on control and data flow information and applies BLSTM for detection. VulDeeLocator [<xref ref-type="bibr" rid="ref-29">29</xref>] compiles source code into LLVM Intermediate Representation (IR), extracts IR slices, and applies BiLSTM for detection. Devign [<xref ref-type="bibr" rid="ref-10">10</xref>] constructs a rich graph representation capturing comprehensive program semantics via advanced program analysis, and utilizes generic GNNs for detection.</p>
<p><bold>LLM-based vulnerability detection methods.</bold> LLM-based vulnerability detection methods can be broadly classified into two categories: prompt engineering&#x2013;based approaches and fine-tuning&#x2013;based domain adaptation methods. Prompt engineering methods leverage pre-trained large language models (LLMs), such as GPT-3.5 and Code Llama, to perform vulnerability detection without modifying model parameters. Several prompt strategies have been proposed in existing research: clearly defining task goals and roles to enhance model comprehension [<xref ref-type="bibr" rid="ref-30">30</xref>&#x2013;<xref ref-type="bibr" rid="ref-32">32</xref>]; embedding common vulnerability types (e.g., CWE Top 25) or example code to help models capture key features [<xref ref-type="bibr" rid="ref-30">30</xref>,<xref ref-type="bibr" rid="ref-33">33</xref>]; integrating code dependency information (e.g., from static data flow analysis) into prompts to compensate for LLMs&#x2019; limited semantic understanding [<xref ref-type="bibr" rid="ref-33">33</xref>,<xref ref-type="bibr" rid="ref-34">34</xref>]; and employing chain-of-thought reasoning to improve detection of complex vulnerabilities [<xref ref-type="bibr" rid="ref-35">35</xref>,<xref ref-type="bibr" rid="ref-36">36</xref>]. While these methods benefit from zero-shot or few-shot settings, their performance is highly sensitive to prompt design (e.g., selection of few-shot examples) [<xref ref-type="bibr" rid="ref-35">35</xref>], and their detection results can lack stability. Fine-tuning methods, by contrast, adapt pre-trained LLMs through supervised learning to specialize in vulnerability detection. Typically, these models are trained end-to-end on datasets such as NVD or SARD to optimize the recognition of vulnerability patterns. To mitigate class imbalance, studies employ data-level resampling [<xref ref-type="bibr" rid="ref-37">37</xref>] and cost-sensitive optimization via loss reweighting [<xref ref-type="bibr" rid="ref-38">38</xref>] to strengthen learning on rare vulnerable samples. To address label noise and incomplete annotations, positive&#x2013;unlabeled learning reframes training with positives and unlabeled examples, often combined with selective pseudo-labeling and mixed-supervision objectives [<xref ref-type="bibr" rid="ref-39">39</xref>]. In parallel, incorporating structured program information (e.g., PDGs/CFGs) further enhances code semantics [<xref ref-type="bibr" rid="ref-40">40</xref>&#x2013;<xref ref-type="bibr" rid="ref-42">42</xref>]. Some approaches also combine GNNs or BLSTM architectures to build multimodal models that simultaneously capture code sequences and structural features [<xref ref-type="bibr" rid="ref-43">43</xref>&#x2013;<xref ref-type="bibr" rid="ref-45">45</xref>]. While fine-tuning offers more stable accuracy, it entails high computational costs and prolonged training time, making it less feasible for efficient deployment in industrial-scale vulnerability detection.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Method</title>
<p>Existing methods for vulnerability detection often face a trade-off between computational efficiency and semantic modeling capability when applied to large-scale codebases. To address this issue, VulSCP is designed as a lightweight framework that combines semantically weighted graph representation, sequential convolution, and parallel attention, as illustrated in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>An overview of vulnerability detection via sequential convolution and a parallel attention mechanism.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-1.tif"/>
</fig>
<p>Specifically, the framework first extracts the Program Dependency Graph (PDG) from source code and performs code embedding. Based on the PDG, it then constructs a multi-channel semantically weighted representation using three complementary centrality measures, namely degree centrality, Katz centrality, and closeness centrality, so as to preserve both structural dependency information and the relative importance of code lines. On this basis, sequential convolution is employed to capture local vulnerability-related patterns, while the parallel attention module further enhances global semantic perception and long-range dependency modeling. Finally, the resulting features are fused and fed into the classifier to perform end-to-end vulnerability detection.</p>
<sec id="s3_1">
<label>3.1</label>
<title>Code Representation</title>
<sec id="s3_1_1">
<label>3.1.1</label>
<title>Code Normalization</title>
<p>To achieve both accuracy and scalability in vulnerability detection, this paper adopts static analysis techniques to extract program semantics from source code and represent them in graph form. Before generating the graph representation of functions, the source code undergoes a normalization process to ensure consistency and robustness against common code transformations while preserving program semantics. This normalization is performed in three steps:</p>
<p><xref ref-type="fig" rid="fig-2">Fig. 2</xref> illustrates the detailed transformation of a function across different levels of normalization. The normalization process includes the following operations:<list list-type="bullet">
<list-item>
<p>Removal of comments: All comments that do not affect the program&#x2019;s semantics are eliminated.</p>
</list-item>
<list-item>
<p>Standardization of variable names: User-defined variable names are replaced with ordered, standardized placeholders (e.g., VAR1).</p></list-item>
<list-item>
<p>Standardization of function names: User-defined function names are replaced with ordered, standardized identifiers (e.g., FUN1).</p></list-item>
</list></p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Code normalization.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-2.tif"/>
</fig>
<p>This normalization strategy ensures that superficial variations in code structure do not interfere with the vulnerability detection process, allowing the model to focus on meaningful semantic patterns.</p>
</sec>
<sec id="s3_1_2">
<label>3.1.2</label>
<title>Code Graph Representation</title>
<p>The embedded representation of code is primarily constructed through Program Dependency Graph (PDG) extraction and sentence embedding techniques (specifically, sent2vec), enabling the transformation of source code into graph-based representations.</p>
<p>PDG is a widely adopted method for modeling code structure, capturing both data flow and control flow dependencies within the source code. In this work, we utilize Joern, an open-source code analysis platform for C/C&#x002B;&#x002B;, to extract PDGs from the source code. Sent2vec is a robust and efficient sentence embedding technique that leverages a simple unsupervised objective to learn distributed representations of sentences. By applying sent2vec, each line of code can be encoded into a fixed-length vector, treating the code line as a natural language sentence. Specifically, each statement in the source code is mapped to a corresponding node in the PDG. Each line is treated as a sentence and embedded using the sent2vec model, producing a dense vector representation. This process integrates semantic information into the graph structure, facilitating downstream learning tasks. <xref ref-type="fig" rid="fig-3">Fig. 3</xref> illustrates the overall graph construction pipeline. In the figure, red edges and blue edges denote data flow and control flow dependencies, respectively, between different lines of code within the function.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Code embedding representation.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-3.tif"/>
</fig>
</sec>
</sec>
<sec id="s3_2">
<label>3.2</label>
<title>Code Centrality Representation</title>
<p>To characterize the relative importance of different code lines in the program semantic structure, we introduce centrality measures on the Program Dependency Graph (PDG) and perform structural importance weighting for code slices. A PDG is a graph in which nodes correspond to statements and edges represent control and data dependencies; therefore, centrality theory from graph theory and social network analysis provides a principled way to quantify the structural roles of statements.</p>
<p>Unlike social networks where node attributes and relationship semantics can be open-ended and dynamically evolving, program semantics are more deterministic: statement boundaries, dependencies, and execution logic are explicit, and the structural properties of PDG nodes are accordingly well defined. In this setting, overly complex metrics that rely on rich node attributes or high-order statistics may introduce noise and additional computational overhead without yielding more robust representations. Therefore, we adopt three classical and complementary centrality measures&#x2014;degree, Katz, and closeness centrality&#x2014;to quantify slice importance, capturing local connectivity, multi-hop influence propagation, and global proximity, respectively, as illustrated in <xref ref-type="fig" rid="fig-4">Fig. 4</xref>. Accordingly, we compute these three centralities as follows.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Code centrality representation.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-4.tif"/>
</fig>
<p>Degree Centrality evaluates the importance of a node based on the number of its direct connections to other nodes. For a given code slice <inline-formula id="ieqn-4"><mml:math id="mml-ieqn-4"><mml:mi>i</mml:mi></mml:math></inline-formula>, the degree centrality <inline-formula id="ieqn-5"><mml:math id="mml-ieqn-5"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>D</mml:mi></mml:msubsup></mml:math></inline-formula> is defined as:<disp-formula id="eqn-1"><label>(1)</label><mml:math id="mml-eqn-1" display="block"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>D</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mrow><mml:mtext>deg</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-6"><mml:math id="mml-ieqn-6"><mml:mtext>deg</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> denotes the degree of the node <inline-formula id="ieqn-7"><mml:math id="mml-ieqn-7"><mml:mi>i</mml:mi></mml:math></inline-formula>, and <italic>N</italic> is the total number of nodes in the graph. A higher <inline-formula id="ieqn-8"><mml:math id="mml-ieqn-8"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>D</mml:mi></mml:msubsup></mml:math></inline-formula> value indicates that the code line involves more intensive data and control dependencies, suggesting it may play a more central role in the program execution flow.</p>
<p>Katz Centrality measures a node&#x2019;s potential influence by considering not only its immediate neighbors but also the weighted influence of more distant nodes (with attenuation over distance). For a code slice <inline-formula id="ieqn-9"><mml:math id="mml-ieqn-9"><mml:mi>i</mml:mi></mml:math></inline-formula>, the Katz centrality <inline-formula id="ieqn-10"><mml:math id="mml-ieqn-10"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>K</mml:mi></mml:msubsup></mml:math></inline-formula> is defined as:<disp-formula id="eqn-2"><label>(2)</label><mml:math id="mml-eqn-2" display="block"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>K</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mi>&#x03B1;</mml:mi><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mi>j</mml:mi></mml:munder><mml:msub><mml:mi>A</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>x</mml:mi><mml:mi>j</mml:mi><mml:mi>K</mml:mi></mml:msubsup><mml:mo>+</mml:mo><mml:mi>&#x03B2;</mml:mi><mml:mo>,</mml:mo></mml:math></disp-formula>where <italic>A</italic> is the adjacency matrix of the graph <italic>G</italic> with eigenvalues <inline-formula id="ieqn-11"><mml:math id="mml-ieqn-11"><mml:mi>&#x03BB;</mml:mi></mml:math></inline-formula>, <inline-formula id="ieqn-12"><mml:math id="mml-ieqn-12"><mml:mi>&#x03B1;</mml:mi></mml:math></inline-formula> is a damping factor, such that <inline-formula id="ieqn-13"><mml:math id="mml-ieqn-13"><mml:mi>&#x03B1;</mml:mi><mml:mo>&#x003C;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:msub><mml:mi>&#x03BB;</mml:mi><mml:mrow><mml:mtext>max</mml:mtext></mml:mrow></mml:msub></mml:mfrac></mml:math></inline-formula>. <inline-formula id="ieqn-14"><mml:math id="mml-ieqn-14"><mml:mi>&#x03B2;</mml:mi></mml:math></inline-formula> is a constant that controls the initial centrality.</p>
<p>Closeness Centrality quantifies how close a node is to all other nodes in the graph by computing the average length of the shortest paths from that node to every other node. For a code slice <inline-formula id="ieqn-15"><mml:math id="mml-ieqn-15"><mml:mi>i</mml:mi></mml:math></inline-formula>, the closeness centrality <inline-formula id="ieqn-16"><mml:math id="mml-ieqn-16"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>C</mml:mi></mml:msubsup></mml:math></inline-formula> is given by:<disp-formula id="eqn-3"><label>(3)</label><mml:math id="mml-eqn-3" display="block"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>C</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true" scriptlevel="0"><mml:mfrac><mml:mrow><mml:mi>N</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:munder><mml:mo>&#x2211;</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>&#x2260;</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:munder><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-17"><mml:math id="mml-ieqn-17"><mml:mi>d</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the shortest path distance between nodes <inline-formula id="ieqn-18"><mml:math id="mml-ieqn-18"><mml:mi>i</mml:mi></mml:math></inline-formula> and <inline-formula id="ieqn-19"><mml:math id="mml-ieqn-19"><mml:mi>j</mml:mi></mml:math></inline-formula>, and <italic>N</italic> is the total number of nodes in the graph. Nodes with high <inline-formula id="ieqn-20"><mml:math id="mml-ieqn-20"><mml:msubsup><mml:mi>x</mml:mi><mml:mi>i</mml:mi><mml:mi>C</mml:mi></mml:msubsup></mml:math></inline-formula> reside &#x201C;centrally&#x201D; in the PDG, implying roles in system-wide data exchange or control coordination.</p>
<p>Using these three centrality measures, we obtain per-line importance scores from complementary perspectives, and use each score to reweight the corresponding line embedding, yielding three centrality-aware feature channels for downstream learning.</p>
</sec>
<sec id="s3_3">
<label>3.3</label>
<title>Sequential Convolution and Parallel Attention Neural Network</title>
<sec id="s3_3_1">
<label>3.3.1</label>
<title>Sequential Convolution Layer</title>
<p>To meet the dual requirements of efficiency and accuracy in large-scale vulnerability detection, we design a sequential convolution layer to extract multi-granularity local patterns from code-slice representations. The input to this layer is the centrality-aware feature tensor <inline-formula id="ieqn-21"><mml:math id="mml-ieqn-21"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x00D7;</mml:mo><mml:mi>d</mml:mi></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-22"><mml:math id="mml-ieqn-22"><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> denotes the number of centrality channels (three in this work), <italic>L</italic> is the number of code lines in the slice, and <inline-formula id="ieqn-23"><mml:math id="mml-ieqn-23"><mml:mi>d</mml:mi></mml:math></inline-formula> is the embedding dimension of each code line.</p>
<p>We adopt a multi-branch convolution architecture with <italic>M</italic> parallel branches. The <inline-formula id="ieqn-24"><mml:math id="mml-ieqn-24"><mml:mi>m</mml:mi></mml:math></inline-formula>-th branch applies a convolution operator <inline-formula id="ieqn-25"><mml:math id="mml-ieqn-25"><mml:msub><mml:mrow><mml:mi mathvariant="normal">C</mml:mi><mml:mi mathvariant="normal">o</mml:mi><mml:mi mathvariant="normal">n</mml:mi><mml:mi mathvariant="normal">v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> whose kernel height <inline-formula id="ieqn-26"><mml:math id="mml-ieqn-26"><mml:msub><mml:mi>k</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula> controls the receptive field along the code-line (sequence) dimension, while the kernel spans the full embedding dimension. Therefore, the convolution only slides along the sequence dimension, enabling efficient sequential feature extraction. The output of the <inline-formula id="ieqn-27"><mml:math id="mml-ieqn-27"><mml:mi>m</mml:mi></mml:math></inline-formula>-th branch is defined as:<disp-formula id="eqn-4"><label>(4)</label><mml:math id="mml-eqn-4" display="block"><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext>ReLU</mml:mtext></mml:mrow><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">(</mml:mo></mml:mrow></mml:mstyle><mml:msub><mml:mrow><mml:mtext>Conv</mml:mtext></mml:mrow><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mstyle scriptlevel="0"><mml:mrow><mml:mo maxsize="1.2em" minsize="1.2em">)</mml:mo></mml:mrow></mml:mstyle><mml:mo>,</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-28"><mml:math id="mml-ieqn-28"><mml:mrow><mml:mi mathvariant="normal">R</mml:mi><mml:mi mathvariant="normal">e</mml:mi><mml:mi mathvariant="normal">L</mml:mi><mml:mi mathvariant="normal">U</mml:mi></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is the activation function. With a valid convolution (stride 1, no padding), the resulting feature map satisfies <inline-formula id="ieqn-29"><mml:math id="mml-ieqn-29"><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mo stretchy="false">(</mml:mo><mml:mi>L</mml:mi><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x00D7;</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-30"><mml:math id="mml-ieqn-30"><mml:msub><mml:mi>C</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:math></inline-formula> is the number of output channels (filters) in the <inline-formula id="ieqn-31"><mml:math id="mml-ieqn-31"><mml:mi>m</mml:mi></mml:math></inline-formula>-th branch.</p>
<p>To obtain a fixed-length representation for each branch, we perform global max pooling over the sequence dimension:<disp-formula id="eqn-5"><label>(5)</label><mml:math id="mml-eqn-5" display="block"><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext>GMP</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:math></disp-formula>which yields a compact vector <inline-formula id="ieqn-32"><mml:math id="mml-ieqn-32"><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>m</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>. The multi-scale features from all branches are then concatenated to form the unified sequential representation:<disp-formula id="eqn-6"><label>(6)</label><mml:math id="mml-eqn-6" display="block"><mml:msub><mml:mi>z</mml:mi><mml:mi>C</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Concat</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mi>M</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></disp-formula></p>
<p>Finally, we apply dropout and a linear projection to produce the output of the sequential convolution layer:<disp-formula id="eqn-7"><label>(7)</label><mml:math id="mml-eqn-7" display="block"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>C</mml:mi></mml:msub><mml:mo>&#x22C5;</mml:mo><mml:mrow><mml:mtext>Dropout</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>z</mml:mi><mml:mi>C</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>C</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-33"><mml:math id="mml-ieqn-33"><mml:msub><mml:mi>W</mml:mi><mml:mi>C</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-34"><mml:math id="mml-ieqn-34"><mml:msub><mml:mi>b</mml:mi><mml:mi>C</mml:mi></mml:msub></mml:math></inline-formula> are the weight matrix and bias vector of the linear projection layer, respectively, and <inline-formula id="ieqn-35"><mml:math id="mml-ieqn-35"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> serves as the shallow sequential feature for subsequent parallel attention and feature fusion.</p>
</sec>
<sec id="s3_3_2">
<label>3.3.2</label>
<title>Parallel Attention Layer</title>
<p>The parallel attention mechanism fuses channel and spatial attention to enhance the deep semantic representation of code sequences, thereby improving the precision of vulnerability detection. We first apply a pointwise linear projection along the channel dimension at each spatial position to obtain attention features. This operation is equivalent to a shared fully connected transformation applied independently at each position, and is commonly implemented as a <inline-formula id="ieqn-36"><mml:math id="mml-ieqn-36"><mml:mn>1</mml:mn><mml:mo>&#x00D7;</mml:mo><mml:mn>1</mml:mn></mml:math></inline-formula> convolution. We then perform channel and spatial reweighting within each group. The calculation is defined as:<disp-formula id="eqn-8"><label>(8)</label><mml:math id="mml-eqn-8" display="block"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>A</mml:mi></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>A</mml:mi></mml:msub><mml:mo>,</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-37"><mml:math id="mml-ieqn-37"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> denotes the projected feature map, <inline-formula id="ieqn-38"><mml:math id="mml-ieqn-38"><mml:msub><mml:mi>W</mml:mi><mml:mi>A</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:math></inline-formula> are the trainable weights and biases of the projection, and <inline-formula id="ieqn-39"><mml:math id="mml-ieqn-39"><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> is the number of attention input channels.</p>
<p>The attention input <inline-formula id="ieqn-40"><mml:math id="mml-ieqn-40"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> is divided into <italic>G</italic> groups along the channel dimension, with each group containing the same number of channels. The <inline-formula id="ieqn-41"><mml:math id="mml-ieqn-41"><mml:mi>g</mml:mi></mml:math></inline-formula>-th group is denoted by <inline-formula id="ieqn-42"><mml:math id="mml-ieqn-42"><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula>. Channel and spatial attention are then applied to each group, producing the output <inline-formula id="ieqn-43"><mml:math id="mml-ieqn-43"><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula>, as defined by:<disp-formula id="eqn-9"><label>(9)</label><mml:math id="mml-eqn-9" display="block"><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>,</mml:mo><mml:mspace width="1em" /><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo>,</mml:mo></mml:math></disp-formula>where <inline-formula id="ieqn-44"><mml:math id="mml-ieqn-44"><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mtext>in</mml:mtext></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> denote the input and output tensors of channel attention, and <inline-formula id="ieqn-45"><mml:math id="mml-ieqn-45"><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mtext>in</mml:mtext></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula> denote the input and output tensors of spatial attention.</p>
<p>The channel and spatial attention computations are defined as:<disp-formula id="eqn-10"><label>(10)</label><mml:math id="mml-eqn-10" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>&#x03C3;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mtext>Pool</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi>&#x03C3;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mrow><mml:mtext>GN</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>S</mml:mi><mml:mo>,</mml:mo><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><inline-formula id="ieqn-46"><mml:math id="mml-ieqn-46"><mml:mtext>Pool</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is a pooling operation, <inline-formula id="ieqn-47"><mml:math id="mml-ieqn-47"><mml:mtext>GN</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> is a group normalization operation, <inline-formula id="ieqn-48"><mml:math id="mml-ieqn-48"><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>C</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are the weights and biases for channel attention, and <inline-formula id="ieqn-49"><mml:math id="mml-ieqn-49"><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mi>S</mml:mi><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula> are the weights and biases for spatial attention. <inline-formula id="ieqn-50"><mml:math id="mml-ieqn-50"><mml:mi>&#x03C3;</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> denotes the Sigmoid activation function.</p>
<p>Once attention is applied in both channel and spatial dimensions, the resulting feature maps are fused to generate final attention-enhanced feature representations, thereby improving interaction between dimensions.
<disp-formula id="eqn-11"><label>(11)</label><mml:math id="mml-eqn-11" display="block"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Shuffle</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mo stretchy="false">[</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mn>0</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:mo>&#x2026;</mml:mo><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>G</mml:mi><mml:mo>&#x2212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">]</mml:mo><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:math></disp-formula></p>
<p><inline-formula id="ieqn-51"><mml:math id="mml-ieqn-51"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup><mml:mo>&#x2208;</mml:mo><mml:msup><mml:mrow><mml:mi mathvariant="double-struck">R</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>H</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:math></inline-formula>, where <inline-formula id="ieqn-52"><mml:math id="mml-ieqn-52"><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> denotes the number of output attention channels. The function <inline-formula id="ieqn-53"><mml:math id="mml-ieqn-53"><mml:mtext>Shuffle</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> indicates a shuffling and reorganization operation over the group-wise outputs <inline-formula id="ieqn-54"><mml:math id="mml-ieqn-54"><mml:msub><mml:mi>X</mml:mi><mml:mrow><mml:mi>A</mml:mi><mml:mo>,</mml:mo><mml:mi>g</mml:mi></mml:mrow></mml:msub></mml:math></inline-formula>.</p>
</sec>
<sec id="s3_3_3">
<label>3.3.3</label>
<title>Feature Fusion and Output Layer</title>
<p>After extracting features through sequential convolution and parallel attention, we obtain the shallow code features <inline-formula id="ieqn-55"><mml:math id="mml-ieqn-55"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> from the sequential convolution and the deep semantic features <inline-formula id="ieqn-56"><mml:math id="mml-ieqn-56"><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msubsup></mml:math></inline-formula> from the parallel attention. These are then fused and passed through a fully connected classification layer and a Softmax function to obtain the final classification result:<disp-formula id="eqn-12"><label>(12)</label><mml:math id="mml-eqn-12" display="block"><mml:mtable columnalign="right left right left right left right left right left right left" rowspacing="3pt" columnspacing="0em 2em 0em 2em 0em 2em 0em 2em 0em 2em 0em" displaystyle="true"><mml:mtr><mml:mtd /><mml:mtd><mml:mi>X</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Concat</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mi>A</mml:mi><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo>,</mml:mo><mml:msubsup><mml:mi>X</mml:mi><mml:mi>C</mml:mi><mml:mrow><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:mrow></mml:msubsup><mml:mo stretchy="false">)</mml:mo><mml:mo>,</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd /><mml:mtd><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mtext>Softmax</mml:mtext></mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:msub><mml:mi>W</mml:mi><mml:mi>F</mml:mi></mml:msub><mml:mo>&#x00D7;</mml:mo><mml:mi>X</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>F</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo><mml:mo>.</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula></p>
<p><inline-formula id="ieqn-57"><mml:math id="mml-ieqn-57"><mml:mtext>Concat</mml:mtext><mml:mo stretchy="false">(</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo>,</mml:mo><mml:mo>&#x22C5;</mml:mo><mml:mo stretchy="false">)</mml:mo></mml:math></inline-formula> denotes the concatenation of feature tensors along the channel dimension. Before the fully connected classification layer, we apply pooling and flattening to the fused feature map. <inline-formula id="ieqn-58"><mml:math id="mml-ieqn-58"><mml:msub><mml:mi>W</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:math></inline-formula> and <inline-formula id="ieqn-59"><mml:math id="mml-ieqn-59"><mml:msub><mml:mi>b</mml:mi><mml:mi>F</mml:mi></mml:msub></mml:math></inline-formula> are the weight matrix and bias vector of the fully connected layer, respectively.</p>
</sec>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Experimental Settings</title>
<sec id="s4_1">
<label>4.1</label>
<title>Dataset</title>
<p>This study evaluates VulSCP on C/C&#x002B;&#x002B; function-level vulnerability detection. Our main dataset is constructed from three sources:<list list-type="bullet">
<list-item>
<p>National Vulnerability Database (NVD) [<xref ref-type="bibr" rid="ref-1">1</xref>]: 1384 vulnerable C/C&#x002B;&#x002B; function samples.</p></list-item>
<list-item>
<p>Software Assurance Reference Dataset (SARD) [<xref ref-type="bibr" rid="ref-46">46</xref>]: 12,303 vulnerable and 21,057 non-vulnerable C/C&#x002B;&#x002B; function samples.</p></list-item>
<list-item>
<p>BigVul (non-vulnerable set) [<xref ref-type="bibr" rid="ref-47">47</xref>]: 5913 non-vulnerable C/C&#x002B;&#x002B; function samples randomly sampled from the BigVul corpus.</p></list-item>
</list></p>
<p>We directly use the binary labels provided by the corresponding sources (vulnerable vs. non-vulnerable) without manual relabeling.</p>
<p>During sample collection, we first normalize code (e.g., comment removal and lexical normalization) to improve parsing robustness, and then check whether the normalized function is an exact duplicate of a previously collected sample. If an exact duplicate is found, it is discarded immediately; therefore, the sample counts reported above correspond to the final dataset used in our experiments. To mitigate data leakage, each function sample is assigned to exactly one split (training/validation/test), and all model selection is performed on the validation split only.</p>
<p>To examine cross-dataset generalization, we additionally evaluate on the ReVeal benchmark dataset for vulnerable function detection [<xref ref-type="bibr" rid="ref-48">48</xref>]. A summary of the dataset statistics is provided in <xref ref-type="table" rid="table-1">Table 1</xref>.</p>
<table-wrap id="table-1">
<label>Table 1</label>
<caption>
<title>Dataset statistics for vulnerability detection experiments.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Dataset</th>
<th>Samples</th>
<th>Vul</th>
<th>Non-vul</th>
<th>Vul Ratio (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td>NVD&#x002B;SARD&#x002B;BigVul</td>
<td>40,657</td>
<td>13,687</td>
<td>26,970</td>
<td>33.66</td>
</tr>
<tr>
<td>ReVeal</td>
<td>18,169</td>
<td>1664</td>
<td>16,505</td>
<td>9.16</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4_2">
<label>4.2</label>
<title>Evaluation Metric</title>
<p>The following metrics are used to evaluate the model&#x2019;s performance on vulnerability detection tasks:<list list-type="bullet">
<list-item>
<p>Accuracy: The proportion of correctly predicted samples among all samples. Higher accuracy indicates that the model&#x2019;s predictions are closer to the ground truth.</p></list-item>
<list-item>
<p>False Positive Rate (FPR): The proportion of negative samples incorrectly classified as positive. A lower FPR reflects better performance in identifying non-vulnerable code.</p></list-item>
<list-item>
<p>False Negative Rate (FNR): The proportion of positive samples incorrectly classified as negative. A lower FNR implies the model is more effective at detecting true vulnerabilities.</p></list-item>
<list-item>
<p>F1 Score: The harmonic mean of precision and recall provides a balanced evaluation of the model&#x2019;s overall performance.</p></list-item>
<list-item>
<p>Runtime Overhead: The time taken by the model to perform vulnerability detection. Lower runtime indicates higher efficiency and better scalability for large-scale code analysis.</p></list-item>
</list></p>
</sec>
<sec id="s4_3">
<label>4.3</label>
<title>Experimental Setup</title>
<p>We use a random function-level split of the dataset into training, validation, and test sets with a ratio of 7:2:1, rather than adopting a project-wise split. To reduce the effect of training randomness, we keep the data split fixed and repeat the training and evaluation process five times with different random seeds. Unless otherwise specified, all results in this paper are reported as mean <inline-formula id="ieqn-60"><mml:math id="mml-ieqn-60"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> standard deviation over the five independent runs under the same experimental setting.</p>
<p>The training batch size is set to 32, and the model is trained for 300 epochs with a learning rate of 0.001. The AdamW optimizer is used along with a cross-entropy loss function. In the sequential convolution module, we use 10 parallel convolution branches with kernel heights ranging from 1 to 10 to capture multi-scale local patterns, and set the dropout rate to 0.1 for regularization. The output hidden dimension of the sequential convolution module is set to 128 with a sequence width <inline-formula id="ieqn-61"><mml:math id="mml-ieqn-61"><mml:mi>W</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> of 100. The parallel attention module is configured with 64 input channels <inline-formula id="ieqn-62"><mml:math id="mml-ieqn-62"><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>in</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula>, 8 parallel groups <italic>G</italic>, and an output dimension <inline-formula id="ieqn-63"><mml:math id="mml-ieqn-63"><mml:msub><mml:mi>a</mml:mi><mml:mrow><mml:mtext>out</mml:mtext></mml:mrow></mml:msub></mml:math></inline-formula> of 512. Joern is used to extract program dependency graphs from the source code, networkx is applied to compute graph centrality metrics, and sent2vec is employed to generate embeddings for code segments.</p>
<p>The key hardware and software configurations of the experimental environment include a 12th Gen Intel(R) Core(TM) i9-13900H 2.60 GHz CPU, an NVIDIA GeForce RTX 4060 GPU, 32 GB of RAM, and Ubuntu 22.</p>
<p>For a reproducible runtime comparison with the prompt-based LLM baselines, we specify their deployment environment and end-to-end timing protocol. These methods perform vulnerability detection by sending prompts to deployed large language models through an OpenAI-compatible API. The models were served on a dedicated inference server with <inline-formula id="ieqn-64"><mml:math id="mml-ieqn-64"><mml:mn>8</mml:mn><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> NVIDIA H20 96 GB GPUs, an Intel Xeon Platinum 8480 CPU, 64 vCPUs, 768 GB RAM, and a 4 TB NVMe SSD, running Ubuntu Server 22.04.5 LTS, NVIDIA Driver 550.54.14, Docker Engine 28.5.1, and NVIDIA Container Toolkit 1.18.0. Inference was deployed via vLLM v0.18.0. During evaluation, prompt requests were sent from a local client machine to the server, and the reported runtime includes the end-to-end overhead under this deployment setting.</p>
</sec>
<sec id="s4_4">
<label>4.4</label>
<title>Baselines</title>
<p>The baseline methods in this study span a variety of vulnerability detection techniques, including traditional rule-based tools, deep learning-based approaches, and cutting-edge large language model (LLM) frameworks. These baselines cover recent and representative developments in vulnerability detection technology.</p>
<p>The rule-based tools include Checkmarx [<xref ref-type="bibr" rid="ref-24">24</xref>], Flawfinder [<xref ref-type="bibr" rid="ref-19">19</xref>], and RATS [<xref ref-type="bibr" rid="ref-25">25</xref>]. Checkmarx identifies vulnerabilities based on expert-defined rules, Flawfinder detects potential security issues using predefined patterns, and RATS performs static analysis to uncover security flaws in source code. These tools scan and analyze code by matching it against pre-established rules and patterns, offering efficient detection of common vulnerabilities.</p>
<p>Deep learning-based approaches include AugSliceVul [<xref ref-type="bibr" rid="ref-49">49</xref>], TokenCNN [<xref ref-type="bibr" rid="ref-26">26</xref>], VulDeePecker [<xref ref-type="bibr" rid="ref-6">6</xref>], SySeVR [<xref ref-type="bibr" rid="ref-8">8</xref>], and Devign [<xref ref-type="bibr" rid="ref-10">10</xref>]. TokenCNN converts source code into vector representations and trains a convolutional neural network (CNN) for vulnerability detection. VulDeePecker extracts code slices and utilizes a bidirectional long short-term memory (BiLSTM) network for classification. SySeVR uses control and data flow to extract program slices and applies a BiLSTM model for detection. Devign performs deep program analysis to extract comprehensive semantic graph representations and employs general-purpose graph neural networks to detect vulnerabilities. These deep learning methods enable the identification of complex code patterns and enhance detection capabilities. AugSliceVul augments the program dependency graph and leverages an optimized CodeBERT encoder to capture richer structural dependencies and semantic context for vulnerability classification.</p>
<p>LLM-based approaches can be classified into two categories. The first involves prompt-based detection, where APIs of cutting-edge LLMs are directly called for zero-shot vulnerability detection. The models used include the Qwen2.5 series with 14, 32, and 72B parameters, the Qwen3 series with 8, 14, and 32B parameters, the GLM4 series with 9 and 32B parameters, and DeepSeek-v3. The second category includes VulLLM [<xref ref-type="bibr" rid="ref-16">16</xref>], which integrates a multi-task learning framework with data augmentation techniques and applies low-rank adaptation (LoRA) for efficient fine-tuning. VulLLM adapts general LLMs for the vulnerability detection task through domain-specific fine-tuning. In this study, four high-performing VulLLM models are selected as baselines, namely VulLLM-CL-7B, VulLLM-CL-13B, VulLLM-SC-7B, and VulLLM-SC-15B. These are based on the CodeLlama-7B/13B and StarCoder-7B/15B architectures and have been fine-tuned with supervised training specifically for vulnerability detection.</p>
<p>These baselines represent a comprehensive spectrum of methodologies, ranging from traditional rule-based systems to advanced deep learning and LLM-based approaches. Comparative results suggest that VulSCP has advantages in detection accuracy, inference efficiency, and the modeling of global semantic features and complex logical dependencies in source code.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Experimental Results and Analysis</title>
<sec id="s5_1">
<label>5.1</label>
<title>Overall Comparison with Baselines</title>
<p>In this section, we compare VulSCP with a diverse set of baselines using multiple evaluation metrics. In our experimental setting, increasing the window size leads to larger input representations and higher memory usage. Considering the trade-off between performance and resource consumption, the window size is set to 100 code lines. Samples with lengths close to this setting are used in the experiments.</p>
<p>As shown in <xref ref-type="table" rid="table-2">Table 2</xref>, the three rule-based tools, namely Checkmarx, Flawfinder, and RATS, exhibit limited detection performance. Their ACC values remain relatively low, ranging from 48.57% to 60.13%, with relatively high FPR and FNR, indicating that predefined rules and patterns are insufficient to cover diverse vulnerability forms in complex source code. TokenCNN achieves the lowest runtime overhead (0.22 s), but its ACC is only 72.33%, suggesting that a lightweight CNN operating on plain code representations is efficient but insufficient for reliable vulnerability detection.</p>
<table-wrap id="table-2">
<label>Table 2</label>
<caption>
<title>Performance comparison of vulnerability detection methods. All results are reported as mean <inline-formula id="ieqn-65"><mml:math id="mml-ieqn-65"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> standard deviation over five runs. The best results are <bold>bolded</bold> and the second-best are <underline>underlined</underline>. Abbreviations: P LLM (prompt-based LLM); FT LLM (fine-tuned LLM).</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center" width="30mm"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Type</th>
<th>Technique</th>
<th>FPR (%)</th>
<th>FNR (%)</th>
<th>ACC (%)</th>
<th>Time (s)</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="9">P LLM</td>
<td>Qwen2.5-14B</td>
<td><inline-formula id="ieqn-66"><mml:math id="mml-ieqn-66"><mml:msub><mml:mi>30.9</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.82</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-67"><mml:math id="mml-ieqn-67"><mml:msub><mml:mi>26.37</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.42</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-68"><mml:math id="mml-ieqn-68"><mml:msub><mml:mi>70.77</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.55</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>2.75</td>
</tr>
<tr>
<td>Qwen2.5-32B</td>
<td><inline-formula id="ieqn-69"><mml:math id="mml-ieqn-69"><mml:msub><mml:mi>30.76</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.59</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-70"><mml:math id="mml-ieqn-70"><mml:msub><mml:mi>29.16</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.48</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-71"><mml:math id="mml-ieqn-71"><mml:msub><mml:mi>69.83</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.43</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>2.24</td>
</tr>
<tr>
<td>Qwen2.5-72B</td>
<td><inline-formula id="ieqn-72"><mml:math id="mml-ieqn-72"><mml:msub><mml:mi>27.32</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.55</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-73"><mml:math id="mml-ieqn-73"><mml:msub><mml:mi>21.37</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.36</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-74"><mml:math id="mml-ieqn-74"><mml:msub><mml:mi>74.87</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.35</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>2.06</td>
</tr>
<tr>
<td>Qwen3-8B</td>
<td><inline-formula id="ieqn-75"><mml:math id="mml-ieqn-75"><mml:msub><mml:mi>25.78</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.79</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-76"><mml:math id="mml-ieqn-76"><mml:msub><mml:mi>13.96</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.45</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-77"><mml:math id="mml-ieqn-77"><mml:msub><mml:mi>78.58</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.56</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>23.1</td>
</tr>
<tr>
<td>Qwen3-14B</td>
<td><inline-formula id="ieqn-78"><mml:math id="mml-ieqn-78"><mml:msub><mml:mi>23.58</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.70</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-79"><mml:math id="mml-ieqn-79"><mml:msub><mml:mi>9.63</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.29</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-80"><mml:math id="mml-ieqn-80"><mml:msub><mml:mi>81.56</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.51</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>22.13</td>
</tr>
<tr>
<td>Qwen3-32B</td>
<td><inline-formula id="ieqn-81"><mml:math id="mml-ieqn-81"><mml:msub><mml:mi>21.37</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.59</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-82"><mml:math id="mml-ieqn-82"><mml:msub><mml:mi>9.31</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.28</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-83"><mml:math id="mml-ieqn-83"><mml:msub><mml:mi>83.03</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.49</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>30.11</td>
</tr>
<tr>
<td>GLM4-9B</td>
<td><inline-formula id="ieqn-84"><mml:math id="mml-ieqn-84"><mml:msub><mml:mi>22.44</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.86</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-85"><mml:math id="mml-ieqn-85"><mml:msub><mml:mi>18.78</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.41</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-86"><mml:math id="mml-ieqn-86"><mml:msub><mml:mi>78.91</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.43</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>1.95</td>
</tr>
<tr>
<td>GLM4-32B</td>
<td><inline-formula id="ieqn-87"><mml:math id="mml-ieqn-87"><mml:msub><mml:mi>27.04</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.88</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-88"><mml:math id="mml-ieqn-88"><mml:msub><mml:mi>15.05</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.42</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-89"><mml:math id="mml-ieqn-89"><mml:msub><mml:mi>77.38</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.56</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>3.34</td>
</tr>
<tr>
<td>DeepSeek-v3</td>
<td><inline-formula id="ieqn-90"><mml:math id="mml-ieqn-90"><mml:msub><mml:mi>21.65</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.64</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-91"><mml:math id="mml-ieqn-91"><mml:msub><mml:mi>15.57</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.46</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-92"><mml:math id="mml-ieqn-92"><mml:msub><mml:mi>80.59</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.42</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>3.21</td>
</tr>
<tr>
<td rowspan="4">FT LLM</td>
<td>VulLLM-CL-7B</td>
<td><inline-formula id="ieqn-93"><mml:math id="mml-ieqn-93"><mml:msub><mml:mi>24.98</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.71</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-94"><mml:math id="mml-ieqn-94"><mml:msub><mml:mi>7.65</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.29</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-95"><mml:math id="mml-ieqn-95"><mml:msub><mml:mi>81.41</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.35</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>9.21</td>
</tr>
<tr>
<td>VulLLM-CL-13B</td>
<td><inline-formula id="ieqn-96"><mml:math id="mml-ieqn-96"><mml:msub><mml:mi>22.1</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.68</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-97"><mml:math id="mml-ieqn-97"><mml:msub><mml:mi>7.98</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.27</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-98"><mml:math id="mml-ieqn-98"><mml:msub><mml:mi>83.1</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.33</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>9.57</td>
</tr>
<tr>
<td>VulLLM-SC-7B</td>
<td><inline-formula id="ieqn-99"><mml:math id="mml-ieqn-99"><mml:msub><mml:mi>27.9</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.67</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-100"><mml:math id="mml-ieqn-100"><mml:msub><mml:mi>6.09</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.33</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-101"><mml:math id="mml-ieqn-101"><mml:msub><mml:mi>80.21</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.32</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>9.34</td>
</tr>
<tr>
<td>VulLLM-SC-15B</td>
<td><inline-formula id="ieqn-102"><mml:math id="mml-ieqn-102"><mml:msub><mml:mi>26.1</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.42</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-103"><mml:math id="mml-ieqn-103"><mml:msub><mml:mi>6.78</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.58</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-104"><mml:math id="mml-ieqn-104"><mml:msub><mml:mi>81.02</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.34</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>9.79</td>
</tr>
<tr>
<td rowspan="9">Non-LLM</td>
<td>Checkmarx</td>
<td><inline-formula id="ieqn-105"><mml:math id="mml-ieqn-105"><mml:msub><mml:mi>27.24</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.23</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-106"><mml:math id="mml-ieqn-106"><mml:msub><mml:mi>68.9</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.79</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-107"><mml:math id="mml-ieqn-107"><mml:msub><mml:mi>58.97</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.67</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>&#x2013;</td>
</tr>
<tr>
<td>Flawfinder</td>
<td><inline-formula id="ieqn-108"><mml:math id="mml-ieqn-108"><mml:msub><mml:mi>26.71</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.20</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-109"><mml:math id="mml-ieqn-109"><mml:msub><mml:mi>65.97</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.98</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-110"><mml:math id="mml-ieqn-110"><mml:msub><mml:mi>60.13</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.75</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>&#x2013;</td>
</tr>
<tr>
<td>RATS</td>
<td><inline-formula id="ieqn-111"><mml:math id="mml-ieqn-111"><mml:msub><mml:mi>54.51</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.34</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-112"><mml:math id="mml-ieqn-112"><mml:msub><mml:mi>45.6</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.52</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-113"><mml:math id="mml-ieqn-113"><mml:msub><mml:mi>48.57</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.29</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>&#x2013;</td>
</tr>
<tr>
<td>TokenCNN</td>
<td><inline-formula id="ieqn-114"><mml:math id="mml-ieqn-114"><mml:msub><mml:mi>27.88</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.78</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-115"><mml:math id="mml-ieqn-115"><mml:msub><mml:mi>27.67</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.58</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-116"><mml:math id="mml-ieqn-116"><mml:msub><mml:mi>72.33</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.70</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold>0.22</bold></td>
</tr>
<tr>
<td>Devign</td>
<td><inline-formula id="ieqn-117"><mml:math id="mml-ieqn-117"><mml:msub><mml:mi>21.72</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.65</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-118"><mml:math id="mml-ieqn-118"><mml:msub><mml:mi>8.89</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.30</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-119"><mml:math id="mml-ieqn-119"><mml:msub><mml:mi>82.63</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.33</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>10.41</td>
</tr>
<tr>
<td>SySeVR</td>
<td><inline-formula id="ieqn-120"><mml:math id="mml-ieqn-120"><mml:msub><mml:mi>22.89</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.59</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-121"><mml:math id="mml-ieqn-121"><mml:msub><mml:mi>14.19</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.41</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-122"><mml:math id="mml-ieqn-122"><mml:msub><mml:mi>80.08</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.33</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>7.38</td>
</tr>
<tr>
<td>VulDeePecker</td>
<td><inline-formula id="ieqn-123"><mml:math id="mml-ieqn-123"><mml:msub><mml:mi>24.48</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.52</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-124"><mml:math id="mml-ieqn-124"><mml:msub><mml:mi>17.8</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.85</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-125"><mml:math id="mml-ieqn-125"><mml:msub><mml:mi>77.75</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.60</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>6.95</td>
</tr>
<tr>
<td>AugSliceVul</td>
<td><underline><inline-formula id="ieqn-126"><mml:math id="mml-ieqn-126"><mml:msub><mml:mi>20.63</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.73</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-127"><mml:math id="mml-ieqn-127"><mml:msub><mml:mi>9.03</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.34</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-128"><mml:math id="mml-ieqn-128"><mml:msub><mml:mi>83.41</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.32</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td>9.57</td>
</tr>
<tr>
<td><bold>VulSCP</bold></td>
<td><bold><inline-formula id="ieqn-129"><mml:math id="mml-ieqn-129"><mml:msub><mml:mi>17.25</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.58</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-130"><mml:math id="mml-ieqn-130"><mml:msub><mml:mi>13.24</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.27</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-131"><mml:math id="mml-ieqn-131"><mml:msub><mml:mi>85.14</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.32</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><underline>1.89</underline></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>VulDeePecker and SySeVR, which are both based on program slicing and bidirectional recurrent modeling, achieve better results than TokenCNN. Compared with VulDeePecker, SySeVR reduces FPR from 24.48% to 22.89% and FNR from 17.80% to 14.19%, while improving ACC from 77.75% to 80.08%. This suggests that incorporating control-flow information is beneficial. However, both methods still underperform VulSCP, whose ACC reaches 85.14%. The gap indicates that slice-based sequential modeling alone remains insufficient for capturing richer semantic dependencies in code.</p>
<p>Among the non-LLM deep learning baselines, AugSliceVul [<xref ref-type="bibr" rid="ref-49">49</xref>] is the strongest competitor, achieving 83.41% ACC, 20.63% FPR, and 9.03% FNR. Compared with AugSliceVul, VulSCP improves ACC by 1.73 percentage points and reduces FPR by 3.38 percentage points, while requiring substantially less runtime (1.89 vs. 9.57 s). Although AugSliceVul attains a lower FNR, the overall comparison indicates that VulSCP provides a better balance between accuracy, false-alarm control, and efficiency. Devign, as a GNN-based baseline, also achieves competitive performance with 82.63% ACC and 8.89% FNR, but its runtime reaches 10.41 s, which is more than five times that of VulSCP. This result highlights the advantage of VulSCP in achieving competitive semantic modeling capability without incurring the higher computational overhead of explicit graph neural reasoning.</p>
<p>Among the prompt-based LLM approaches, GLM4-9B and DeepSeek-v3 achieve 78.91% and 80.59% ACC, respectively, with runtime overheads of 1.95 and 3.21 s. The Qwen2.5 series shows runtime relatively close to that of VulSCP, but its detection metrics remain clearly lower. In contrast, the Qwen3 inference models obtain stronger FNR performance, with the best value reduced to 9.31%, indicating improved sensitivity to vulnerable samples. However, this gain is accompanied by substantially higher runtime. Compared with the evaluated LLM-based methods, VulSCP achieves the highest ACC (85.14%) and the lowest FPR (17.25%), while maintaining a low runtime overhead of 1.89 s. These results suggest that VulSCP offers a favorable balance between detection effectiveness and efficiency relative to the evaluated LLM-based methods.</p>
<p>For the fine-tuned LLM-based models (VulLLM series), a similar trade-off can be observed. Although these models further reduce FNR by about 5.2%&#x2013;7.1% relative to VulSCP, they also exhibit higher FPR, indicating a tendency to over-predict vulnerable samples. In addition, their runtime overhead remains notably higher than that of VulSCP. Therefore, while fine-tuned LLMs show strong sensitivity to vulnerability samples, VulSCP maintains a more balanced error profile together with substantially lower computational cost.</p>
<p>Overall, VulSCP achieves the highest ACC and the lowest FPR among all compared methods, while keeping runtime low. These results show that the proposed framework compares favorably with traditional tools, recent and representative deep learning baselines, and the considered LLM-based approaches.</p>
<p>To further evaluate the classification capability of VulSCP under different decision thresholds, we additionally report the Receiver Operating Characteristic (ROC) curve and the Precision&#x2013;Recall (PR) curve, as shown in <xref ref-type="fig" rid="fig-5">Fig. 5</xref>. Based on the statistics of five independent runs, VulSCP achieves a mean AUC of <inline-formula id="ieqn-132"><mml:math id="mml-ieqn-132"><mml:mn>0.927</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>0.004</mml:mn></mml:math></inline-formula> and a mean Average Precision (AP) of <inline-formula id="ieqn-133"><mml:math id="mml-ieqn-133"><mml:mn>0.886</mml:mn><mml:mo>&#x00B1;</mml:mo><mml:mn>0.006</mml:mn></mml:math></inline-formula>, indicating strong and stable overall discriminative ability. The ROC curve consistently bends toward the upper-left corner, suggesting that VulSCP can achieve a high true positive rate under a low false positive rate. The PR curve further shows that the model maintains high precision as recall increases, reflecting robust positive-class recognition. Moreover, the narrow standard-deviation bands around both curves demonstrate the stability and robustness of VulSCP across repeated experiments.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>ROC and Precision&#x2013;Recall curves of VulSCP over five independent runs (mean curve with standard-deviation band).</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-5.tif"/>
</fig>
</sec>
<sec id="s5_2">
<label>5.2</label>
<title>Cross-Dataset Generalization Analysis</title>
<p>To further assess the generalization ability of VulSCP under distribution shift, we conduct cross-dataset experiments. Specifically, the model is trained on the source-domain dataset NVD&#x002B;SARD&#x002B;BigVul and directly tested on the target-domain dataset ReVeal, without any fine-tuning on the target domain. As summarized in <xref ref-type="table" rid="table-1">Table 1</xref>, the two domains differ substantially in both scale and class distribution, making this setting a more challenging evaluation of transferability.</p>

<p>The cross-dataset results are summarized in <xref ref-type="table" rid="table-3">Table 3</xref>.</p>
<table-wrap id="table-3">
<label>Table 3</label>
<caption>
<title>Performance comparison on the cross-dataset generalization. All results are reported as mean <inline-formula id="ieqn-137"><mml:math id="mml-ieqn-137"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> standard deviation over five runs. The best results are <bold>bolded</bold> and the second-best are <underline>underlined</underline>.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Type</th>
<th>Method</th>
<th>FPR (%)</th>
<th>FNR (%)</th>
<th>ACC (%)</th>
<th>Time (s)</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">LLM</td>
<td>Qwen3-32B</td>
<td><inline-formula id="ieqn-138"><mml:math id="mml-ieqn-138"><mml:msub><mml:mi>39.36</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.23</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-139"><mml:math id="mml-ieqn-139"><mml:msub><mml:mi>40.16</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.44</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-140"><mml:math id="mml-ieqn-140"><mml:msub><mml:mi>60.56</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.30</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>41.91</td>
</tr>
<tr>
<td>GLM4-9B</td>
<td><inline-formula id="ieqn-141"><mml:math id="mml-ieqn-141"><mml:msub><mml:mi>28.95</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.09</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-142"><mml:math id="mml-ieqn-142"><mml:msub><mml:mi>56.52</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.12</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-143"><mml:math id="mml-ieqn-143"><mml:msub><mml:mi>68.37</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.15</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>2.01</td>
</tr>
<tr>
<td>DeepSeek-v3</td>
<td><inline-formula id="ieqn-144"><mml:math id="mml-ieqn-144"><mml:msub><mml:mi>34.38</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.13</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-145"><mml:math id="mml-ieqn-145"><mml:msub><mml:mi>51.86</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.22</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-146"><mml:math id="mml-ieqn-146"><mml:msub><mml:mi>64.02</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.14</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>3.28</td>
</tr>
<tr>
<td rowspan="6">Non-LLM</td>
<td>TokenCNN</td>
<td><inline-formula id="ieqn-147"><mml:math id="mml-ieqn-147"><mml:msub><mml:mi>26.8</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.38</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-148"><mml:math id="mml-ieqn-148"><mml:msub><mml:mi>69.53</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.74</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-149"><mml:math id="mml-ieqn-149"><mml:msub><mml:mi>69.29</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.56</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold>0.24</bold></td>
</tr>
<tr>
<td>Devign</td>
<td><inline-formula id="ieqn-150"><mml:math id="mml-ieqn-150"><mml:msub><mml:mi>30.25</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.12</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-151"><mml:math id="mml-ieqn-151"><mml:msub><mml:mi>55.68</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.55</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-152"><mml:math id="mml-ieqn-152"><mml:msub><mml:mi>67.22</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.16</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>11.83</td>
</tr>
<tr>
<td>SySeVR</td>
<td><inline-formula id="ieqn-153"><mml:math id="mml-ieqn-153"><mml:msub><mml:mi>15.04</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.34</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-154"><mml:math id="mml-ieqn-154"><mml:msub><mml:mi>77.69</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.72</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-155"><mml:math id="mml-ieqn-155"><mml:msub><mml:mi>78.67</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.24</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>8.2</td>
</tr>
<tr>
<td>VulDeePecker</td>
<td><inline-formula id="ieqn-156"><mml:math id="mml-ieqn-156"><mml:msub><mml:mi>11.04</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.47</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-157"><mml:math id="mml-ieqn-157"><mml:msub><mml:mi>86.24</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.40</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-158"><mml:math id="mml-ieqn-158"><mml:msub><mml:mi>82.07</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.29</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td>7.79</td>
</tr>
<tr>
<td>AugSliceVul</td>
<td><underline><inline-formula id="ieqn-159"><mml:math id="mml-ieqn-159"><mml:msub><mml:mi>11.02</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.31</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-160"><mml:math id="mml-ieqn-160"><mml:msub><mml:mi>55.16</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.27</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-161"><mml:math id="mml-ieqn-161"><mml:msub><mml:mi>84.95</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.23</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td>10.46</td>
</tr>
<tr>
<td><bold>VulSCP</bold></td>
<td><bold><inline-formula id="ieqn-162"><mml:math id="mml-ieqn-162"><mml:msub><mml:mi>9.74</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.21</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-163"><mml:math id="mml-ieqn-163"><mml:msub><mml:mi>55.63</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.49</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-164"><mml:math id="mml-ieqn-164"><mml:msub><mml:mi>85.55</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.11</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><underline>1.95</underline></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Among all compared methods, VulSCP achieves the highest ACC (85.55%) and the lowest FPR (9.74%), while maintaining a runtime of only 1.95 s. Compared with the strongest non-LLM baseline AugSliceVul, VulSCP improves ACC from 84.95% to 85.55% and further reduces FPR from 11.02% to 9.74%, with only a slight difference in FNR (55.16% vs. 55.63%). In addition, VulSCP shows the smallest ACC variance (<inline-formula id="ieqn-134"><mml:math id="mml-ieqn-134"><mml:msub><mml:mi>85.55</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.11</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>) and a lower FPR variance (<inline-formula id="ieqn-135"><mml:math id="mml-ieqn-135"><mml:msub><mml:mi>9.74</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.21</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>) than AugSliceVul (<inline-formula id="ieqn-136"><mml:math id="mml-ieqn-136"><mml:msub><mml:mi>11.02</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.31</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula>), indicating more stable performance across repeated runs. These results suggest that VulSCP maintains favorable cross-dataset generalization while preserving clear efficiency advantages.</p>
<p>The target domain is highly imbalanced, with only 9.16% vulnerable samples, so ACC alone is insufficient for a complete evaluation. Under this setting, some methods still obtain seemingly competitive ACC but exhibit extremely high FNR. For example, VulDeePecker and SySeVR achieve 82.07% and 78.67% ACC, respectively, yet their FNR values remain as high as 86.24% and 77.69%. This indicates that these models tend to fit the majority class and fail to adequately recognize vulnerable samples under cross-dataset distribution shift. By contrast, VulSCP attains higher ACC together with much lower FPR, indicating a more favorable error trade-off in the target domain.</p>
<p>The LLM-based methods are included here mainly for reference, rather than as strictly comparable cross-dataset transfer baselines, since they are not trained on NVD&#x002B;SARD&#x002B;BigVul and then transferred to ReVeal in the same way as the non-LLM models. Under this setting, some LLM-based methods show relatively favorable FNR performance on ReVeal, but their ACC remains clearly lower than that of VulSCP. For example, GLM4-9B achieves 68.37% ACC, while Qwen3-32B and DeepSeek-v3 reach only 60.56% and 64.02% ACC, respectively. This indicates that, although LLM-based methods may be more sensitive to vulnerable samples in this setting, their overall detection performance on ReVeal is still limited compared with VulSCP.</p>
</sec>
<sec id="s5_3">
<label>5.3</label>
<title>Ablation Study</title>
<sec id="s5_3_1">
<label>5.3.1</label>
<title>Ablation on the Parallel Attention Mechanism</title>
<p>To evaluate the impact of the parallel attention mechanism on the model&#x2019;s ability to capture long-range dependencies, we conducted an ablation study on the attention module. VulSCP is composed of a sequential convolution module and a parallel attention module, the latter of which consists of a channel attention module and a spatial attention module. Accordingly, we designed three variant models for comparative experiments:<list list-type="bullet">
<list-item>
<p>VulSCP: Includes both the sequential convolution layer and the parallel attention layer, which integrates channel and spatial attention modules.</p></list-item>
<list-item>
<p>r.m. Spatial Attention: Includes the sequential convolution layer and only the channel attention module from the parallel attention layer, with the spatial attention module removed.</p></list-item>
<list-item>
<p>r.m. Channel Attention: Includes the sequential convolution layer and only the spatial attention module from the parallel attention layer, with the channel attention module removed.</p></list-item>
<list-item>
<p>r.m. Parallel Attention: Includes only the sequential convolution layer, with all attention mechanisms removed.</p></list-item>
</list></p>
<p>The ablation results are shown in <xref ref-type="fig" rid="fig-6">Fig. 6</xref>. First, the model with all attention mechanisms removed (r.m. Parallel Attention) performs the worst across all evaluation metrics, indicating the baseline performance of the model without any attention enhancement. Second, when either the channel or spatial attention module is removed, the model shows inferior performance in terms of loss, but still outperforms the variant without any attention module in terms of accuracy and weighted F1-score (r.m. Spatial Attention and r.m. Channel Attention). This demonstrates that incorporating either attention mechanism individually can still contribute positively to model performance. Finally, the complete VulSCP model achieves the best results across all metrics, confirming that the parallel attention mechanism significantly enhances the model&#x2019;s performance, particularly in accuracy and F1-score. This indicates that the parallel attention layer can more effectively extract and leverage the features produced by the sequential convolution layer.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Results of the ablation experiments.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-6.tif"/>
</fig>
<p>In conclusion, the experimental results suggest that the parallel attention mechanism, including both its channel and spatial attention components, contributes substantially to improving the performance of vulnerability detection.</p>
</sec>
<sec id="s5_3_2">
<label>5.3.2</label>
<title>Ablation on Centrality Weighting</title>
<p>To further validate the independent contribution of the centrality weighting strategy, we conduct an additional ablation study on the three centrality components used in VulSCP, namely Degree, Closeness, and Katz. In our model, each centrality measure is introduced as an independent weighting channel to modulate the importance of program nodes. To remove a specific centrality component, we set the centrality values of <italic>all</italic> nodes in the corresponding channel to 1, which yields uniform weights and thus disables node-importance differentiation by that centrality, while keeping the rest of the model unchanged. Accordingly, we construct the following variants for comparison:<list list-type="bullet">
<list-item>
<p>VulSCP: The full model with all three centrality weighting channels.</p></list-item>
<list-item>
<p>r.m. Degree: Sets all node Degree-centrality values to 1 in the Degree channel.</p></list-item>
<list-item>
<p>r.m. Closeness: Sets all node Closeness-centrality values to 1 in the Closeness channel.</p></list-item>
<list-item>
<p>r.m. Katz: Sets all node Katz-centrality values to 1 in the Katz channel.</p></list-item>
<list-item>
<p>r.m. All: Sets all three centrality channels to 1.</p></list-item>
</list></p>
<p>As shown in <xref ref-type="table" rid="table-4">Table 4</xref>, removing any single centrality component leads to a performance drop, indicating that each component provides useful structural information for vulnerability detection. Compared with the complete VulSCP model, r.m. Degree reduces ACC from 85.14% to 83.68% and F1-score from 84.71% to 84.08%, while FPR and FNR increase to 17.96% and 14.73%, respectively. Similarly, r.m. Closeness lowers ACC and F1-score to 83.83% and 84.29%, and r.m. Katz lowers them to 84.18% and 84.52%.</p>
<table-wrap id="table-4">
<label>Table 4</label>
<caption>
<title>Ablation study on centrality weighting. All results are reported as mean <inline-formula id="ieqn-165"><mml:math id="mml-ieqn-165"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> standard deviation over five runs. The best results are <bold>bolded</bold> and the second-best are <underline>underlined</underline>.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Variants</th>
<th>ACC (%)</th>
<th>F1 Score (%)</th>
<th>FPR (%)</th>
<th>FNR (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td>VulSCP</td>
<td><bold><inline-formula id="ieqn-166"><mml:math id="mml-ieqn-166"><mml:msub><mml:mi>85.14</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.32</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><bold><inline-formula id="ieqn-167"><mml:math id="mml-ieqn-167"><mml:msub><mml:mi>84.71</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.37</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><bold><inline-formula id="ieqn-168"><mml:math id="mml-ieqn-168"><mml:msub><mml:mi>17.25</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.58</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><bold><inline-formula id="ieqn-169"><mml:math id="mml-ieqn-169"><mml:msub><mml:mi>13.24</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.27</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
</tr>
<tr>
<td>r.m. Degree</td>
<td><inline-formula id="ieqn-170"><mml:math id="mml-ieqn-170"><mml:msub><mml:mi>83.68</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.41</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-171"><mml:math id="mml-ieqn-171"><mml:msub><mml:mi>84.08</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.45</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-172"><mml:math id="mml-ieqn-172"><mml:msub><mml:mi>17.96</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.63</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-173"><mml:math id="mml-ieqn-173"><mml:msub><mml:mi>14.73</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.35</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>r.m. Closeness</td>
<td><inline-formula id="ieqn-174"><mml:math id="mml-ieqn-174"><mml:msub><mml:mi>83.83</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.39</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-175"><mml:math id="mml-ieqn-175"><mml:msub><mml:mi>84.29</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.42</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-176"><mml:math id="mml-ieqn-176"><mml:msub><mml:mi>17.54</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.61</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-177"><mml:math id="mml-ieqn-177"><mml:msub><mml:mi>14.86</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.38</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>r.m. Katz</td>
<td><underline><inline-formula id="ieqn-178"><mml:math id="mml-ieqn-178"><mml:msub><mml:mi>84.18</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.36</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><underline><inline-formula id="ieqn-179"><mml:math id="mml-ieqn-179"><mml:msub><mml:mi>84.52</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.39</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-180"><mml:math id="mml-ieqn-180"><mml:msub><mml:mi>17.68</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.55</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-181"><mml:math id="mml-ieqn-181"><mml:msub><mml:mi>13.99</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.31</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
</tr>
<tr>
<td>r.m. All</td>
<td><inline-formula id="ieqn-182"><mml:math id="mml-ieqn-182"><mml:msub><mml:mi>82.48</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.46</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-183"><mml:math id="mml-ieqn-183"><mml:msub><mml:mi>82.72</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.52</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-184"><mml:math id="mml-ieqn-184"><mml:msub><mml:mi>19.87</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.72</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-185"><mml:math id="mml-ieqn-185"><mml:msub><mml:mi>15.12</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.43</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>Among the three single-removal variants, r.m. Degree causes the largest drop in ACC and the highest FPR, suggesting that degree centrality contributes more to overall discrimination and false-positive suppression. r.m. Closeness yields the highest FNR (14.86%), indicating that closeness centrality is more helpful for reducing missed detections of vulnerable samples. Although the effect of removing Katz is relatively smaller, its performance is still consistently worse than that of the full model, which shows that Katz centrality also provides complementary structural cues.</p>
<p>The largest degradation appears in r.m. All, where all centrality channels are removed. In this case, ACC drops to 82.48% and F1-score drops to 82.72%, which are 2.66 and 1.99 percentage points lower than those of VulSCP, respectively. At the same time, FPR rises from 17.25% to 19.87%, and FNR rises from 13.24% to 15.12%. These results demonstrate that the centrality weighting strategy is an effective component of VulSCP, and that combining multiple centrality measures helps the model better capture critical structural information for vulnerability detection.</p>
</sec>
</sec>
<sec id="s5_4">
<label>5.4</label>
<title>Model Validation and Sensitivity Analysis</title>
<sec id="s5_4_1">
<label>5.4.1</label>
<title>Convergence Analysis</title>
<p>The experimental procedure consists of two parts: (1) validating the convergence of accuracy and loss values with the window size set to 100, and (2) evaluating the impact of different window sizes on detection accuracy. To verify the effectiveness of the proposed method, this section validates the convergence of accuracy and loss using the partitioned dataset.</p>
<p>As shown in <xref ref-type="fig" rid="fig-7">Fig. 7a</xref>, on the training dataset, both accuracy and loss values steadily converge as training epochs progress. Notably, they converge rapidly within the first 50 epochs, approaching optimal performance early in the training process. In contrast, <xref ref-type="fig" rid="fig-7">Fig. 7b</xref> illustrates that on the validation dataset, convergence is also observed, but at a slower pace, with peak performance achieved around the 175th epoch. These experimental results demonstrate the effectiveness of the proposed VulSCP framework.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Convergence of loss and accuracy during training and validation.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-7.tif"/>
</fig>
</sec>
<sec id="s5_4_2">
<label>5.4.2</label>
<title>Window Size Sensitivity Analysis</title>
<p>This section analyzes the effect of varying window sizes on the accuracy of vulnerability detection. To understand the distribution of function lengths in the combined dataset used in this study, we compute the Cumulative Distribution Function (CDF) of the code length across all samples. The CDF illustrates the probability that a variable takes a value less than or equal to a specified threshold, thus reflecting the cumulative distribution of the data. The result is shown in <xref ref-type="fig" rid="fig-8">Fig. 8a</xref>; over 99% of function samples contain fewer than 200 lines of code. Based on this observation, we set 200 lines as the upper limit for the window size and evaluate the model&#x2019;s detection accuracy across different window lengths.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>CDF of sample lengths and detection performance under different thresholds.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-8.tif"/>
</fig>
<p>The evaluation results in <xref ref-type="fig" rid="fig-8">Fig. 8b</xref> indicate a positive correlation between window size and detection accuracy. Specifically, accuracy improves as the window size increases, and the improvement becomes marginal beyond 100 lines, where the accuracy approaches its optimal value and the growth rate significantly slows down.</p>
</sec>
<sec id="s5_4_3">
<label>5.4.3</label>
<title>Hyperparameter Sensitivity Analysis</title>
<p>This section presents hyperparameter experiments targeting the parallel attention mechanism in VulSCP.</p>
<p>(1) Number of input channels in the attention layer. The number of input channels in the parallel attention layer reflects the depth of high-level code feature refinement performed by the model. We evaluated four different channel sizes: 16, 32, 64, and 256. As shown in <xref ref-type="fig" rid="fig-9">Fig. 9a</xref> and <xref ref-type="table" rid="table-5">Table 5</xref>, the model&#x2019;s loss exhibits an irregular trend with increasing channel numbers. Specifically, when the number of channels is 64, the model achieves optimal performance across most evaluation metrics, including the lowest false negative rate of 13.24%, the highest F1 score of 84.71%, and the highest accuracy of 85.14%. This suggests that increasing the channel width enhances the model&#x2019;s capacity for feature representation, thereby improving its detection performance. However, when the number of channels reaches 256, performance declines across all metrics, indicating potential overfitting.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>Performance across different attention input channel sizes and group sizes.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-9.tif"/>
</fig><table-wrap id="table-5">
<label>Table 5</label>
<caption>
<title>Parametric experiment on attention channels. All results are reported as mean <inline-formula id="ieqn-186"><mml:math id="mml-ieqn-186"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> standard deviation over five runs. The best results are <bold>bolded</bold> and the second-best are <underline>underlined</underline>.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
</colgroup>
<thead>
<tr>
<th>Channels</th>
<th>Accuracy (%)</th>
<th>F1 Score (%)</th>
<th>FPR (%)</th>
<th>FNR (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td>16</td>
<td><inline-formula id="ieqn-187"><mml:math id="mml-ieqn-187"><mml:msub><mml:mi>84.79</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.35</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-188"><mml:math id="mml-ieqn-188"><mml:msub><mml:mi>84.31</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.41</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-189"><mml:math id="mml-ieqn-189"><mml:msub><mml:mi>17.45</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.62</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><underline><inline-formula id="ieqn-190"><mml:math id="mml-ieqn-190"><mml:msub><mml:mi>13.85</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.33</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
</tr>
<tr>
<td>32</td>
<td><underline><inline-formula id="ieqn-191"><mml:math id="mml-ieqn-191"><mml:msub><mml:mi>84.86</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.34</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><underline><inline-formula id="ieqn-192"><mml:math id="mml-ieqn-192"><mml:msub><mml:mi>84.33</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.39</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><bold><inline-formula id="ieqn-193"><mml:math id="mml-ieqn-193"><mml:msub><mml:mi>17.22</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.59</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-194"><mml:math id="mml-ieqn-194"><mml:msub><mml:mi>14.06</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.34</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>64</td>
<td><bold><inline-formula id="ieqn-195"><mml:math id="mml-ieqn-195"><mml:msub><mml:mi>85.14</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.32</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><bold><inline-formula id="ieqn-196"><mml:math id="mml-ieqn-196"><mml:msub><mml:mi>84.71</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.37</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-197"><mml:math id="mml-ieqn-197"><mml:msub><mml:mi>17.25</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.58</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-198"><mml:math id="mml-ieqn-198"><mml:msub><mml:mi>13.24</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.27</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
</tr>
<tr>
<td>256</td>
<td><inline-formula id="ieqn-199"><mml:math id="mml-ieqn-199"><mml:msub><mml:mi>84.67</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.38</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-200"><mml:math id="mml-ieqn-200"><mml:msub><mml:mi>84.14</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.43</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-201"><mml:math id="mml-ieqn-201"><mml:msub><mml:mi>17.44</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.65</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-202"><mml:math id="mml-ieqn-202"><mml:msub><mml:mi>14.21</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.36</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
<p>(2) Number of parallel attention groups. Grouping channels in the parallel attention layer can reduce computational overhead, but excessive grouping may hinder the learning of global features. We tested four group sizes: 4, 8, 16, and 32. As shown in <xref ref-type="fig" rid="fig-9">Fig. 9b</xref> and <xref ref-type="table" rid="table-6">Table 6</xref>, the model performs best when the group number is set to 8, achieving the lowest false negative rate of 13.24%, the highest weighted F1 score of 84.71%, and the highest accuracy of 85.14%. This suggests that an appropriate grouping factor can balance model complexity and generalization capability, preserving sufficient feature extraction power while avoiding overfitting. When the group number increases to 16 and 32, the accuracy remains relatively high, but the performance on other metrics shows no significant improvement.</p>
<table-wrap id="table-6">
<label>Table 6</label>
<caption>
<title>Parametric experiment on attention groups. All results are reported as mean <inline-formula id="ieqn-203"><mml:math id="mml-ieqn-203"><mml:mo>&#x00B1;</mml:mo></mml:math></inline-formula> standard deviation over five runs. The best results are <bold>bolded</bold> and the second-best are <underline>underlined</underline>.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/>
<col align="center"/> </colgroup>
<thead>
<tr>
<th>Group Quantity</th>
<th>Accuracy (%)</th>
<th>F1 Score (%)</th>
<th>FPR (%)</th>
<th>FNR (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td>4</td>
<td><underline><inline-formula id="ieqn-204"><mml:math id="mml-ieqn-204"><mml:msub><mml:mi>84.97</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.33</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><underline><inline-formula id="ieqn-205"><mml:math id="mml-ieqn-205"><mml:msub><mml:mi>84.52</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.38</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-206"><mml:math id="mml-ieqn-206"><mml:msub><mml:mi>17.32</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.61</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-207"><mml:math id="mml-ieqn-207"><mml:msub><mml:mi>13.57</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.31</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
</tr>
<tr>
<td>8</td>
<td><bold><inline-formula id="ieqn-208"><mml:math id="mml-ieqn-208"><mml:msub><mml:mi>85.14</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.32</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><bold><inline-formula id="ieqn-209"><mml:math id="mml-ieqn-209"><mml:msub><mml:mi>84.71</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.37</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-210"><mml:math id="mml-ieqn-210"><mml:msub><mml:mi>17.25</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.58</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-211"><mml:math id="mml-ieqn-211"><mml:msub><mml:mi>13.24</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.27</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
</tr>
<tr>
<td>16</td>
<td><inline-formula id="ieqn-212"><mml:math id="mml-ieqn-212"><mml:msub><mml:mi>84.74</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.36</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-213"><mml:math id="mml-ieqn-213"><mml:msub><mml:mi>84.13</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.42</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><bold><inline-formula id="ieqn-214"><mml:math id="mml-ieqn-214"><mml:msub><mml:mi>17.17</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.57</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></bold></td>
<td><inline-formula id="ieqn-215"><mml:math id="mml-ieqn-215"><mml:msub><mml:mi>14.53</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.38</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
<tr>
<td>32</td>
<td><inline-formula id="ieqn-216"><mml:math id="mml-ieqn-216"><mml:msub><mml:mi>84.86</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.35</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><inline-formula id="ieqn-217"><mml:math id="mml-ieqn-217"><mml:msub><mml:mi>84.33</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.40</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
<td><underline><inline-formula id="ieqn-218"><mml:math id="mml-ieqn-218"><mml:msub><mml:mi>17.22</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.63</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></underline></td>
<td><inline-formula id="ieqn-219"><mml:math id="mml-ieqn-219"><mml:msub><mml:mi>14.06</mml:mi><mml:mrow><mml:mo>&#x00B1;</mml:mo><mml:mn>0.35</mml:mn></mml:mrow></mml:msub></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s5_5">
<label>5.5</label>
<title>Efficiency and Computational Complexity Analysis</title>
<sec id="s5_5_1">
<label>5.5.1</label>
<title>Inference Time Evaluation</title>
<p>To further evaluate the efficiency of the proposed approach, we analyze the runtime from sample input to vulnerability detection output. The execution efficiency is assessed by plotting the cumulative distribution function (CDF) curve of runtime. During the data preprocessing phase, as illustrated in <xref ref-type="fig" rid="fig-10">Fig. 10a</xref>, the extraction of semantically weighted graphs accounts for a more significant portion of the total runtime. Although the tail of the distribution extends to around 5 s, the preprocessing time is considered acceptable for the overall system overhead. In the classification phase, as shown in <xref ref-type="fig" rid="fig-10">Fig. 10b</xref>, the total processing time for all test samples ranges between 0.005 and 0.030 s. Approximately 80% of test samples are processed within 0.020 s, while about 50% complete classification in under 0.015 s, achieving millisecond-level processing time per sample.</p>
<fig id="fig-10">
<label>Figure 10</label>
<caption>
<title>Runtime analysis results.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-10.tif"/>
</fig>
<p>In summary, the proposed method maintains an average end-to-end runtime of 1.89 s, demonstrating the high efficiency of the VulSCP model.</p>
</sec>
<sec id="s5_5_2">
<label>5.5.2</label>
<title>Computational Complexity Comparison</title>
<p>To further quantify the computational complexity and resource overhead in practical deployment, we provide a cost profile of VulSCP and compare it with AugSliceVul, the strongest baseline in our main and cross-dataset experiments. Specifically, we report model size (Total Params and Weight Size), arithmetic cost (FLOPs per sample), and runtime GPU footprint (peak inference/training GPU memory) under two batch sizes. The results are summarized in <xref ref-type="table" rid="table-7">Table 7</xref>.</p>
<table-wrap id="table-7">
<label>Table 7</label>
<caption>
<title>Computational complexity comparison between VulSCP and AugSliceVul under different batch sizes.</title>
</caption>
<table>
<colgroup>
<col align="center"/>
<col align="center"/>
<col align="center" width="20mm"/>
<col align="center" width="20mm"/>
<col align="center" width="20mm"/>
<col align="center" width="25mm"/>
<col align="center" width="23mm"/> </colgroup>
<thead>
<tr>
<th align="center" rowspan="2">Method</th>
<th align="center" rowspan="2">Batch</th>
<th colspan="3">Static Model Complexity Metrics</th>
<th colspan="2">Runtime GPU Memory Footprint</th>
</tr>
<tr>
<th>Total Params</th>
<th>FLOPs (G/sample)</th>
<th>Weight Size (MB)</th>
<th>Peak Inference (MB)</th>
<th>Peak Training (MB)</th>
</tr>
</thead>
<tbody>
<tr>
<td>VulSCP</td>
<td>16</td>
<td>732,226</td>
<td>0.1272</td>
<td>2.79</td>
<td>17.47</td>
<td>45.79</td>
</tr>
<tr>
<td></td>
<td>32</td>
<td></td>
<td></td>
<td></td>
<td>21.66</td>
<td>52.54</td>
</tr>
<tr>
<td>AugSliceVul</td>
<td>16</td>
<td>124,647,170</td>
<td>263.1112</td>
<td>475.52</td>
<td>764.93</td>
<td>5440.57</td>
</tr>
<tr>
<td></td>
<td>32</td>
<td></td>
<td></td>
<td></td>
<td>1045.11</td>
<td>10,358.88</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>From a static complexity perspective, VulSCP is lightweight (0.73M parameters, 2.79 MB weights) and requires 0.1272 G FLOPs per sample, whereas AugSliceVul is substantially larger (124.65M parameters, 475.52 MB weights) and more compute-intensive (263.11 G FLOPs per sample). This corresponds to roughly <inline-formula id="ieqn-220"><mml:math id="mml-ieqn-220"><mml:mo>&#x223C;</mml:mo></mml:math></inline-formula>170<inline-formula id="ieqn-221"><mml:math id="mml-ieqn-221"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> fewer parameters/weights and <inline-formula id="ieqn-222"><mml:math id="mml-ieqn-222"><mml:mo>&#x223C;</mml:mo></mml:math></inline-formula>2000<inline-formula id="ieqn-223"><mml:math id="mml-ieqn-223"><mml:mo>&#x00D7;</mml:mo></mml:math></inline-formula> fewer FLOPs, indicating that the improvements reported in <xref ref-type="sec" rid="s5_1">Sections 5.1</xref> and <xref ref-type="sec" rid="s5_2">5.2</xref> are achieved with an efficient architecture rather than by scaling model size.</p>
<p>The GPU memory footprint exhibits a similarly favorable pattern. Across both batch sizes, VulSCP stays below 22 MB peak inference memory and below 53 MB peak training memory, while AugSliceVul requires 0.76&#x2013;1.05 GB for inference and 5.44&#x2013;10.36 GB for training. Moreover, when doubling the batch size from 16 to 32, AugSliceVul shows a much steeper training-memory increase (90.4%) than VulSCP (14.7%), suggesting that VulSCP provides more stable batch scalability under limited GPU budgets.</p>
<p>Overall, VulSCP demonstrates a strong accuracy&#x2013;efficiency trade-off: compared with the best-performing baseline, it achieves markedly lower computational and memory costs while delivering better detection performance.</p>
</sec>
</sec>
<sec id="s5_6">
<label>5.6</label>
<title>Limitations and Practical Considerations</title>
<p>Although VulSCP achieves strong overall performance, several limitations should be noted. First, despite its relatively low false positive rate, the false negative rate in some settings indicates that certain vulnerability patterns may still not be fully captured by the current model. Second, although we further evaluate cross-dataset generalization, the present experimental setting is still based mainly on random data splitting and therefore cannot fully reflect real industrial deployment conditions. Third, the current study focuses on function-level vulnerability detection, which may be insufficient for vulnerabilities involving cross-function, cross-file, or cross-module semantic dependencies. These issues will be further explored in future work.</p>
</sec>
<sec id="s5_7">
<label>5.7</label>
<title>Case Study</title>
<p>VulSCP is a vulnerability detection method built on graph-derived semantic representation, which allows visualization techniques to be used to explain detection results. In this section, we take buffer overflow vulnerabilities as an example and apply the Gradient-weighted Class Activation Mapping&#x002B;&#x002B; (Grad-CAM&#x002B;&#x002B;) method to visualize the model&#x2019;s prediction outcomes.</p>
<p><xref ref-type="fig" rid="fig-11">Fig. 11</xref> illustrates the visualization results for buffer overflow vulnerability detection. Code lines 8 and 18 are highlighted in the deepest red, followed by lines 7 and 11 in a slightly lighter shade, indicating that these lines are likely to contain vulnerabilities.</p>
<fig id="fig-11">
<label>Figure 11</label>
<caption>
<title>Risk-level visualization of code vulnerability detection using Grad-CAM&#x002B;&#x002B;.</title>
</caption>
<graphic mimetype="image" mime-subtype="tif" xlink:href="CMC_81155-fig-11.tif"/>
</fig>
<p>In this example, line 7 allocates a character array named overflow with a size of 65,550 bytes on the stack. Given the limited stack space, this may lead to a stack overflow. At line 10, the program reads an integer from user input via scanf, assigns it to i, and subsequently to size. If the user inputs an excessively large integer (exceeding the capacity of an unsigned short int), an integer overflow may occur. Finally, the memcpy function copies data from the overflow array to the buf array without boundary checks, potentially causing a buffer overflow.</p>
<p>In summary, the visualization results generated by VulSCP align well with the expected outcomes of manual code analysis, thereby supporting the effectiveness of the proposed method.</p>
</sec>
</sec>
<sec id="s6">
<label>6</label>
<title>Conclusion</title>
<p>This paper presents VulSCP, a code vulnerability detection framework that combines semantically weighted graph representation, sequential convolution, and parallel attention. By preserving control-flow and data-flow semantics through PDG-based representation and further enhancing feature learning with centrality weighting and parallel attention, the proposed framework improves the modeling of vulnerability-relevant patterns and global semantic dependencies.</p>
<p>Experimental results show that VulSCP performs favorably relative to recent and representative vulnerability detection baselines, while maintaining a good balance between semantic modeling capability and computational efficiency. These findings suggest that the proposed framework is a promising approach for efficient vulnerability detection in large-scale code settings.</p>
<p>Despite these results, there remains room for improvement in reducing the false negative rate. In addition, the current study focuses on function-level vulnerability detection, and further validation under broader code contexts and more realistic deployment scenarios is still needed. These issues will be explored in future work.</p>
</sec>
</body>
<back>
<ack>
<p>Not applicable.</p>
</ack>
<sec>
<title>Funding Statement</title>
<p>This research was funded by the Ministry of Public Security of the People&#x2019;s Republic of China, grant number 2024ZB02 (X.Z.).</p>
</sec>
<sec>
<title>Author Contributions</title>
<p>The authors confirm contribution to the paper as follows: Conceptualization, Zhe Wang, Yu Yan and Junqi Tong; methodology, Zhe Wang, Yu Yan and Junqi Tong; software, Zhe Wang and Yu Yan; validation, Zhe Wang, Yu Yan, Junqi Tong and Yijun Lin; formal analysis, Zhe Wang and Yu Yan; investigation, Zhe Wang, Yu Yan, Junqi Tong and Yijun Lin; resources, Dechun Yin and Xiaoliang Zhao; data curation, Zhe Wang and Yu Yan; writing&#x2014;original draft preparation, Zhe Wang, Yu Yan, Junqi Tong and Yijun Lin; writing&#x2014;review and editing, all authors; visualization, Zhe Wang, Yu Yan, Junqi Tong and Yijun Lin; supervision, Dechun Yin and Xiaoliang Zhao; project administration, Xiaoliang Zhao; funding acquisition, Xiaoliang Zhao. All authors reviewed and approved the final version of the manuscript.</p>
</sec>
<sec sec-type="data-availability">
<title>Availability of Data and Materials</title>
<p>The data supporting the findings of this study are available from the corresponding author upon reasonable request.</p>
</sec>
<sec>
<title>Ethics Approval</title>
<p>Not applicable.</p>
</sec>
<sec sec-type="COI-statement">
<title>Conflicts of Interest</title>
<p>The authors declare no conflicts of interest.</p>
</sec>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>National Institute of Standards and Technology (NIST)</collab></person-group>. <article-title>National vulnerability database [Internet]</article-title>. <year>2025</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://nvd.nist.gov/">https://nvd.nist.gov/</ext-link>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>SecPod</collab></person-group>. <article-title>The cybersecurity landscape of 2024: key insights from the annual vulnerability report [Internet]</article-title>. <year>2024 [cited 2026 Mar 21]</year>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.secpod.com/blog/the-cybersecurity-landscape-of-2024-key-insights-from-the-annual-vulnerability-report/">https://www.secpod.com/blog/the-cybersecurity-landscape-of-2024-key-insights-from-the-annual-vulnerability-report/</ext-link>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Jang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Agrawal</surname> <given-names>A</given-names></string-name>, <string-name><surname>Brumley</surname> <given-names>D</given-names></string-name></person-group>. <article-title>ReDeBug: finding unpatched code clones in entire OS distributions</article-title>. In: <conf-name>Proceedings of the 2012 IEEE Symposium on Security and Privacy (S&#x0026;P)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2012</year>. p. <fpage>48</fpage>&#x2013;<lpage>62</lpage>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Kim</surname> <given-names>S</given-names></string-name>, <string-name><surname>Woo</surname> <given-names>S</given-names></string-name>, <string-name><surname>Lee</surname> <given-names>H</given-names></string-name>, <string-name><surname>Oh</surname> <given-names>H</given-names></string-name></person-group>. <article-title>VUDDY: a scalable approach for vulnerable code clone discovery</article-title>. In: <conf-name>Proceedings of the 2017 IEEE Symposium on Security and Privacy (S&#x0026;P)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2017</year>. p. <fpage>595</fpage>&#x2013;<lpage>614</lpage>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>J</given-names></string-name>, <string-name><surname>Ernst</surname> <given-names>MD</given-names></string-name></person-group>. <article-title>CBCD: cloned buggy code detector</article-title>. In: <conf-name>Proceedings of the 34th International Conference on Software Engineering (ICSE)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2012</year>. p. <fpage>310</fpage>&#x2013;<lpage>20</lpage>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zou</surname> <given-names>D</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Ou</surname> <given-names>X</given-names></string-name>, <string-name><surname>Jin</surname> <given-names>H</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>VulDeePecker: a deep learning-based system for vulnerability detection</article-title>. <comment>arXiv:1801.01681. 2018</comment>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Lin</surname> <given-names>G</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Luo</surname> <given-names>W</given-names></string-name>, <string-name><surname>Pan</surname> <given-names>L</given-names></string-name>, <string-name><surname>Xiang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>POSTER: vulnerability discovery with function representation learning from unlabeled projects</article-title>. In: <conf-name>Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security (CCS)</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>; <year>2017</year>. p. <fpage>2539</fpage>&#x2013;<lpage>41</lpage>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zou</surname> <given-names>D</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Jin</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>SySeVR: a framework for using deep learning to detect software vulnerabilities</article-title>. <source>IEEE Trans Depend Secure Comput</source>. <year>2021</year>;<volume>19</volume>(<issue>4</issue>):<fpage>2244</fpage>&#x2013;<lpage>58</lpage>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Su</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zheng</surname> <given-names>W</given-names></string-name>, <string-name><surname>Jiang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wei</surname> <given-names>H</given-names></string-name>, <string-name><surname>Wan</surname> <given-names>J</given-names></string-name>, <string-name><surname>Wei</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>Research and progress on learning-based source code vulnerability detection</article-title>. <source>Chin J Comput</source>. <year>2024</year>;<volume>47</volume>:<fpage>337</fpage>&#x2013;<lpage>74</lpage>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhou</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Siow</surname> <given-names>J</given-names></string-name>, <string-name><surname>Du</surname> <given-names>X</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Devign: effective vulnerability identification by learning comprehensive program semantics via graph neural networks</article-title>. In: <conf-name>Proceedings of the 33rd International Conference on Neural Information Processing Systems</conf-name>. <publisher-loc>Red Hook, NY, USA</publisher-loc>: <publisher-name>Curran Associates Inc.</publisher-name>; <year>2019</year>. p. <fpage>10197</fpage>&#x2013;<lpage>207</lpage>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Wang</surname> <given-names>M</given-names></string-name>, <string-name><surname>Tao</surname> <given-names>C</given-names></string-name>, <string-name><surname>Guo</surname> <given-names>H</given-names></string-name></person-group>. <article-title>LCVD: loop-oriented code vulnerability detection via graph neural network</article-title>. <source>J Syst Softw</source>. <year>2023</year>;<volume>202</volume>:<fpage>111706</fpage>. doi:<pub-id pub-id-type="doi">10.2139/ssrn.4328066</pub-id>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Shao</surname> <given-names>M</given-names></string-name>, <string-name><surname>Ding</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Cao</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>GraphFVD: property graph-based fine-grained vulnerability detection</article-title>. <source>Comput Secur</source>. <year>2025</year>;<volume>151</volume>:<fpage>104350</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.cose.2025.104350</pub-id>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>QL</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>YB</given-names></string-name></person-group>. <article-title>SA-Net: shuffle attention for deep convolutional neural networks</article-title>. In: <conf-name>ICASSP 2021&#x2014;2021 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2021</year>. p. <fpage>2235</fpage>&#x2013;<lpage>9</lpage>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Smaili</surname> <given-names>A</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Mekkaoui</surname> <given-names>DE</given-names></string-name>, <string-name><surname>Midoun</surname> <given-names>MA</given-names></string-name>, <string-name><surname>Talhaoui</surname> <given-names>MZ</given-names></string-name>, <string-name><surname>Hamidaoui</surname> <given-names>M</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>A transformer-based framework for software vulnerability detection using attention-driven convolutional neural networks</article-title>. <source>Eng Appl Artif Intell</source>. <year>2025</year>;<volume>160</volume>(<issue>9</issue>):<fpage>111859</fpage>. doi:<pub-id pub-id-type="doi">10.1016/j.engappai.2025.111859</pub-id>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Hussain</surname> <given-names>S</given-names></string-name>, <string-name><surname>Nadeem</surname> <given-names>M</given-names></string-name>, <string-name><surname>Baber</surname> <given-names>J</given-names></string-name>, <string-name><surname>Hamdi</surname> <given-names>M</given-names></string-name>, <string-name><surname>Rajab</surname> <given-names>A</given-names></string-name>, <string-name><surname>Al Reshan</surname> <given-names>MS</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Vulnerability detection in Java source code using a quantum convolutional neural network with self-attentive pooling, deep sequence, and graph-based hybrid feature extraction</article-title>. <source>Sci Rep</source>. <year>2024</year>;<volume>14</volume>(<issue>1</issue>):<fpage>7406</fpage>. doi:<pub-id pub-id-type="doi">10.1038/s41598-024-56871-z</pub-id>; <pub-id pub-id-type="pmid">38548726</pub-id></mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Du</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wen</surname> <given-names>M</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Xie</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Ji</surname> <given-names>B</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>H</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Generalization-enhanced code vulnerability detection via multi-task instruction fine-tuning</article-title>. <comment>arXiv:2406.03718. 2024</comment>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Yang</surname> <given-names>AZ</given-names></string-name>, <string-name><surname>Tian</surname> <given-names>H</given-names></string-name>, <string-name><surname>Ye</surname> <given-names>H</given-names></string-name>, <string-name><surname>Martins</surname> <given-names>R</given-names></string-name>, <string-name><surname>Goues</surname> <given-names>CL</given-names></string-name></person-group>. <article-title>Security vulnerability detection with multitask self-instructed fine-tuning of large language models</article-title>. <comment>arXiv:2406.05892. 2024</comment>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Sejfia</surname> <given-names>A</given-names></string-name>, <string-name><surname>Das</surname> <given-names>S</given-names></string-name>, <string-name><surname>Shafiq</surname> <given-names>S</given-names></string-name>, <string-name><surname>Medvidovi&#x0107;</surname> <given-names>N</given-names></string-name></person-group>. <article-title>Toward improved deep learning-based vulnerability detection</article-title>. In: <conf-name>Proceedings of the 46th IEEE/ACM International Conference on Software Engineering</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>; <year>2024</year>. p. <fpage>1</fpage>&#x2013;<lpage>12</lpage>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Wheeler</surname> <given-names>DA</given-names></string-name></person-group>. <article-title>Flawfinder [Internet]</article-title>. <year>2001</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://dwheeler.com/flawfinder/">https://dwheeler.com/flawfinder/</ext-link>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Marjam&#x00E4;ki</surname> <given-names>D</given-names></string-name></person-group>. <article-title>Cppcheck [Internet]</article-title>. <year>2007</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="http://cppcheck.sourceforge.net/">http://cppcheck.sourceforge.net/</ext-link>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Ayewah</surname> <given-names>N</given-names></string-name>, <string-name><surname>Pugh</surname> <given-names>W</given-names></string-name>, <string-name><surname>Hovemeyer</surname> <given-names>D</given-names></string-name>, <string-name><surname>Morgenthaler</surname> <given-names>JD</given-names></string-name>, <string-name><surname>Penix</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Using FindBugs on production software [Internet]</article-title>. <year>2008</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://findbugs.sourceforge.net">https://findbugs.sourceforge.net</ext-link>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Clang Static Analyzer</collab></person-group>. <article-title>Clang static analyzer [Internet]</article-title>. <year>2020</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://clang-analyzer.llvm.org/">https://clang-analyzer.llvm.org/</ext-link>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Micro Focus</collab></person-group>. <article-title>Fortify static code analyzer [Internet]</article-title>. <year>2019</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.microfocus.com/en-us/products/static-code-analysis-sast/overview">https://www.microfocus.com/en-us/products/static-code-analysis-sast/overview</ext-link>.</mixed-citation></ref>
<ref id="ref-24"><label>[24]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>Checkmarx</collab></person-group>. <article-title>Checkmarx [Internet]</article-title>. <year>2021</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://www.checkmarx.com">https://www.checkmarx.com</ext-link>.</mixed-citation></ref>
<ref id="ref-25"><label>[25]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>RATS</collab></person-group>. <article-title>Rough auditing tool for security (RATS) [Internet]</article-title>. <year>2021 [cited 2026 Mar 21]</year>. Available from: <ext-link ext-link-type="uri" xlink:href="https://code.google.com/archive/p/rough-auditing-tool-for-security/">https://code.google.com/archive/p/rough-auditing-tool-for-security/</ext-link>.</mixed-citation></ref>
<ref id="ref-26"><label>[26]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Russell</surname> <given-names>R</given-names></string-name>, <string-name><surname>Kim</surname> <given-names>L</given-names></string-name>, <string-name><surname>Hamilton</surname> <given-names>L</given-names></string-name>, <string-name><surname>Lazovich</surname> <given-names>T</given-names></string-name>, <string-name><surname>Harer</surname> <given-names>J</given-names></string-name>, <string-name><surname>Ozdemir</surname> <given-names>O</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Automated vulnerability detection in source code using deep representation learning</article-title>. In: <conf-name>2018 17th IEEE International Conference on Machine Learning and Applications (ICMLA)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2018</year>. p. <fpage>757</fpage>&#x2013;<lpage>62</lpage>.</mixed-citation></ref>
<ref id="ref-27"><label>[27]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Duan</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Ji</surname> <given-names>S</given-names></string-name>, <string-name><surname>Rui</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Luo</surname> <given-names>T</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>M</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>Focus your attention to shoot fine-grained vulnerabilities</article-title>. In: <conf-name>Proceedings of the Twenty-Eighth International Joint Conference on Artificial Intelligence (IJCAI-19); 2019 Aug 10&#x2013;16</conf-name>; <publisher-loc>Macao, China</publisher-loc>. p. <fpage>4665</fpage>&#x2013;<lpage>71</lpage>.</mixed-citation></ref>
<ref id="ref-28"><label>[28]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Feng</surname> <given-names>H</given-names></string-name>, <string-name><surname>Fu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>H</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>Y</given-names></string-name></person-group>. <article-title>Efficient vulnerability detection based on abstract syntax tree and deep learning</article-title>. In: <conf-name>IEEE INFOCOM 2020&#x2014;IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2020</year>. p. <fpage>722</fpage>&#x2013;<lpage>7</lpage>.</mixed-citation></ref>
<ref id="ref-29"><label>[29]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zou</surname> <given-names>D</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>S</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Jin</surname> <given-names>H</given-names></string-name></person-group>. <article-title>VulDeeLocator: a deep learning-based fine-grained vulnerability detector</article-title>. <source>IEEE Trans Depend Secure Comput</source>. <year>2021</year>;<volume>19</volume>(<issue>4</issue>):<fpage>2821</fpage>&#x2013;<lpage>37</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tdsc.2021.3076142</pub-id>.</mixed-citation></ref>
<ref id="ref-30"><label>[30]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhou</surname> <given-names>X</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>T</given-names></string-name>, <string-name><surname>Lo</surname> <given-names>D</given-names></string-name></person-group>. <article-title>Large language model for vulnerability detection: emerging results and future directions</article-title>. In: <conf-name>Proceedings of the 2024 ACM/IEEE 44th International Conference on Software Engineering: New Ideas and Emerging Results</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>; <year>2024</year>. p. <fpage>47</fpage>&#x2013;<lpage>51</lpage>.</mixed-citation></ref>
<ref id="ref-31"><label>[31]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Fu</surname> <given-names>M</given-names></string-name>, <string-name><surname>Tantithamthavorn</surname> <given-names>CK</given-names></string-name>, <string-name><surname>Nguyen</surname> <given-names>V</given-names></string-name>, <string-name><surname>Le</surname> <given-names>T</given-names></string-name></person-group>. <article-title>ChatGPT for vulnerability detection, classification, and repair: how far are we?</article-title>. In: <conf-name>2023 30th Asia-Pacific Software Engineering Conference (APSEC)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2023</year>. p. <fpage>632</fpage>&#x2013;<lpage>6</lpage>.</mixed-citation></ref>
<ref id="ref-32"><label>[32]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Yin</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Pros and cons! Evaluating ChatGPT on software vulnerability</article-title>. <comment>arXiv:2404.03994. 2024</comment>.</mixed-citation></ref>
<ref id="ref-33"><label>[33]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Khare</surname> <given-names>A</given-names></string-name>, <string-name><surname>Dutta</surname> <given-names>S</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Solko-Breslin</surname> <given-names>A</given-names></string-name>, <string-name><surname>Alur</surname> <given-names>R</given-names></string-name>, <string-name><surname>Naik</surname> <given-names>M</given-names></string-name></person-group>. <article-title>Understanding the effectiveness of large language models in detecting security vulnerabilities</article-title>. In: <conf-name>2025 IEEE Conference on Software Testing, Verification and Validation (ICST)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2025</year>. p. <fpage>103</fpage>&#x2013;<lpage>14</lpage>.</mixed-citation></ref>
<ref id="ref-34"><label>[34]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>C</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>H</given-names></string-name>, <string-name><surname>Zeng</surname> <given-names>J</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>K</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Li</surname> <given-names>H</given-names></string-name></person-group>. <article-title>Prompt-enhanced software vulnerability detection using ChatGPT</article-title>. In: <conf-name>Proceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>; <year>2024</year>. p. <fpage>276</fpage>&#x2013;<lpage>7</lpage>.</mixed-citation></ref>
<ref id="ref-35"><label>[35]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Ni</surname> <given-names>C</given-names></string-name>, <string-name><surname>Shen</surname> <given-names>L</given-names></string-name>, <string-name><surname>Xu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Yin</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Learning-based models for vulnerability detection: an extensive study</article-title>. <comment>arXiv:2408.07526. 2024</comment>.</mixed-citation></ref>
<ref id="ref-36"><label>[36]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Zhou</surname> <given-names>X</given-names></string-name>, <string-name><surname>Tran</surname> <given-names>DM</given-names></string-name>, <string-name><surname>Le-Cong</surname> <given-names>T</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>T</given-names></string-name>, <string-name><surname>Irsan</surname> <given-names>IC</given-names></string-name>, <string-name><surname>Sumarlin</surname> <given-names>J</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>Comparison of static application security testing tools and large language models for repo-level vulnerability detection</article-title>. <comment>arXiv:2407.16235. 2024</comment>.</mixed-citation></ref>
<ref id="ref-37"><label>[37]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Yang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Does data sampling improve deep learning-based vulnerability detection? Yeas! and Nays!</article-title>. In: <conf-name>2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2023</year>. p. <fpage>2287</fpage>&#x2013;<lpage>98</lpage>.</mixed-citation></ref>
<ref id="ref-38"><label>[38]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name><surname>Ding</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Fu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Ibrahim</surname> <given-names>O</given-names></string-name>, <string-name><surname>Sitawarin</surname> <given-names>C</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>X</given-names></string-name>, <string-name><surname>Alomair</surname> <given-names>B</given-names></string-name>, <etal>et al.</etal></person-group> <article-title>Vulnerability detection with code language models: how far are we?</article-title> <comment>arXiv:2403.18624. 2024</comment>.</mixed-citation></ref>
<ref id="ref-39"><label>[39]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Wen</surname> <given-names>XC</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>X</given-names></string-name>, <string-name><surname>Gao</surname> <given-names>C</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Gu</surname> <given-names>Z</given-names></string-name></person-group>. <article-title>When less is enough: positive and unlabeled learning model for vulnerability detection</article-title>. In: <conf-name>2023 38th IEEE/ACM International Conference on Automated Software Engineering (ASE)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2023</year>. p. <fpage>345</fpage>&#x2013;<lpage>57</lpage>.</mixed-citation></ref>
<ref id="ref-40"><label>[40]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Tang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Xia</surname> <given-names>X</given-names></string-name>, <string-name><surname>Yang</surname> <given-names>X</given-names></string-name></person-group>. <article-title>Pre-training by predicting program dependencies for vulnerability analysis tasks</article-title>. In: <conf-name>Proceedings of the IEEE/ACM 46th International Conference on Software Engineering</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2024</year>. p. <fpage>1</fpage>&#x2013;<lpage>13</lpage>.</mixed-citation></ref>
<ref id="ref-41"><label>[41]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Peng</surname> <given-names>T</given-names></string-name>, <string-name><surname>Chen</surname> <given-names>S</given-names></string-name>, <string-name><surname>Zhu</surname> <given-names>F</given-names></string-name>, <string-name><surname>Tang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>X</given-names></string-name></person-group>. <article-title>PTLVD: program slicing and transformer-based line-level vulnerability detection system</article-title>. In: <conf-name>2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2023</year>. p. <fpage>162</fpage>&#x2013;<lpage>73</lpage>.</mixed-citation></ref>
<ref id="ref-42"><label>[42]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zhang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Liu</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Xia</surname> <given-names>X</given-names></string-name>, <string-name><surname>Li</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Vulnerability detection by learning from syntax-based execution paths of code</article-title>. <source>IEEE Trans Softw Eng</source>. <year>2023</year>;<volume>49</volume>(<issue>8</issue>):<fpage>4196</fpage>&#x2013;<lpage>212</lpage>. doi:<pub-id pub-id-type="doi">10.1109/tse.2023.3286586</pub-id>.</mixed-citation></ref>
<ref id="ref-43"><label>[43]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Jiang</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Sun</surname> <given-names>W</given-names></string-name>, <string-name><surname>Gu</surname> <given-names>X</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>J</given-names></string-name>, <string-name><surname>Wen</surname> <given-names>T</given-names></string-name>, <string-name><surname>Hu</surname> <given-names>H</given-names></string-name>, <etal>et al</etal></person-group>. <article-title>DFEPT: data flow embedding for enhancing pre-trained model based vulnerability detection</article-title>. In: <conf-name>Proceedings of the 15th Asia-Pacific Symposium on Internetware</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>; <year>2024</year>. p. <fpage>95</fpage>&#x2013;<lpage>104</lpage>.</mixed-citation></ref>
<ref id="ref-44"><label>[44]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Tang</surname> <given-names>W</given-names></string-name>, <string-name><surname>Tang</surname> <given-names>M</given-names></string-name>, <string-name><surname>Ban</surname> <given-names>M</given-names></string-name>, <string-name><surname>Zhao</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Feng</surname> <given-names>M</given-names></string-name></person-group>. <article-title>CSGVD: a deep learning approach combining sequence and graph embedding for source code vulnerability detection</article-title>. <source>J Syst Softw</source>. <year>2023</year>;<volume>199</volume>:<fpage>111623</fpage>.</mixed-citation></ref>
<ref id="ref-45"><label>[45]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Ziems</surname> <given-names>N</given-names></string-name>, <string-name><surname>Wu</surname> <given-names>S</given-names></string-name></person-group>. <article-title>Security vulnerability detection using deep learning natural language processing</article-title>. In: <conf-name>IEEE INFOCOM 2021&#x2014;IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS)</conf-name>. <publisher-loc>Piscataway, NJ, USA</publisher-loc>: <publisher-name>IEEE</publisher-name>; <year>2021</year>. p. <fpage>1</fpage>&#x2013;<lpage>6</lpage>.</mixed-citation></ref>
<ref id="ref-46"><label>[46]</label><mixed-citation publication-type="other"><person-group person-group-type="author"><collab>National Institute of Standards and Technology (NIST)</collab></person-group>. <article-title>Software assurance reference dataset [Internet]</article-title>. <year>2025</year><comment>[cited 2026 Mar 21]</comment>. Available from: <ext-link ext-link-type="uri" xlink:href="https://samate.nist.gov/SARD/">https://samate.nist.gov/SARD/</ext-link>.</mixed-citation></ref>
<ref id="ref-47"><label>[47]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><surname>Fan</surname> <given-names>J</given-names></string-name>, <string-name><surname>Li</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>S</given-names></string-name>, <string-name><surname>Nguyen</surname> <given-names>TN</given-names></string-name></person-group>. <article-title>A C/C&#x002B;&#x002B; code vulnerability dataset with code changes and CVE summaries</article-title>. In: <conf-name>Proceedings of the 17th International Conference on Mining Software Repositories</conf-name>. <publisher-loc>New York, NY, USA</publisher-loc>: <publisher-name>ACM</publisher-name>; <year>2020</year>. p. <fpage>508</fpage>&#x2013;<lpage>12</lpage>. doi:<pub-id pub-id-type="doi">10.1145/3379597.3387501</pub-id>.</mixed-citation></ref>
<ref id="ref-48"><label>[48]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><surname>Lin</surname> <given-names>G</given-names></string-name>, <string-name><surname>Xiao</surname> <given-names>W</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>J</given-names></string-name>, <string-name><surname>Xiang</surname> <given-names>Y</given-names></string-name></person-group>. <chapter-title>Deep learning-based vulnerable function detection: a benchmark</chapter-title>. In: <source>Information and communications security</source>. <publisher-loc>Cham, Switzerland</publisher-loc>: <publisher-name>Springer International Publishing</publisher-name>; <year>2020</year>. p. <fpage>219</fpage>&#x2013;<lpage>32</lpage>. doi:<pub-id pub-id-type="doi">10.1007/978-3-030-41579-2_13</pub-id>.</mixed-citation></ref>
<ref id="ref-49"><label>[49]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><surname>Zou</surname> <given-names>Z</given-names></string-name>, <string-name><surname>Jiang</surname> <given-names>T</given-names></string-name>, <string-name><surname>Wang</surname> <given-names>Y</given-names></string-name>, <string-name><surname>Xue</surname> <given-names>T</given-names></string-name>, <string-name><surname>Zhang</surname> <given-names>N</given-names></string-name>, <string-name><surname>Luan</surname> <given-names>J</given-names></string-name></person-group>. <article-title>Code vulnerability detection based on augmented program dependency graph and optimized CodeBERT</article-title>. <source>Sci Rep</source>. <year>2025</year>;<volume>15</volume>(<issue>1</issue>):<fpage>39301</fpage>. doi:<pub-id pub-id-type="doi">10.1038/s41598-025-23029-4</pub-id>; <pub-id pub-id-type="pmid">41214092</pub-id></mixed-citation></ref>
</ref-list>
</back></article>