English
Related papers

Related papers: Multi-Stage Programs are Generalized Arrows

200 papers

Multi-level languages and Arrows both facilitate metaprogramming, the act of writing a program which generates a program. The arr function required of all Arrows turns arbitrary host language expressions into guest language expressions;…

Programming Languages · Computer Science 2011-04-13 Adam Megacz

Multi-stage programming is a proven technique that provides predictable performance characteristics by controlling code generation. We propose a core semantics for Typed Template Haskell, an extension of Haskell that supports multi staged…

Programming Languages · Computer Science 2021-12-08 Matthew Pickering , Andres Löh , Nicolas Wu

Multi-stage languages support generative metaprogramming via macros evaluated in a process preceding the actual interpretation or compilation of the program in which they are used. Macros update the source of their hosting program by…

Programming Languages · Computer Science 2018-07-05 Anthony Savidis , Yannis Apostolidis , Yannis Lilis

We study a dependently typed extension of a multi-stage programming language \`a la MetaOCaml, which supports quasi-quotation and cross-stage persistence for manipulation of code fragments as first-class values and an evaluation construct…

Programming Languages · Computer Science 2021-08-18 Akira Kawata , Atsushi Igarashi

Completeness proofs in categorical semantics usually proceed by building a syntactic category whose composition is given by substitution. For untyped effectful Call-by-Value languages, this runs into a basic obstacle: there is no canonical…

Programming Languages · Computer Science 2026-05-21 Ariel Grunfeld , Liron Cohen

Using a dependently typed host language, we give a well scoped-and-typed by construction presentation of a minimal two level simply typed calculus with a static and a dynamic stage. The staging function partially evaluating the part of a…

Programming Languages · Computer Science 2024-01-12 Guillaume Allais

The aim of staged compilation is to enable metaprogramming in a way such that we have guarantees about the well-formedness of code output, and we can also mix together object-level and meta-level code in a concise and convenient manner. In…

Programming Languages · Computer Science 2022-09-21 András Kovács

Arrows are a general interface for computation and an alternative to Monads for API design. In contrast to Monad-based parallelism, we explore the use of Arrows for specifying generalised parallelism. Specifically, we define an Arrow-based…

Programming Languages · Computer Science 2018-01-09 Martin Braun , Oleg Lobachev , Phil Trinder

Relative monads provide a controlled view of computation. We generalise the monadic metalanguage to a relative setting and give a complete semantics with strong relative monads. Adopting this perspective, we generalise two existing program…

Programming Languages · Computer Science 2025-12-15 Jack Liell-Cock , Zev Shirazi , Sam Staton

In previous work ("From signatures to monads in UniMath"), we described a category-theoretic construction of abstract syntax from a signature, mechanized in the UniMath library based on the Coq proof assistant. In the present work, we…

Programming Languages · Computer Science 2021-12-15 Benedikt Ahrens , Ralph Matthes , Anders Mörtberg

Notions of guardedness serve to delineate admissible recursive definitions in various settings in a compositional manner. In recent work, we have introduced an axiomatic notion of guardedness in symmetric monoidal categories, which serves…

Logic in Computer Science · Computer Science 2021-05-25 Sergey Goncharov , Christoph Rauch , Lutz Schröder

This tutorial gives an advanced introduction to string diagrams and graph languages for higher-order computation. The subject matter develops in a principled way, starting from the two dimensional syntax of key categorical concepts such as…

Logic in Computer Science · Computer Science 2024-12-05 Dan Ghica , Fabio Zanasi

We present a novel approach to generic programming over extensible data types. Row types capture the structure of records and variants, and can be used to express record and variant subtyping, record extension, and modular composition of…

Programming Languages · Computer Science 2023-07-21 Alex Hubers , J. Garrett Morris

Combining higher-order abstract syntax and (co)induction in a logical framework is well known to be problematic. Previous work described the implementation of a tool called Hybrid, within Isabelle HOL, which aims to address many of these…

Logic in Computer Science · Computer Science 2010-05-27 Amy Felty , Alberto Momigliano

Despite extensive research both on the theoretical and practical fronts, formalising, reasoning about, and implementing languages with variable binding is still a daunting endeavour - repetitive boilerplate and the overly complicated…

Logic in Computer Science · Computer Science 2022-01-11 Marcelo Fiore , Dmitrij Szamozvancev

Multilevel modeling extends traditional modeling techniques with a potentially unlimited number of abstraction levels. Multilevel models can be formally represented by multilevel typed graphs whose manipulation and transformation are…

Software Engineering · Computer Science 2020-06-26 Uwe Wolter , Fernando Macías , Adrian Rutle

We present a categorical framework for formal systems in which inference rules with $m$ metavariables over a category of syntax $\mathscr{S}$, taken to be a cartesian PROP, are represented by operations of arity $k \to n$ equipped with…

Category Theory · Mathematics 2026-04-10 Paul Wilson

Automata learning is a popular technique used to automatically construct an automaton model from queries. Much research went into devising ad hoc adaptations of algorithms for different types of automata. The CALF project seeks to unify…

Formal Languages and Automata Theory · Computer Science 2023-02-03 Gerco van Heerdt , Tobias Kappé , Jurriaan Rot , Matteo Sammartino , Alexandra Silva

Metatheorems about type theories are often proven by interpreting the syntax into models constructed using categorical gluing. We propose to use only sconing (gluing along a global section functor) instead of general gluing. The sconing is…

Logic in Computer Science · Computer Science 2023-05-10 Rafaël Bocquet , Ambrus Kaposi , Christian Sattler

In recent work we have presented a formal framework for linguistic annotation based on labeled acyclic digraphs. These `annotation graphs' offer a simple yet powerful method for representing complex annotation structures incorporating…

Computation and Language · Computer Science 2007-05-23 Steven Bird , Mark Liberman
‹ Prev 1 2 3 10 Next ›