Modern software developers expect rich code intelligence, such as completion, go-to-definition, and reference search, regardless of the language. Yet, creating Language Server Protocol (LSP) servers that provide these features demands significant expertise, leaving many domain-specific and niche languages underserved. This thesis introduces uLangs, a toolkit that automates the synthesis of core code intelligence components from code examples and leverages them to provide intelligent IDE features. uLangs achieves this by first defining a Language Description Specification (LDS), composed of ANTLR grammars for parsing and Prolog adapters for semantic interpretation, then employing Large Language Models (LLMs) within an iterative generate-verify-repair process to automatically synthesize the LDS artifacts.
A case study on Lua demonstrated uLangs’ practical feasibility. It achieved 80% accuracy for “GotoDefinition“, outperforming a naive string-matching baseline. For “Find References“, uLangs exhibited high recall (97.6%), indicating effective candidate identification. uLangs demonstrates a significant reduction in the effort required to bootstrap LSP support, offering a novel approach combining generative AI with formal language tooling to make advanced developer tooling more accessible.
Supervisors: Volker Stolz, Shaukat Ali and Erblin Isaku
Git repository: https://github.com/jonaslsaa/ulangs
Zenodo: https://doi.org/10.5281/zenodo.15380780
Thesis: forthcoming
Presentation slides: PDF