Type Theory as a Language Workbench

01/30/2023
by   Jan de Muijnck-Hughes, et al.
0

Language Workbenches offer language designers an expressive environment in which to create their DSLs. Similarly, research into mechanised meta-theory has shown how dependently typed languages provide expressive environments to formalise and study DSLs and their meta-theoretical properties. But can we claim that dependently typed languages qualify as language workbenches? We argue yes! We have developed an exemplar DSL called Velo that showcases not only dependently typed techniques to realise and manipulate IRs, but that dependently typed languages make fine language workbenches. Velo is a simple verified language with well-typed holes and comes with a complete compiler pipeline: parser, elaborator, REPL, evaluator, and compiler passes. Specifically, we describe our design choices for well-typed IRs design that includes support for well-typed holes, how CSE is achieved in a well-typed setting, and how the mechanised type-soundness proof for Velo is the source of the evaluator.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
01/10/2022

RISE Shine: Language-Oriented Compiler Design

The trend towards specialization of software and hardware - fuelled by t...
research
01/25/2022

The Trusted Computing Base of the CompCert Verified Compiler

CompCert is the first realistic formally verified compiler: it provides ...
research
07/21/2017

A Verified Compiler for Probability Density Functions

Bhat et al. developed an inductive compiler that computes density functi...
research
06/07/2018

Rust Distilled: An Expressive Tower of Languages

Rust represents a major advancement in production programming languages ...
research
11/29/2022

Right and wrong: ten choices in language design

A description of language design choices that have profound effects on s...
research
04/26/2023

Neuro-symbolic Zero-Shot Code Cloning with Cross-Language Intermediate Representation

In this paper, we define a neuro-symbolic approach to address the task o...
research
02/05/2020

Patterns for Name Analysis and Type Analysis with JastAdd

In the last two decades, tools have been implemented to more formally sp...

Please sign up or login with your details

Forgot password? Click here to reset