Intentionally Fusing Direct Manipulations into SVG Programs

Bidirectional live programming is a programming paradigm that enhances the developer experience by allowing direct modifications to the output, with changes instantly reflected back to the source program. Existing operation-based approaches allow modifying the constant values and expressions of prog...

Full description

Saved in:
Bibliographic Details
Main Authors: Tao Zan, Xing Zhang, Xiao He, Zhenjiang Hu
Format: Article
Language:English
Published: MDPI AG 2025-02-01
Series:Information
Subjects:
Online Access:https://www.mdpi.com/2078-2489/16/3/169
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Bidirectional live programming is a programming paradigm that enhances the developer experience by allowing direct modifications to the output, with changes instantly reflected back to the source program. Existing operation-based approaches allow modifying the constant values and expressions of programs, while they lack control over modifications originating from multiple updatable locations. To control the updatability of the source program, our approach introduces non-updatable expressions, which guide the fusion of updates to the intended locations. The correctness properties, <span style="font-variant: small-caps;">GetPut</span> and <span style="font-variant: small-caps;">WeakPutGet</span>, ensure output consistency. We have implemented a prototype, FuseSVG, and tested it with 14 nontrivial SVG-drawing benchmarks, demonstrating the effectiveness of our approach.
ISSN:2078-2489