COSET: A Benchmark for Evaluating Neural Program Embeddings
arXiv:1905.11445
Abstract
Neural program embedding can be helpful in analyzing large software, a task that is challenging for traditional logic-based program analyses due to their limited scalability. A key focus of recent machine-learning advances in this area is on modeling program semantics instead of just syntax. Unfortunately evaluating such advances is not obvious, as program semantics does not lend itself to straightforward metrics. In this paper, we introduce a benchmarking framework called COSET for standardizing the evaluation of neural program embeddings. COSET consists of a diverse dataset of programs in source-code format, labeled by human experts according to a number of program properties of interest. A point of novelty is a suite of program transformations included in COSET. These transformations when applied to the base dataset can simulate natural changes to program code due to optimization and refactoring and can serve as a "debugging" tool for classification mistakes. We conducted a pilot study on four prominent models: TreeLSTM, gated graph neural network (GGNN), AST-Path neural network (APNN), and DYPRO. We found that COSET is useful in identifying the strengths and limitations of each model and in pinpointing specific syntactic and semantic characteristics of programs that pose challenges.
8 Pages
References in corpus (2)
Cited by in corpus (13)
- Natural Attack for Pre-trained Models of Code
- Contrastive Code Representation Learning
- On the Generalizability of Neural Program Models with respect to Semantic-Preserving Program Transformations
- Semantic Robustness of Models of Source Code
- Code Prediction by Feeding Trees to Transformers
- Learning Blended, Precise Semantic Program Embeddings
- Testing Neural Program Analyzers
- Evaluation of Generalizability of Neural Program Analyzers under Semantic-Preserving Transformations
- Learning Semantic Program Embeddings with Graph Interval Neural Network
- Study of Distractors in Neural Models of Code
- Towards Making Deep Learning-based Vulnerability Detectors Robust
- A Controlled Experiment of Different Code Representations for Learning-Based Bug Repair
- Generating Adversarial Computer Programs using Optimized Obfuscations