代码表示学习:token级别代码图表示

参考文献

Combining Graph-Based Learning With Automated Data Collection for Code Vulnerability Detection - TIFS'21
 
 

Token级别代码图表示

  代码图表示分为语句级别和token基本2个粒度,其区别在于边的位置是添加在token粒度还是statement粒度上,如下图所示:

  左图的语义边只在语句节点之间相连,而右图的语义边除了语句节点之间以外,还有在token级别节点之间连接

 

          语句级别代码图表示                       token级别代码图表示

 

 

1 Token级别代码图表示构建:

  • 以AST为核心;
  • 在AST基础上添加多种类型的边,增强语义表示能力;
    • Data and control flows:数据流和控制流,语句节点之间相连,与语句级别图表示相同;
    • GuardedBy:token之间的控制流关系,对顺序类漏洞的检测是否有效;
    • Jump:语句之间的控制依赖关系,CDG
    • ComputedFrom:

  

 

 

 

 

 

 
posted @ 2021-07-02 17:08  RiSAME  阅读(613)  评论(0编辑  收藏  举报