Welcome to the upgraded MacSphere! We're putting the finishing touches on it; if you notice anything amiss, email macsphere@mcmaster.ca

LEVER: A Framework for DSL Editor Support

dc.contributor.advisorMosser, Sébastien
dc.contributor.authorLachance, Alexandre
dc.contributor.departmentComputing and Softwareen_US
dc.date.accessioned2025-01-29T19:45:49Z
dc.date.available2025-01-29T19:45:49Z
dc.date.issued2024
dc.description.abstractWhile Domain-Specific Languages (DSLs) offer greater expressiveness for domain-specific tasks than General-Purpose Languages (GPLs), they have smaller communities behind them and fewer resources available. This is often reflected in the quantity and quality of available tooling for DSLs as compared to GPLs. This disparity is particularly evident in the case of DSL in-editor support where developers have become accustomed to features such as syntax-highlighting, auto-completion, and context-aware renaming. Developing such tooling for DSLs is challenging due to the significant effort required to implement features from scratch. To address this problem, this thesis proposes Lever , a framework for building editor support for DSLs. To reduce implementation cost and stay lightweight, Lever utilizes existing language artifacts (the grammar and the existing tooling). It uses a rule-based system that adds the necessary semantics to map the Concrete Syntax Tree (CST) to a language agnostic Abstract Syntax Tree (AST) and Symbol Table (ST). Lever enables cross-editor compatibility through the usage of the Language Server Protocol (LSP). The practical use of Lever is demonstrated through a case study on building editor support for the P4 DSL. Furthermore, a comparison with Langium and MPS in implementing language support for the Protobuf DSL reveals that Lever offers greater ease of use and functionality for this use case.en_US
dc.description.degreeMaster of Applied Science (MASc)en_US
dc.description.degreetypeThesisen_US
dc.description.layabstractDomain-Specific Languages (DSLs) are specialized programming languages made to solve domain specific problems. They are powerful and efficient tools for developers working within those specific domains. However, creating editor support for DSLs (e.g., syntax highlighting, code completion), is challenging due to their smaller user bases and complexities involved in development. For this reason, developers using DSLs often lack the tooling they have become accustomed to with General-Purpose Languages (GPLs). This thesis addresses these challenges by proposing the Lever framework, a lightweight and adaptable solution for building language support tooling targeting DSLs. Lever leverages existing artifacts and a rule-based system to provide editor support, making DSLs more accessible and user-friendly. A case study using Lever to build editor support for an industry DSL demonstrates its practical application, while a comparison of implementing language support for the Protobuf DSL with Lever , Langium, and MPS highlights Lever ’s superior ease of use and functionality.en_US
dc.identifier.urihttp://hdl.handle.net/11375/30989
dc.language.isoenen_US
dc.subjectDomain-Specific Languagesen_US
dc.subjectFrameworken_US
dc.subjectLanguage Server Protocolen_US
dc.subjectEditor Toolingen_US
dc.titleLEVER: A Framework for DSL Editor Supporten_US
dc.typeThesisen_US

Files

Original bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
lachance_alexandre_202412_masc.pdf
Size:
3.03 MB
Format:
Adobe Portable Document Format

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.68 KB
Format:
Item-specific license agreed upon to submission
Description: