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!
_version_ 1850203707671576576
author Tao Zan
Xing Zhang
Xiao He
Zhenjiang Hu
author_facet Tao Zan
Xing Zhang
Xiao He
Zhenjiang Hu
author_sort Tao Zan
collection DOAJ
description 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.
format Article
id doaj-art-267ee5fe253041e98ee960ef071dddcd
institution OA Journals
issn 2078-2489
language English
publishDate 2025-02-01
publisher MDPI AG
record_format Article
series Information
spelling doaj-art-267ee5fe253041e98ee960ef071dddcd2025-08-20T02:11:26ZengMDPI AGInformation2078-24892025-02-0116316910.3390/info16030169Intentionally Fusing Direct Manipulations into SVG ProgramsTao Zan0Xing Zhang1Xiao He2Zhenjiang Hu3School of Mathematics and Information Engineering, Longyan University, Longyan 364012, ChinaSchool of Computer Science, Peking University, Beijing 100871, ChinaSchool of Computer and Communication Engineering, University of Science and Technology of Beijing, Beijing 100083, ChinaSchool of Computer Science, Peking University, Beijing 100871, ChinaBidirectional 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.https://www.mdpi.com/2078-2489/16/3/169bidirectional live programmingmanipulation-directed programmingSVG
spellingShingle Tao Zan
Xing Zhang
Xiao He
Zhenjiang Hu
Intentionally Fusing Direct Manipulations into SVG Programs
Information
bidirectional live programming
manipulation-directed programming
SVG
title Intentionally Fusing Direct Manipulations into SVG Programs
title_full Intentionally Fusing Direct Manipulations into SVG Programs
title_fullStr Intentionally Fusing Direct Manipulations into SVG Programs
title_full_unstemmed Intentionally Fusing Direct Manipulations into SVG Programs
title_short Intentionally Fusing Direct Manipulations into SVG Programs
title_sort intentionally fusing direct manipulations into svg programs
topic bidirectional live programming
manipulation-directed programming
SVG
url https://www.mdpi.com/2078-2489/16/3/169
work_keys_str_mv AT taozan intentionallyfusingdirectmanipulationsintosvgprograms
AT xingzhang intentionallyfusingdirectmanipulationsintosvgprograms
AT xiaohe intentionallyfusingdirectmanipulationsintosvgprograms
AT zhenjianghu intentionallyfusingdirectmanipulationsintosvgprograms