“…According to the different representations of source code, we divide the source code modeling into four types: Token-based, Tree-based, Graph-based, and other source code modeling. [40] IJCAI AST CCD LSTM [6] ICPC AST SCS Seq2seq [17] IJCAJ × (API, comments) (API, code, comments) SCS LSTM [19] ASE AST, sourcecode SCS Bi-LSTM [43] ICLR AST, (token, path, token) PF, SCS HOPE [50] MSR identifier, AST, CFG, Bytecode CCD RNN [51] ICLR variable/statetrace PR Word2vec [53] ESEC abstractedsymbolictraces ECM GGNN [55] ICLR AST, PDG PF MLP [62] ASE × tokens SCS RNN [63] AAAI AST SCS, SCC GRU [22] ICSE text, ASTnodetokens SCS Bi-LSTM [46] ICSE AST, ST-trees SCC, CCD Bi-LSTM [64] POPL AST, (token, path, token) PF Bi-LSTM [65] ASE text SCS Bi-LSTM [23] ICSE × AST, codesequence SCS BERT [24] Access functionalkeywords SCS Transformer [25] arXiv × comments, code SCS, CR Transformer [26] ACL × AST SCS GRU [44] ESE tokens, AST SCS Regularizer [56] IST AST SCG GRU [66] JCRD (code, API, comments), (function, comments) SCS GRU [67] ACL text, ASTnodetokens SCS GNN [68] arXiv AST, context SCS Seq2Seq [69] ICPC × (seq, comment), (context, comment) SCS API2Com [70] ICPC AST, API, seq SCS…”