Skip to main contentSkip to search
Episciences
Open Access Journals
Sign in(new window)
Journal of Functional Programming logo
Journal of Functional Programming
Journal of Functional Programming logo
Journal of Functional Programming
Sign in(new window)
Articles & Issues
All articlesAll accepted articlesAll volumesSectionsAuthors
About
The journalIndexingNews
Boards
Publish
For authorsEthical charterFor reviewers
Submit
Journal of Functional Programming logo
Journal's leaflet
|
Contact
|
Credits
eISSN 1469-7653
|
RSS
|
Atom
Episciences
Documentation
|
Acknowledgements
|
Publishing policy
Accessibility: non-compliant
|
Legal mentions
|
Privacy statement
|
Terms of use
  1. Home > Articles & Issues >
  2. Articles >
  3. Mixing visual and te ...
Article

Mixing visual and textual code

Leif Andersen, Michael Ballantyne, Cameron Moy, Matthias Felleisen, Stephen Chang
Download article
Open on arXiv
Submitted on
August 22, 2024
Accepted on
December 1, 2025
Published on
August 9, 2026
Last modified on
August 9, 2026
Volume 36
Volume 36
DOI
10.46298/jfp.17766

Mixing visual and textual code

Leif Andersen, Michael Ballantyne, Cameron Moy, Matthias Felleisen, Stephen Chang
Abstract
The dominant programming languages support nothing but linear text to express domain-specific geometric ideas. What is needed are hybrid languages that allow developers to create visual syntactic constructs so that they can express their ideas with a mix of textual and visual syntax tailored to an application domain. This mix must put the two kinds of syntax on equal footing and, just as importantly, the extended language must not disrupt a programmer's typical workflow. This means that any new visual syntax should be a proper language extension that is composable with other language features. Furthermore, the extensions should also preserve static reasoning about the program. This paper presents Hybrid ClojureScript the first such hybrid programming language. Hybrid ClojureScript allows programmers to add visual interactive syntax and to embed instances of this syntax within a program's text. An enhanced hybrid IDE can then display these embedded instances as mini-GUIs that programmers interact with, while other IDEs will show a textual representation of the syntax. The paper argues the necessity of such an extensibility mechanism, demonstrates the adoptability of the design, and discusses what might be needed to use the design in other languages.
Keywords
  • Programming Languages
Preview
Loading PDF preview...