Branching Compositional Data Transformations in jq, VisuallyRemote
jq is a widely-used command-line tool for filtering and transforming JSON data, in the vein of sed and awk, including a bespoke programming language for writing the filters. The paradigm of that language is unusual: while its appearance is somewhere between a shell pipeline and JavaScript, the language is pure-functional and essentially concatenative, the pipelines branch and interleave data invisibly, implicit output flattening obscures all these effects, and most users are unaware of any of its semantics, leading to confusion when encountering any of these latent elements and difficulty in constructing appropriate non-trivial filters, all the while common debugging techniques are also obstructed by the paradigm. These confusions can be eliminated by visually demonstrating the recursively forking nature of evaluation on actual data, and allowing manipulations of the program or data to be reflected live, but no such tool exists for jq or any similar approaches. We present a visualisation of jq’s execution model that makes the branching nature manifest, illustrating its effects on concrete values provided by the user, and editing affordances that allow manipulating the program with reference to real data.
Mon 23 OctDisplayed time zone: Lisbon change
09:00 - 10:30 | |||
09:00 30mTalk | Toward Studying Example-based Live Programming in CS/SE Education PAINT Eva Krebs Hasso Plattner Institute (HPI), University of Potsdam, Germany, Toni Mattis University of Potsdam; Hasso Plattner Institute, Patrick Rein University of Potsdam; Hasso Plattner Institute, Robert Hirschfeld University of Potsdam; Hasso Plattner Institute Link to publication DOI | ||
09:30 30mTalk | Branching Compositional Data Transformations in jq, VisuallyRemote PAINT Michael Homer Victoria University of Wellington Link to publication DOI | ||
10:00 30mTalk | PescaJ: A projectional editor for Java featuring scattered code aggregation PAINT José Lopes Instituto Universitário de Lisboa (ISCTE-IUL), André L. Santos University Institute of Lisbon, Portugal Link to publication DOI |