Towards Automated Language Server Synthesis (Jonas Lien Sampaio da Silva)

Building Language Servers by Extracting Grammars and Semantics from Code Examples

By Jonas Lien Sampaio da Silva, Volker Stolz
Published June 21, 2025

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

Tags: LSP, language server
Published June 21, 2025 11:21 AM - Last modified July 16, 2025 4:45 PM