On the Soundness of Auto-Completion Services for Dynamically Typed Languages
summary
Claims a name-sound auto-complete for dynamic languages by combining abstract interpretation with annotated scope graphs and a context-dependent name resolution calculus, producing per-cursor scope models that mark declarations as definitely or maybe present. Prototype on a Python subset generates only definitely-safe completions (trading recall for precision), beats Pylance/Jedi/PyCharm on several dynamic-field and global-introduction cases, fails to suggest values from unexecuted functions, and reports results as precision/recall pairs rather than raw counts.
AI-written summary · about
chapters (12)
- 0:00Auto-completion services intro
- 1:46Completion candidate challenges
- 3:29Sound completion candidates
- 5:13Abstract interpretation for names
- 7:18Scope graphs from heaps
- 9:06Semantics-based candidates
- 11:33Annotated scope graphs
- 13:19Optimizing scope graphs
- 15:05Soundness in Python
- 19:20Future work
- 20:44Summary
- 21:11Question and answer session
related talks
29mLanguage-parametric static semantic code completion
26mDesign a new language in JS: from zero to autocomplete
29mBeyond Autocomplete: Local AI Code Completion Demystified
25mIncremental Type-Checking for Free: Using Scope Graphs to Derive Incremental Type-Checkers
20mAn Approach to Generate Text-Based IDEs for Syntax Correction based on Syntax Specification
27mDream in Code
01h 06mOn-The-Fly Verification via Incremental, Interactive Abstract Interpretation wi...
18mTowards a Language-parametric DSL for Refactoring (Short Paper)
