Live programming brings code to life with immediate and continuous feedback. To enjoy its benefits, programmers need powerful languages and live programming environments for understanding the effects of code modifications on running programs. Unfortunately, the enabling technology that powers these languages, is missing. Change, a crucial enabler for explorative coding, omniscient debugging and version control, is a potential solution. We aim to deliver generic solutions for creating these languages, in particular Domain-Specific Languages (DSLs). We present Cascade, a meta-language for expressing DSLs with interface- and feedback-mechanisms that drive live programming. We demonstrate run-time migrations, ripple effects and live desugaring of three existing DSLs. Our results show that an explicit representation of change is instrumental for how these languages are built, and that cause-and-effect relationships are vital for delivering precise feedback.

, , , ,
16th ACM SIGPLAN International Conference on Software Language Engineering, SLE 2023
Centrum Wiskunde & Informatica, Amsterdam (CWI), The Netherlands

van Rozen, R. (2023). Cascade: A meta-language for change, cause and effect. In Proceedings of the ACM SIGPLAN International Conference on Software Language Engineering (pp. 149–162). doi:10.1145/3623476.3623515