{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,2]],"date-time":"2026-10-02T12:50:07Z","timestamp":1790945407333,"version":"4.1.0"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2020,11,13]],"date-time":"2020-11-13T00:00:00Z","timestamp":1605225600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2020,11,13]]},"abstract":"<jats:p>Many programming problems call for turning geometrical thoughts into code: tables, hierarchical structures, nests of objects, trees, forests, graphs, and so on. Linear text does not do justice to such thoughts. But, it has been the dominant programming medium for the past and will remain so for the foreseeable future.<\/jats:p>\n                  <jats:p>This paper proposes a novel mechanism for conveniently extending textual programming languages with problem-specific visual syntax. It argues the necessity of this language feature, demonstrates the feasibility with a robust prototype, and sketches a design plan for adapting the idea to other languages.<\/jats:p>","DOI":"10.1145\/3428290","type":"journal-article","created":{"date-parts":[[2020,11,24]],"date-time":"2020-11-24T18:40:14Z","timestamp":1606243214000},"page":"1-28","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":23,"title":["Adding interactive visual syntax to textual code"],"prefix":"10.1145","volume":"4","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-6179-7784","authenticated-orcid":false,"given":"Leif","family":"Andersen","sequence":"first","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Michael","family":"Ballantyne","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,11,13]]},"reference":[{"key":"e_1_2_2_1_1","volume-title":"Retrieved","year":"2020"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/3110274"},{"key":"e_1_2_2_3_1","volume-title":"Retrieved","author":"Ashkenas Jeremy","year":"2020"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289509"},{"key":"e_1_2_2_5_1","volume-title":"Square Bracket Associates","author":"Bergel Alexandre","year":"2013"},{"key":"e_1_2_2_6_1","volume-title":"Maplesoft","author":"Bernardin L.","year":"2012"},{"key":"e_1_2_2_7_1","volume-title":"Visual Programming Languages: a Survey. EECS Department","author":"Boshernitsan Marat","year":"2004"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2980983.2908103"},{"key":"e_1_2_2_9_1","volume-title":"Tree Automata Techniques and Applications","author":"Comon Hubert","year":"2007"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/11693024_20"},{"key":"e_1_2_2_11_1","volume-title":"Introduction to Algorithms","author":"Cormen Thomas H.","year":"2009"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/6592.6595"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1160074.1159805"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1218563.1218573"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.7249\/RM6001"},{"key":"e_1_2_2_16_1","volume-title":"The Grail Project: An Experiment in Man-Machine Communications","author":"Ellis T. O.","year":"1969"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2189751.2047891"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/3127323"},{"key":"e_1_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796801004208"},{"key":"e_1_2_2_20_1","volume-title":"DrRacket: Programming Environment","author":"Findler Robert Bruce","year":"2010"},{"key":"e_1_2_2_21_1","first-page":"72","volume-title":"Proc. International Conference on Functional Programming","author":"Flatt Matthew","year":"2002"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2517208.2517211"},{"key":"e_1_2_2_23_1","volume-title":"Robert Bruce Findler, and John Clements. GUI : Racket Graphics Toolkit","author":"Flatt Matthew","year":"2010"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1007\/11924661_17"},{"key":"e_1_2_2_25_1","volume-title":"Racket","author":"Flatt Matthew","year":"2010"},{"key":"e_1_2_2_26_1","volume-title":"AMPL: A Modeling Language for Mathematical Programming","author":"Fourer Robert","year":"2002","edition":"2"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.2182"},{"key":"e_1_2_2_28_1","volume-title":"The Language and Its Implementation","author":"Goldberg Adele","year":"1983"},{"key":"e_1_2_2_29_1","first-page":"1","volume-title":"Proc. Constructionism","author":"Harvey Brian","year":"2010"},{"key":"e_1_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180165"},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-89275-5_2"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1932682.1869497"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2807442.2807446"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1124772.1124831"},{"key":"e_1_2_2_35_1","first-page":"39","volume-title":"An Introduction to Morphic: The Squeak User Interface Framework","author":"Maloney John","year":"2001"},{"key":"e_1_2_2_36_1","volume-title":"Retrieved","year":"2019"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796899003494"},{"key":"e_1_2_2_38_1","volume-title":"Proc. Workshop on Type-driven Development","author":"Omar Cyrus","year":"2019"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2012.6227133"},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.2004.1297314"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500828.2500846"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/MCSE.2007.53"},{"key":"e_1_2_2_43_1","volume-title":"RFC 793","author":"Postel Jon","year":"1981"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1592761.1592779"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3126594.3126642"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167515.1167511"},{"key":"e_1_2_2_47_1","volume-title":"Voelter and Sascha Lisson. Supporting Diverse Notations in MPS' Projectional Editor. In Proc. International Workshop on The Globalization of Modeling Languages","author":"Markus","year":"2014"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384716.2384767"},{"key":"e_1_2_2_49_1","volume-title":"Ngspice Users Manual. NGSPICE, 30","author":"Vogt Holger","year":"2019"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428290","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3428290","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T18:02:58Z","timestamp":1750183378000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3428290"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,11,13]]},"references-count":49,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2020,11,13]]}},"alternative-id":["10.1145\/3428290"],"URL":"https:\/\/doi.org\/10.1145\/3428290","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,11,13]]},"assertion":[{"value":"2020-11-13","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}