Language Agnostic Code Exploration Services

Master Thesis (2023)
Author(s)

J.B. Dönszelmann (TU Delft - Electrical Engineering, Mathematics and Computer Science)

Contributor(s)

Koen Langendoen – Mentor (TU Delft - Embedded Systems)

Jesper Cockx – Graduation committee member (TU Delft - Programming Languages)

D.M. Groenewegen – Coach (TU Delft - Programming Languages)

D.A.A. Pelsmaeker – Coach (TU Delft - Programming Languages)

Faculty
Electrical Engineering, Mathematics and Computer Science
Copyright
© 2023 Jonathan Dönszelmann
More Info
expand_more
Publication Year
2023
Language
English
Copyright
© 2023 Jonathan Dönszelmann
Graduation Date
27-10-2023
Awarding Institution
Delft University of Technology
Programme
Computer Science
Faculty
Electrical Engineering, Mathematics and Computer Science
Reuse Rights

Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.

Abstract

Programmers spend significantly more time trying to comprehend existing code than writing new code. They gain an understanding of the code by navigating the code base in an IDE, by reading documentation online, and by browsing code repositories on websites such as GitHub. To create rich experiences for programming languages across those various media is a large effort for developers of programming languages. This effort might be worthwhile for popular languages, but for new or experimental languages the required effort is often too large. Solutions to reduce this effort of implementing an IDE exist,such as LSP, but to reduce the effort in other places outside IDEs, we introduce the Codex metadata format, which separates language-specific generation of code metadata from its language-agnostic presentation. To demonstrate this approach by implementing four language-specific metadata generators (based on LSP, CTAGS, TextMate and Elaine) and two language-agnostic presentations (PDF documents and a code viewer websites) of code and metadata. To demonstrate different kinds of code metadata, we implemented four code exploration services: syntax colouring, code navigation, structure outline, and diagnostic messages. We show that with the Codex metadata format, we can decouple the metadata generators from the presentations.

Files

Thesis_oct_16_for_koen.pdf
(pdf | 3.66 Mb)
License info not available