A Learning-Based Approach to Static Program Slicing
summary
NS-Slicer uses a pre-trained language model to produce statement embeddings and two small classifiers that predict per-statement inclusion in backward or forward static slices. Trained on ~43,000 (program,criterion,slice) tuples derived with Java Slicer, it achieves micro F1 ≈97% and exact-slice match 85.2% on complete code, and exact-match 73–84% after stripping statements to simulate incomplete snippets. Integrating NS-Slicer slices into the vulnerability detector Wipecker yields about 73% F1, showing learned slices help downstream security tasks.
AI-written summary · about
chapters (13)
- 0:00Neural program slicing intro
- 3:22Traditional slicing limits
- 5:08Neural static slicer approach
- 7:16Training and dataset prep
- 8:21Evaluation setup and metrics
- 9:24Results with language models
- 10:47Performance on incomplete code
- 11:30Robustness to code incompleteness
- 12:35Slices for vulnerability detection
- 14:23Model insights and probing
- 14:45Advantages and future apps
- 15:31Summary and job market
- 15:51Q&A
related talks
27mBinSim: Trace-based Semantic Binary Diffing...
24mSymbiotic: finding bugs in C programs
30mData Driven Security
18mActive Learning for Neurosymbolic Program Synthesis
48mMethod of detecting vulnerability in WebApps using Machine Learning
12mEnhancing Code Vulnerability Detection via Vulnerability-Preserving Data Augmentation
22mSNIP: Speculative Execution and Non-Interference Preservation for Compiler Transformations
16mCodeExtract: Enhancing Binary Code Similarity Detection with Code Extraction Techniques
