Convolutional Neural Networks over Tree Structures for Programming Language Processing
arXiv:1409.5718
Abstract
Programming language processing (similar to natural language processing) is a hot research topic in the field of software engineering; it has also aroused growing interest in the artificial intelligence community. However, different from a natural language sentence, a program contains rich, explicit, and complicated structural information. Hence, traditional NLP models may be inappropriate for programs. In this paper, we propose a novel tree-based convolutional neural network (TBCNN) for programming language processing, in which a convolution kernel is designed over programs' abstract syntax trees to capture structural information. TBCNN is a generic architecture for programming language processing; our experiments show its effectiveness in two different program analysis tasks: classifying programs according to functionality, and detecting code snippets of certain patterns. TBCNN outperforms baseline methods, including several neural models for NLP.
Accepted at AAAI-16
References in corpus (4)
Cited by in corpus (88)
- Discriminative Embeddings of Latent Variable Models for Structured Data
- CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generation
- Neo: A Learned Query Optimizer
- Bao: Learning to Steer Query Optimizers
- Checking Smart Contracts with Structural Code Embedding
- A Convolutional Attention Network for Extreme Summarization of Source Code
- On the Feasibility of Transfer-learning Code Smells using Deep Learning
- On the Generalizability of Neural Program Models with respect to Semantic-Preserving Program Transformations
- StaQC: A Systematically Mined Question-Code Dataset from Stack Overflow
- SynCoBERT: Syntax-Guided Multi-Modal Contrastive Pre-Training for Code Representation
- A Survey of Automatic Generation of Source Code Comments: Algorithms and Techniques
- A deep language model for software code
- Language-Agnostic Representation Learning of Source Code from Structure and Context
- Commit2Vec: Learning Distributed Representations of Code Changes
- Dynamic Neural Program Embedding for Program Repair
- 500+ Times Faster Than Deep Learning (A Case Study Exploring Faster Methods for Text Mining StackOverflow)
- CRaDLe: Deep Code Retrieval Based on Semantic Dependency Learning
- LambdaNet: Probabilistic Type Inference using Graph Neural Networks
- Natural Language Inference by Tree-Based Convolution and Heuristic Matching
- Learning Continuous Semantic Representations of Symbolic Expressions
- On the Replicability and Reproducibility of Deep Learning in Software Engineering
- Precise Learning of Source Code Contextual Semantics via Hierarchical Dependence Structure and Graph Attention Networks
- CodeGRU: Context-aware Deep Learning with Gated Recurrent Unit for Source Code Modeling
- Adversarial Robustness for Code
- Convolutional Neural Networks over Control Flow Graphs for Software Defect Prediction
- Backward and Forward Language Modeling for Constrained Sentence Generation
- ProGraML: Graph-based Deep Learning for Program Optimization and Analysis
- COSET: A Benchmark for Evaluating Neural Program Embeddings
- A Neural Architecture for Generating Natural Language Descriptions from Source Code Changes
- Embedding API Dependency Graph for Neural Code Generation
- TreeBERT: A Tree-Based Pre-Trained Model for Programming Language
- SPI: Automated Identification of Security Patches via Commits
- TreeGen: A Tree-Based Transformer Architecture for Code Generation
- Learning Blended, Precise Semantic Program Embeddings
- Learning Scalable and Precise Representation of Program Semantics
- DeepBugs: A Learning Approach to Name-based Bug Detection
- Cross-Language Learning for Program Classification using Bilateral Tree-Based Convolutional Neural Networks
- A Survey on Machine Learning Techniques for Source Code Analysis
- Automatic Source Code Summarization with Extended Tree-LSTM
- InferCode: Self-Supervised Learning of Code Representations by Predicting Subtrees
- CoCoSum: Contextual Code Summarization with Multi-Relational Graph Neural Network
- A Self-Attentional Neural Architecture for Code Completion with Multi-Task Learning
- Machine Learning Techniques for Software Quality Assurance: A Survey
- SEED: Semantic Graph based Deep detection for type-4 clone
- Neutaint: Efficient Dynamic Taint Analysis with Neural Networks
- Towards Proof Synthesis Guided by Neural Machine Translation for Intuitionistic Propositional Logic
- Topology-Aware Graph Pooling Networks
- TreeCaps: Tree-Based Capsule Networks for Source Code Processing
- A Cross-Architecture Instruction Embedding Model for Natural Language Processing-Inspired Binary Code Analysis
- Mining Fix Patterns for FindBugs Violations
- MISIM: A Neural Code Semantics Similarity System Using the Context-Aware Semantics Structure
- Code Summarization with Structure-induced Transformer
- Automated proof synthesis for propositional logic with deep neural networks
- Query2Vec: An Evaluation of NLP Techniques for Generalized Workload Analytics
- Deep Learning for Bug-Localization in Student Programs
- DeepSoft: A vision for a deep model of software
- TreeCaps: Tree-Structured Capsule Networks for Program Source Code Processing
- Predicting Missing Information of Key Aspects in Vulnerability Reports
- Automating Program Structure Classification
- Efficient Deep Learning Pipelines for Accurate Cost Estimations Over Large Scale Query Workload
- BLESER: Bug Localization Based on Enhanced Semantic Retrieval
- Deep Data Flow Analysis
- Rethinking complexity for software code structures: A pioneering study on Linux kernel code repository
- A Comparison of Code Embeddings and Beyond
- Context-Aware Parse Trees
- Exploiting Method Names to Improve Code Summarization: A Deliberation Multi-Task Learning Approach
- Improving the Robustness to Data Inconsistency between Training and Testing for Code Completion by Hierarchical Language Model
- Towards Better Modeling Hierarchical Structure for Self-Attention with Ordered Neurons
- PSCS: A Path-based Neural Model for Semantic Code Search
- Predicting Variable Types in Dynamically Typed Programming Languages
- Learning Execution through Neural Code Fusion
- Plot2API: Recommending Graphic API from Plot via Semantic Parsing Guided Neural Network
- Deep Learning on Attributed Graphs: A Journey from Graphs to Their Embeddings and Back
- How could Neural Networks understand Programs?
- SPARK: Static Program Analysis Reasoning and Retrieving Knowledge
- Detecting Low Rating Android Apps Before They Have Reached the Market
- Improve Language Modelling for Code Completion through Statement Level Language Model based on Statement Embedding Generated by BiLSTM
- Semi-Supervised Verified Feedback Generation
- Mining Program Properties From Neural Networks Trained on Source Code Embeddings
- Universal Representation for Code
- Using Structured Input and Modularity for Improved Learning
- Intrinsic Geometric Information Transfer Learning on Multiple Graph-Structured Datasets
- GANCoder: An Automatic Natural Language-to-Programming Language Translation Approach based on GAN
- Improving Automatic Source Code Summarization via Deep Reinforcement Learning
- CAST: Enhancing Code Summarization with Hierarchical Splitting and Reconstruction of Abstract Syntax Trees
- Modeling Programs Hierarchically with Stack-Augmented LSTM
- Modular Tree Network for Source Code Representation Learning
- Learning to Extend Program Graphs to Work-in-Progress Code