Using Spoofax to Support Online Code Navigation

03/06/2023
by   Peter D. Mosses, et al.
0

Spoofax is a language workbench. A Spoofax language specification generally includes name resolution: the analysis of bindings between definitions and references. When browsing code in the specified language using Spoofax, the bindings appear as hyperlinks, supporting precise name-based code navigation. However, Spoofax cannot be used for browsing code in online repositories. This paper is about a toolchain that uses Spoofax to generate hyperlinked twins of code repositories. These generated artefacts support the same precise code navigation as Spoofax, and can be browsed online. The technique has been prototyped on the CBS (Component-Based Semantics) specification language developed by the PLanCompS project, but could be used on any language after specifying its name resolution in Spoofax.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
09/12/2023

Online Name-Based Navigation for Software Meta-languages

Software language design and implementation often involve specifications...
research
07/31/2019

Aquarium Technical Report Preprint

In this technical report, we present the core calculi for two of the dom...
research
07/31/2019

Aquarium: Cassiopea and Alewife Languages

This technical report describes two of the domain specific languages use...
research
06/27/2022

A Formal Specification of Operating System based on ARINC 653

In this paper, by using the formal language Circus, we give a formal spe...
research
05/24/2018

DesignBIP: A Design Studio for Modeling and Generating Systems with BIP

The Behavior-Interaction-Priority (BIP) framework, rooted in rigorous se...
research
12/07/2021

A Specification for Typed Template Haskell

Multi-stage programming is a proven technique that provides predictable ...
research
04/28/2021

Mapping Spreadsheets to RDF: Supporting Excel in RML

The RDF Mapping Language (RML) enables, among other formats, the mapping...

Please sign up or login with your details

Forgot password? Click here to reset