Files
logseq/assets/Hirzel_2022_Low-Code Programming Models.edn
T
2025-06-02 17:15:13 +02:00

2019 lines
108 KiB
Clojure
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{:highlights [{:id #uuid "6464b288-5d89-4b29-bd9d-eb6c88f1371e",
:page 1,
:position {:bounding {:x1 0,
:y1 109,
:x2 512.7213745117188,
:y2 431.171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 109,
:x2 0,
:y2 130.5,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 125,
:x2 0,
:y2 146.5,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 141,
:x2 0,
:y2 162.5,
:width 1060.8,
:height 1372.8}
{:x1 368.73016357421875,
:y1 350,
:x2 512.7213745117188,
:y2 369,
:width 1060.8,
:height 1372.8}
{:x1 93.2421875,
:y1 370.7265625,
:x2 512.716064453125,
:y2 389.7265625,
:width 1060.8,
:height 1372.8}
{:x1 93.2421875,
:y1 391.4453125,
:x2 510.12481689453125,
:y2 410.4453125,
:width 1060.8,
:height 1372.8}
{:x1 93.2421875,
:y1 412.171875,
:x2 212.43441772460938,
:y2 431.171875,
:width 1060.8,
:height 1372.8}),
:page 1},
:content {:text " Low-code programming promises an alternative: letting citizen developers create programs using visual abstractions, demonstrations, or natural language"},
:properties {:color "green"}}
{:id #uuid "6464e5e9-a147-4747-8c6f-2c907d728754",
:page 1,
:position {:bounding {:x1 0,
:y1 237.3333330154419,
:x2 552.1966552734375,
:y2 643.1510620117188,
:width 1142.3999999999999,
:height 1478.3999999999999},
:rects ({:x1 0,
:y1 237.3333330154419,
:x2 0,
:y2 258.6666669845581,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 253.3333339691162,
:x2 0,
:y2 274.6666679382324,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 269.3333339691162,
:x2 0,
:y2 290.6666679382324,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 406.61981201171875,
:y1 555.203125,
:x2 549.0424194335938,
:y2 576.203125,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 577.5208435058594,
:x2 552.1966552734375,
:y2 598.5208435058594,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 599.8333435058594,
:x2 549.0473022460938,
:y2 620.8333435058594,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 622.1510620117188,
:x2 540.9893798828125,
:y2 643.1510620117188,
:width 1142.3999999999999,
:height 1478.3999999999999}),
:page 1},
:content {:text "Low-code has the potential to empower more people to automate tasks by creating computer programs, making them more productive and less dependent on scarce professional software developers"},
:properties {:color "green"}}
{:id #uuid "6464e636-296e-44cd-9030-8f8f418de4a2",
:page 1,
:position {:bounding {:x1 0,
:y1 397.3333320617676,
:x2 550.7698974609375,
:y2 871.0677185058594,
:width 1142.3999999999999,
:height 1478.3999999999999},
:rects ({:x1 0,
:y1 397.3333320617676,
:x2 0,
:y2 418.66666412353516,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 413.3333320617676,
:x2 0,
:y2 434.6666660308838,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 482.74481201171875,
:y1 805.4323120117188,
:x2 550.7698974609375,
:y2 826.4323120117188,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 827.75,
:x2 549.0286865234375,
:y2 848.75,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 850.0677185058594,
:x2 403.6420593261719,
:y2 871.0677185058594,
:width 1142.3999999999999,
:height 1478.3999999999999}),
:page 1},
:content {:text "Programming means developing computer programs, which comprise instructions for a computer to execute"},
:properties {:color "yellow"}}
{:id #uuid "6464e648-e4c8-496f-b66f-bb14f860170a",
:page 1,
:position {:bounding {:x1 0,
:y1 461.3333282470703,
:x2 549.0376586914062,
:y2 982.6458435058594,
:width 1142.3999999999999,
:height 1478.3999999999999},
:rects ({:x1 0,
:y1 461.3333282470703,
:x2 0,
:y2 482.66666412353516,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 477.3333282470703,
:x2 0,
:y2 498.66666412353516,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 493.3333282470703,
:x2 0,
:y2 514.6666641235352,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 483.25,
:y1 894.6979370117188,
:x2 548.9091796875,
:y2 915.6979370117188,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 917.015625,
:x2 549.0059661865234,
:y2 938.015625,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 939.3333435058594,
:x2 549.0376586914062,
:y2 960.3333435058594,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 961.6458435058594,
:x2 522.7615966796875,
:y2 982.6458435058594,
:width 1142.3999999999999,
:height 1478.3999999999999}),
:page 1},
:content {:text "low-code programming minimizes the use of a textual programming language. Instead, it aims to use alternative techniques that are closer to how users naturally think about their task."},
:properties {:color "green"}}
{:id #uuid "6464e67a-e0da-4289-a819-ba114dd6c3ac",
:page 1,
:position {:bounding {:x1 0,
:y1 541.3333282470703,
:x2 552.1976928710938,
:y2 1183.4948120117188,
:width 1142.3999999999999,
:height 1478.3999999999999},
:rects ({:x1 0,
:y1 541.3333282470703,
:x2 0,
:y2 562.6666641235352,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 557.3333282470703,
:x2 0,
:y2 578.6666641235352,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 573.3333282470703,
:x2 0,
:y2 594.6666641235352,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 589.3333320617676,
:x2 0,
:y2 610.6666641235352,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 605.3333320617676,
:x2 0,
:y2 626.6666660308838,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 621.3333320617676,
:x2 0,
:y2 642.6666660308838,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 637.3333330154419,
:x2 0,
:y2 658.6666669845581,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 311.03778076171875,
:y1 1006.28125,
:x2 549.2696533203125,
:y2 1027.28125,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1028.59375,
:x2 551.90869140625,
:y2 1049.59375,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1050.9114685058594,
:x2 549.0465087890625,
:y2 1071.9114685058594,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1073.2291870117188,
:x2 552.1976928710938,
:y2 1094.2291870117188,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1095.546875,
:x2 548.1531982421875,
:y2 1116.546875,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1117.859375,
:x2 549.043701171875,
:y2 1138.859375,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1140.1770935058594,
:x2 549.0130004882812,
:y2 1161.1771240234375,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 100.421875,
:y1 1162.4948120117188,
:x2 408.2026062011719,
:y2 1183.4948120117188,
:width 1142.3999999999999,
:height 1478.3999999999999}),
:page 1},
:content {:text "A citizen developer is an amateur programmer with little professional programming education. Citizen developers, having chosen a career different from programming, tend to have more domain expertise. Lowcode enables domain experts to become citizen developers. At the same time, low-code platforms should also strive to make pro-developers (professionals with an education or career in software development) more productive."},
:properties {:color "green"}}
{:id #uuid "6464e6c2-476a-4106-bed9-c00c456ec273",
:page 1,
:position {:bounding {:x1 0,
:y1 504.9895935058594,
:x2 1045.2104797363281,
:y2 930.6666870117188,
:width 1142.3999999999999,
:height 1478.3999999999999},
:rects ({:x1 641.2135620117188,
:y1 504.9895935058594,
:x2 1045.2104797363281,
:y2 525.9895935058594,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 592.8281402587891,
:y1 527.3072967529297,
:x2 959.8586578369141,
:y2 548.3072967529297,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 909.3333740234375,
:x2 0,
:y2 930.6666870117188,
:width 1142.3999999999999,
:height 1478.3999999999999}),
:page 1},
:content {:text "No-code programming is more purist, with zero handwritten code in a textual programming language"},
:properties {:color "green"}}
{:id #uuid "6464e6f9-07ce-4bcc-b118-5c2f006d8535",
:page 1,
:position {:bounding {:x1 0,
:y1 683.5208435058594,
:x2 1044.3484802246094,
:y2 1074.6666870117188,
:width 1142.3999999999999,
:height 1478.3999999999999},
:rects ({:x1 1018.2170104980469,
:y1 683.5208435058594,
:x2 1044.3484802246094,
:y2 704.5208435058594,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 593.5156402587891,
:y1 705.8385467529297,
:x2 1041.8366241455078,
:y2 726.8385620117188,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 593.5156402587891,
:y1 728.1510620117188,
:x2 1032.3377227783203,
:y2 749.1510620117188,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 1037.3333740234375,
:x2 0,
:y2 1058.6666870117188,
:width 1142.3999999999999,
:height 1478.3999999999999}
{:x1 0,
:y1 1053.3333740234375,
:x2 0,
:y2 1074.6666870117188,
:width 1142.3999999999999,
:height 1478.3999999999999}),
:page 1},
:content {:text "Another gap between EUP and low-code is that the latter aims to serve not just end users but also pro-developers [7, 32]."},
:properties {:color "green"}}
{:id #uuid "64749b53-54f4-41d9-9964-3bfafa6894fc",
:page 1,
:position {:bounding {:x1 0,
:y1 784.8125,
:x2 927.6583251953125,
:y2 1233.3333740234375,
:width 1014.0000000000002,
:height 1312.2352941176473},
:rects ({:x1 547.7174682617188,
:y1 784.8125,
:x2 927.6583251953125,
:y2 802.8125,
:width 1014.0000000000002,
:height 1312.2352941176473}
{:x1 526.8021240234375,
:y1 804.625,
:x2 926.6834716796875,
:y2 822.625,
:width 1014.0000000000002,
:height 1312.2352941176473}
{:x1 526.8021240234375,
:y1 824.4375,
:x2 923.8732299804688,
:y2 842.4375,
:width 1014.0000000000002,
:height 1312.2352941176473}
{:x1 526.8021240234375,
:y1 844.2396240234375,
:x2 656.3416748046875,
:y2 862.2396240234375,
:width 1014.0000000000002,
:height 1312.2352941176473}
{:x1 0,
:y1 1182,
:x2 0,
:y2 1201.3333740234375,
:width 1014.0000000000002,
:height 1312.2352941176473}
{:x1 0,
:y1 1198,
:x2 0,
:y2 1217.3333740234375,
:width 1014.0000000000002,
:height 1312.2352941176473}
{:x1 0,
:y1 1214,
:x2 0,
:y2 1233.3333740234375,
:width 1014.0000000000002,
:height 1312.2352941176473}),
:page 1},
:content {:text "VPLs (visual programming languages), PBD (programming by demonstration), PBE (programming by example), RPA (robotic process automation), PBNL (programming by natural language), "},
:properties {:color "green"}}
{:id #uuid "64749c98-8f0e-4c79-b31d-39bd4e5dc07a",
:properties {:color "green"}}
{:id #uuid "64749ca9-1f4b-45b1-a4d2-64ee0d72a020",
:page 2,
:position {:bounding {:x1 0,
:y1 590,
:x2 512.75390625,
:y2 973.6979370117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 590,
:x2 0,
:y2 609.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 200.8988037109375,
:y1 934.3021240234375,
:x2 512.75390625,
:y2 952.96875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 955.03125,
:x2 225.30126190185547,
:y2 973.6979370117188,
:width 1060.8,
:height 1372.8}),
:page 2},
:content {:text "Programming is to low-code what computing is to serverless"},
:properties {:color "green"}}
{:id #uuid "64749d41-31ca-4ad9-bcad-25124814ef56",
:page 2,
:position {:bounding {:x1 0,
:y1 644.1875,
:x2 967.7108764648438,
:y2 1217.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 551.1146240234375,
:y1 644.1875,
:x2 967.7108764648438,
:y2 662.8541870117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 664.9166870117188,
:x2 952.0397338867188,
:y2 683.5833740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1198,
:x2 0,
:y2 1217.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 2},
:content {:text "low-code can break barriers between developers across the spectrum and help them collaborate on common ground."},
:properties {:color "green"}}
{:id #uuid "64749ddc-ace8-4465-8990-8459e873611e",
:page 2,
:position {:bounding {:x1 0,
:y1 955.0233154296875,
:x2 1060.3582763671875,
:y2 1473.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 795.26220703125,
:y1 955.0233154296875,
:x2 967.859130859375,
:y2 973.68994140625,
:width 1060.8,
:height 1372.8}
{:x1 530.3922119140625,
:y1 975.355712890625,
:x2 1060.3582763671875,
:y2 996.0640869140625,
:width 1060.8,
:height 1372.8}
{:x1 551.1106567382812,
:y1 996.4608154296875,
:x2 799.591064453125,
:y2 1015.12744140625,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1438,
:x2 0,
:y2 1457.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1454,
:x2 0,
:y2 1473.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 2},
:content {:text ", while low-code typically targets a DSL, that DSL may not be exposed, or if it is, may only be exposed to pro-developers. "},
:properties {:color "green"}}
{:id #uuid "64749ee3-1687-4934-9d20-9b270b4b035e",
:page 3,
:position {:bounding {:x1 0,
:y1 718,
:x2 510.482666015625,
:y2 1139.46875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 718,
:x2 0,
:y2 737.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 476.3627624511719,
:y1 1100.0833740234375,
:x2 510.482666015625,
:y2 1118.75,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 1120.8021240234375,
:x2 179.64927673339844,
:y2 1139.46875,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text "draw upon seeing"},
:properties {:color "green"}}
{:id #uuid "64749ef6-8ac8-492a-9cd3-7cdd74dca04f",
:page 3,
:position {:bounding {:x1 0,
:y1 734,
:x2 510.17376708984375,
:y2 1160.197998046875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 734,
:x2 0,
:y2 753.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 221.05093383789062,
:y1 1120.8021240234375,
:x2 510.17376708984375,
:y2 1139.46875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 1141.53125,
:x2 172.5497283935547,
:y2 1160.197998046875,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text " draws upon the ability to use a computer application"},
:properties {:color "green"}}
{:id #uuid "64749f03-ede6-4593-8c72-a7e9161b60a7",
:page 3,
:position {:bounding {:x1 256.75299072265625,
:y1 1141.53125,
:x2 408.899169921875,
:y2 1160.197998046875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 256.75299072265625,
:y1 1141.53125,
:x2 408.899169921875,
:y2 1160.197998046875,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text " draws upon speakin"},
:properties {:color "green"}}
{:id #uuid "64749f39-a19a-4413-a34c-090643359fad",
:page 3,
:position {:bounding {:x1 0,
:y1 209.02084350585938,
:x2 967.7086181640625,
:y2 881.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 875.8095703125,
:y1 209.02084350585938,
:x2 967.7086181640625,
:y2 227.6875,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 229.75,
:x2 699.1981811523438,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 862,
:x2 0,
:y2 881.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text " the following blocks recur enough"},
:properties {:color "green"}}
{:id #uuid "64749f79-4b86-4aaf-813a-8e7bc61c0ef3",
:page 3,
:position {:bounding {:x1 0,
:y1 254.5625,
:x2 970.550537109375,
:y2 1025.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 593.4271240234375,
:y1 254.5625,
:x2 967.65771484375,
:y2 273.22918701171875,
:width 1060.8,
:height 1372.8}
{:x1 577.9375,
:y1 276.04168701171875,
:x2 967.667724609375,
:y2 296.04168701171875,
:width 1060.8,
:height 1372.8}
{:x1 577.9375,
:y1 296.7708435058594,
:x2 967.6754150390625,
:y2 316.7708435058594,
:width 1060.8,
:height 1372.8}
{:x1 593.4271240234375,
:y1 316.72918701171875,
:x2 829.3048706054688,
:y2 335.3958435058594,
:width 1060.8,
:height 1372.8}
{:x1 577.9375,
:y1 338.2083435058594,
:x2 964.6920776367188,
:y2 358.2083435058594,
:width 1060.8,
:height 1372.8}
{:x1 577.9375,
:y1 358.9375,
:x2 878.9796142578125,
:y2 378.9375,
:width 1060.8,
:height 1372.8}
{:x1 577.9375,
:y1 379.65625,
:x2 970.550537109375,
:y2 399.65625,
:width 1060.8,
:height 1372.8}
{:x1 593.4271240234375,
:y1 399.6145935058594,
:x2 967.6944580078125,
:y2 418.28125,
:width 1060.8,
:height 1372.8}
{:x1 593.4271240234375,
:y1 420.3333435058594,
:x2 928.7245483398438,
:y2 439,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 894,
:x2 0,
:y2 913.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 910,
:x2 0,
:y2 929.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 926,
:x2 0,
:y2 945.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 942,
:x2 0,
:y2 961.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 958,
:x2 0,
:y2 977.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 974,
:x2 0,
:y2 993.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 990,
:x2 0,
:y2 1009.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1006,
:x2 0,
:y2 1025.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text "code canvas: renders code, e.g., visually as a flow graph• palette: offers components for drag-and-drop selection• text box: holds natural-language text used for code search, description, or generation• player: has buttons for capture, replay, pause, or step• stage: shows the effect of code execution• configuration pane: lets the user customize components, e.g., via graphical controls such as check-boxes or sliders, or textually by typing small formulas"},
:properties {:color "green"}}
{:id #uuid "6474a19c-2150-4576-954b-f32de65c6359",
:page 3,
:position {:bounding {:x1 0,
:y1 955.03125,
:x2 970.6334228515625,
:y2 1329.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 889.3614501953125,
:y1 955.03125,
:x2 967.67529296875,
:y2 973.6979370117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 975.75,
:x2 970.6334228515625,
:y2 994.4166870117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 996.46875,
:x2 584.0924682617188,
:y2 1015.1354370117188,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1294,
:x2 0,
:y2 1313.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1310,
:x2 0,
:y2 1329.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text "users write programs by directly manipulating their visual representation. "},
:properties {:color "green"}}
{:id #uuid "6474a1e0-7373-4e47-a10a-62fdc1dbd6df",
:page 3,
:position {:bounding {:x1 692.972900390625,
:y1 1058.6354370117188,
:x2 820.6473388671875,
:y2 1077.3021240234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 692.972900390625,
:y1 1058.6354370117188,
:x2 820.6473388671875,
:y2 1077.3021240234375,
:width 1060.8,
:height 1372.8}),
:page 3},
:content {:text "boxes-and-arrows"},
:properties {:color "green"}}
{:id #uuid "6474a207-fe6f-493d-819c-2192178d00d2",
:page 4,
:position {:bounding {:x1 0,
:y1 46,
:x2 512.7433471679688,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 46,
:x2 0,
:y2 65.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 62,
:x2 0,
:y2 81.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 391.0401611328125,
:y1 188.3021240234375,
:x2 512.7433471679688,
:y2 206.96875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 209.0208740234375,
:x2 509.83602142333984,
:y2 227.6875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 229.75,
:x2 345.82897186279297,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text " dragging components from the palette to the canvas and possibly configuring them in a separate configuration pan"},
:properties {:color "green"}}
{:id #uuid "6474b79f-2da0-4993-8b66-d631de779458",
:page 4,
:position {:bounding {:x1 93.23958587646484,
:y1 291.91668701171875,
:x2 147.53790283203125,
:y2 310.5833740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 93.23958587646484,
:y1 291.91668701171875,
:x2 147.53790283203125,
:y2 310.5833740234375,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text "Scratch"},
:properties {:color "green"}}
{:id #uuid "6474b841-a7a5-45f3-bea7-8e8100036715",
:page 4,
:position {:bounding {:x1 0,
:y1 430,
:x2 512.746208190918,
:y2 901.1666870117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 430,
:x2 0,
:y2 449.3333435058594,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 446,
:x2 0,
:y2 465.3333435058594,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 462,
:x2 0,
:y2 481.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 478,
:x2 0,
:y2 497.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 494,
:x2 0,
:y2 513.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 510,
:x2 0,
:y2 529.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 526,
:x2 0,
:y2 545.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 542,
:x2 0,
:y2 561.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 558,
:x2 0,
:y2 577.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 188.14068603515625,
:y1 696,
:x2 509.5146179199219,
:y2 714.6666870117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 716.71875,
:x2 510.2765426635742,
:y2 735.3854370117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 737.4375,
:x2 512.745475769043,
:y2 756.1041870117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 758.1666870117188,
:x2 509.81187438964844,
:y2 776.8333740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 778.8854370117188,
:x2 509.5807418823242,
:y2 797.5521240234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 799.6146240234375,
:x2 509.83028411865234,
:y2 818.28125,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 820.3333740234375,
:x2 512.746208190918,
:y2 839,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 841.0521240234375,
:x2 509.8342819213867,
:y2 859.71875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 861.78125,
:x2 510.17244720458984,
:y2 880.4479370117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 882.5,
:x2 205.38009643554688,
:y2 901.1666870117188,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text "The visual notation can take up a lot of screen real estate; the mitigation for this is to elide detail, e.g., by requiring a configuration pane or via modular language constructs [3 , 27]. Even the palette can get too full, hindering discoverability, which can be mitigated by search facilities. A drawback of visual languages compared to textual languages is that they tend to be co-dependent on their visual programming environment, hindering the use of basic tools such as diffing or search, or of third-party tools such as linters or code generators"},
:properties {:color "green"}}
{:id #uuid "6474b8fb-4530-40f1-84c0-92e79c2cb9d5",
:page 4,
:position {:bounding {:x1 665.4390258789062,
:y1 677.446044921875,
:x2 918.619140625,
:y2 696.1126708984375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 665.4390258789062,
:y1 677.446044921875,
:x2 918.619140625,
:y2 696.1126708984375,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text " Programming by demonstration"},
:properties {:color "green"}}
{:id #uuid "6474b97f-ecb5-4ce7-8dc0-11812a5ffddc",
:page 4,
:position {:bounding {:x1 0,
:y1 727.0833740234375,
:x2 968.000732421875,
:y2 1201.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 944.2498779296875,
:y1 727.0833740234375,
:x2 968.000732421875,
:y2 745.75,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 747.8021240234375,
:x2 967.7078857421875,
:y2 766.46875,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 768.53125,
:x2 967.7050170898438,
:y2 787.1979370117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 789.25,
:x2 834.6180419921875,
:y2 807.9166870117188,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1150,
:x2 0,
:y2 1169.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1166,
:x2 0,
:y2 1185.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1182,
:x2 0,
:y2 1201.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text "ser demonstrates how to perform a task by hand via the mouse and keyboard, and the PBD system records a program that can perform the same task automaticall"},
:properties {:color "green"}}
{:id #uuid "6474b9db-32c6-4727-bf5c-c5593b7a25e5",
:page 4,
:position {:bounding {:x1 0,
:y1 913.5833740234375,
:x2 967.70947265625,
:y2 1313.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 743.7974853515625,
:y1 913.5833740234375,
:x2 967.70947265625,
:y2 932.25,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 934.3021240234375,
:x2 695.636962890625,
:y2 952.96875,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1294,
:x2 0,
:y2 1313.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text "mapping pixel coordinates to a user-interface widge"},
:properties {:color "green"}}
{:id #uuid "6474b9eb-4b4d-4427-8f51-4c2e7e062987",
:page 4,
:position {:bounding {:x1 0,
:y1 1017.1979370117188,
:x2 967.7094116210938,
:y2 1409.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 716.7506713867188,
:y1 1017.1979370117188,
:x2 967.7094116210938,
:y2 1035.8646240234375,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 1037.9166870117188,
:x2 967.69970703125,
:y2 1056.5833740234375,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 1058.6354370117188,
:x2 800.972900390625,
:y2 1077.3021240234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1374,
:x2 0,
:y2 1393.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1390,
:x2 0,
:y2 1409.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 4},
:content {:text " useful if executing it does not yield exactly the same behavior as the initial demonstration, but rather, generalizes to different data. "},
:properties {:color "green"}}
{:id #uuid "6474badb-22d3-4792-a807-df517f86a03d",
:page 5,
:position {:bounding {:x1 0,
:y1 430,
:x2 510.27330780029297,
:y2 776.8333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 430,
:x2 0,
:y2 449.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 446,
:x2 0,
:y2 465.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 462,
:x2 0,
:y2 481.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 446.5770263671875,
:y1 696,
:x2 509.84014892578125,
:y2 714.6666870117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 716.71875,
:x2 510.27330780029297,
:y2 735.3854370117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 737.4375,
:x2 509.8287887573242,
:y2 756.1041870117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 758.1666870117188,
:x2 409.2290573120117,
:y2 776.8333740234375,
:width 1060.8,
:height 1372.8}),
:page 5},
:content {:text "PBD can result in programs that are hard to understand because they include spurious steps or are too fine-grained, which is of course a problem in low-code programming"},
:properties {:color "green"}}
{:id #uuid "6474bb69-d875-4e4a-907c-7156a99bf7c9",
:page 9,
:position {:bounding {:x1 0,
:y1 287.8333740234375,
:x2 969.71240234375,
:y2 1153.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 786.9166870117188,
:y1 287.8333740234375,
:x2 969.71240234375,
:y2 303.16668701171875,
:width 1060.8,
:height 1372.8}
{:x1 580.3958740234375,
:y1 305.10418701171875,
:x2 625.3782958984375,
:y2 320.4375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1134,
:x2 0,
:y2 1153.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 9},
:content {:text "https://doi.org/10.1145/1926385.1926423"},
:properties {:color "green"}}
{:id #uuid "6474bbdd-979d-4a47-a0da-954dbd3e41d8",
:page 5,
:position {:bounding {:x1 598.177490234375,
:y1 370.42706298828125,
:x2 928.80712890625,
:y2 393.76043701171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 598.177490234375,
:y1 370.42706298828125,
:x2 928.80712890625,
:y2 393.76043701171875,
:width 1060.8,
:height 1372.8}),
:page 5},
:content {:text "Programming by Natural Language"},
:properties {:color "green"}}
{:id #uuid "6474bc69-b7b7-4b4f-aaab-42f2bf6b9a14",
:page 5,
:position {:bounding {:x1 0,
:y1 399.15625,
:x2 925.3680419921875,
:y2 1025.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 622.849365234375,
:y1 399.15625,
:x2 925.3680419921875,
:y2 417.82293701171875,
:width 1060.8,
:height 1372.8}
{:x1 593.4271240234375,
:y1 419.875,
:x2 911.8312377929688,
:y2 438.54168701171875,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1006,
:x2 0,
:y2 1025.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 5},
:content {:text "user enters natural language text via keyboard or voice, and the system synthesizes a program"},
:properties {:color "green"}}
{:id #uuid "6474bc9c-e48a-415a-ae35-84b1a6a6ff63",
:page 5,
:position {:bounding {:x1 0,
:y1 861.59375,
:x2 967.712890625,
:y2 1329.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 938.3963623046875,
:y1 861.59375,
:x2 967.4015502929688,
:y2 880.2604370117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 882.3229370117188,
:x2 967.117919921875,
:y2 900.9896240234375,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 903.0416870117188,
:x2 967.7008056640625,
:y2 921.7083740234375,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 923.7604370117188,
:x2 967.70751953125,
:y2 942.4271240234375,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 944.4896240234375,
:x2 967.414306640625,
:y2 963.15625,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 965.2083740234375,
:x2 967.7049560546875,
:y2 983.875,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 985.9271240234375,
:x2 967.712890625,
:y2 1004.59375,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 1006.65625,
:x2 826.21337890625,
:y2 1025.322998046875,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1214,
:x2 0,
:y2 1233.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1230,
:x2 0,
:y2 1249.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1246,
:x2 0,
:y2 1265.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1262,
:x2 0,
:y2 1281.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1278,
:x2 0,
:y2 1297.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1294,
:x2 0,
:y2 1313.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1310,
:x2 0,
:y2 1329.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 5},
:content {:text "The PBNL system can execute the program immediately or save it for later, and the user may choose to execute the program multiple times, e.g., after changes to the programs input data. The system can also optionally show the effect of the programs execution on a stage. For example, if the program is a query in a spreadsheet, the spreadsheet is the stage, and the result can be shown as a new table."},
:properties {:color "green"}}
{:id #uuid "6474be2e-9dad-4fc9-b636-284d48ad6010",
:page 6,
:position {:bounding {:x1 0,
:y1 62,
:x2 512.158203125,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 62,
:x2 0,
:y2 81.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 265.1836853027344,
:y1 209.0208740234375,
:x2 512.158203125,
:y2 227.6875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 229.75,
:x2 343.3894577026367,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8}),
:page 6},
:content {:text "BNL makes creating programs trivial, those programs are often wrong"},
:properties {:color "green"}}
{:id #uuid "6474be52-8071-4823-befd-04c55f4d3d76",
:page 6,
:position {:bounding {:x1 0,
:y1 110,
:x2 509.82916259765625,
:y2 310.57537841796875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 110,
:x2 0,
:y2 129.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 460.6469421386719,
:y1 271.1795654296875,
:x2 509.82916259765625,
:y2 289.84619140625,
:width 1060.8,
:height 1372.8}
{:x1 93.23416137695312,
:y1 291.90869140625,
:x2 478.2625427246094,
:y2 310.57537841796875,
:width 1060.8,
:height 1372.8}),
:page 6},
:content {:text "natural language processing (NLP) technologies are imperfect."},
:properties {:color "green"}}
{:id #uuid "6474be76-0e9b-4579-92c3-f59a7fbce760",
:page 6,
:position {:bounding {:x1 0,
:y1 254,
:x2 512.1474609375,
:y2 538.5208740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 254,
:x2 0,
:y2 273.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 270,
:x2 0,
:y2 289.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 286,
:x2 0,
:y2 305.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 409.64471435546875,
:y1 457.6875,
:x2 512.1474609375,
:y2 476.35418701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 478.41668701171875,
:x2 509.8230514526367,
:y2 497.0833740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 499.13543701171875,
:x2 509.83260345458984,
:y2 517.8021240234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 519.854248046875,
:x2 166.13890075683594,
:y2 538.5208740234375,
:width 1060.8,
:height 1372.8}),
:page 6},
:content {:text " they often require an aligned corpus of utterances and programs to train machine-learning models, and obtaining such a corpus is expensive"},
:properties {:color "green"}}
{:id #uuid "6474bf96-99c8-42d1-be92-11ac5a3f0ce4",
:page 6,
:position {:bounding {:x1 0,
:y1 913.5833740234375,
:x2 969.603271484375,
:y2 1457.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 690.64892578125,
:y1 913.5833740234375,
:x2 967.7110595703125,
:y2 932.25,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 934.3021240234375,
:x2 969.603271484375,
:y2 952.96875,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 955.03125,
:x2 967.425537109375,
:y2 973.6979370117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 975.75,
:x2 967.7037353515625,
:y2 994.4166870117188,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 996.46875,
:x2 720.4375,
:y2 1015.1354370117188,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1390,
:x2 0,
:y2 1409.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1406,
:x2 0,
:y2 1425.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1422,
:x2 0,
:y2 1441.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 1438,
:x2 0,
:y2 1457.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 6},
:content {:text "little difference in the Read and Execute columns: users read programs on a code canvas (if provided), and watch them executing on the stage (if visible). That hints at an opportunity for reusing building blocks across tools for different techniques."},
:properties {:color "green"}}
{:id #uuid "6474c050-3883-44a7-8e40-db229874141d",
:page 7,
:position {:bounding {:x1 0,
:y1 14,
:x2 512.7533493041992,
:y2 331.3021240234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 14,
:x2 0,
:y2 33.333343505859375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 30,
:x2 0,
:y2 49.333343505859375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 46,
:x2 0,
:y2 65.33334350585938,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 62,
:x2 0,
:y2 81.33334350585938,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 78,
:x2 0,
:y2 97.33334350585938,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 94,
:x2 0,
:y2 113.33334350585938,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 110,
:x2 0,
:y2 129.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 126,
:x2 0,
:y2 145.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 110.51042175292969,
:y1 146.85418701171875,
:x2 508.90599060058594,
:y2 165.5208740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 167.5833740234375,
:x2 509.83336639404297,
:y2 186.25,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 188.3021240234375,
:x2 512.7533493041992,
:y2 206.96875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 209.0208740234375,
:x2 509.8295211791992,
:y2 227.6875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 229.75,
:x2 512.750114440918,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 250.46875,
:x2 509.82857513427734,
:y2 269.13543701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 271.1875,
:x2 509.82930755615234,
:y2 289.85418701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 291.91668701171875,
:x2 509.83699798583984,
:y2 310.5833740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 312.63543701171875,
:x2 365.9730758666992,
:y2 331.3021240234375,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text "A core goal of low-code programming is to reduce the need to learn a programming language. Citizen developers can demonstrate a program or describe it in natural language without having been taught how to do so. Visual programming, on the other hand, is often not quite as selfexplanatory, which is why Figure 1 associates it more with semi-developers. On the other hand, depending on the users attitude, the need-to-learn can also be a positive aspect, since it grows computational thinking skills."},
:properties {:color "green"}}
{:id #uuid "6474c0c5-0bd8-4fb7-8f4b-38e422d285f5",
:page 7,
:position {:bounding {:x1 0,
:y1 286,
:x2 510.95653533935547,
:y2 559.25,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 286,
:x2 0,
:y2 305.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 484.71844482421875,
:y1 519.8541870117188,
:x2 509.69171142578125,
:y2 538.5208740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 540.5833740234375,
:x2 510.95653533935547,
:y2 559.25,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text "We expect PBNL to grow along with relevant advances in AI."},
:properties {:color "green"}}
{:id #uuid "6474c1a9-0e10-4e4f-8691-405f42335dc9",
:page 7,
:position {:bounding {:x1 0,
:y1 734,
:x2 512.742301940918,
:y2 1201.6354370117188,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 734,
:x2 0,
:y2 753.3333435058594,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 750,
:x2 0,
:y2 769.3333435058594,
:width 1060.8,
:height 1372.8}
{:x1 383.1458435058594,
:y1 1141.53125,
:x2 509.72174072265625,
:y2 1160.1979370117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 1162.25,
:x2 512.742301940918,
:y2 1180.9166870117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 1182.96875,
:x2 280.43050384521484,
:y2 1201.6354370117188,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text "All three low-code techniques from Section 3 are intrinsically related to domainspecific languages (DSLs"},
:properties {:color "green"}}
{:id #uuid "6474c1c0-1a27-4eac-a8f7-cc9828a4c171",
:page 7,
:position {:bounding {:x1 0,
:y1 766,
:x2 512.7578125,
:y2 1222.3646240234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 766,
:x2 0,
:y2 785.3333435058594,
:width 1060.8,
:height 1372.8}
{:x1 290.55865478515625,
:y1 1182.96875,
:x2 512.7578125,
:y2 1201.6354370117188,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 1203.6979370117188,
:x2 210.22296142578125,
:y2 1222.3646240234375,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text " most visual programming languages are DSLs"},
:properties {:color "green"}}
{:id #uuid "6474c1da-3052-475b-bf94-9af02a7e4315",
:page 7,
:position {:bounding {:x1 0,
:y1 146.85418701171875,
:x2 970.6229858398438,
:y2 817.3333740234375,
:width 1060.8,
:height 1372.8},
:rects ({:x1 551.1146240234375,
:y1 146.85418701171875,
:x2 970.6229858398438,
:y2 165.52084350585938,
:width 1060.8,
:height 1372.8}
{:x1 551.1146240234375,
:y1 167.58334350585938,
:x2 662.7525024414062,
:y2 186.25,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 798,
:x2 0,
:y2 817.3333740234375,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text "by demonstration and programming by natural language usually target DSLs"},
:properties {:color "green"}}
{:id #uuid "6474c20d-32ed-4c99-a946-49ef3bbfd01c",
:page 7,
:position {:bounding {:x1 614.4555053710938,
:y1 271.1875,
:x2 936.3818359375,
:y2 289.85418701171875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 614.4555053710938,
:y1 271.1875,
:x2 936.3818359375,
:y2 289.85418701171875,
:width 1060.8,
:height 1372.8}),
:page 7},
:content {:text "those DSLs are not always exposed to the user"},
:properties {:color "green"}}
{:id #uuid "6474c345-66e3-4c30-b881-311f74787a6f",
:page 8,
:position {:bounding {:x1 0,
:y1 30,
:x2 511.74365234375,
:y2 227.6875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 30,
:x2 0,
:y2 49.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 46,
:x2 0,
:y2 65.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 143.01446533203125,
:y1 167.5833740234375,
:x2 509.8341064453125,
:y2 186.25,
:width 1060.8,
:height 1372.8}
{:x1 92.8125,
:y1 188.3021240234375,
:x2 511.74365234375,
:y2 206.96875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 209.0208740234375,
:x2 426.85958099365234,
:y2 227.6875,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text "Low-code programming tools provide one or more views of the program. Some of these views, or projections, are read-only, while others are read-write views"},
:properties {:color "green"}}
{:id #uuid "6474c351-3410-494b-98bc-f51aaf6f253d",
:page 8,
:position {:bounding {:x1 0,
:y1 62,
:x2 512.749755859375,
:y2 455.635498046875,
:width 1060.8,
:height 1372.8},
:rects ({:x1 0,
:y1 62,
:x2 0,
:y2 81.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 78,
:x2 0,
:y2 97.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 94,
:x2 0,
:y2 113.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 110,
:x2 0,
:y2 129.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 126,
:x2 0,
:y2 145.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 142,
:x2 0,
:y2 161.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 158,
:x2 0,
:y2 177.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 174,
:x2 0,
:y2 193.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 190,
:x2 0,
:y2 209.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 206,
:x2 0,
:y2 225.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 431.2723388671875,
:y1 209.0208740234375,
:x2 512.749755859375,
:y2 227.6875,
:width 1060.8,
:height 1372.8}
{:x1 0,
:y1 222,
:x2 0,
:y2 241.3333740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 229.75,
:x2 509.8344039916992,
:y2 248.41668701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 250.46875,
:x2 509.83165740966797,
:y2 269.13543701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 271.1875,
:x2 509.5526657104492,
:y2 289.85418701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 291.91668701171875,
:x2 508.99263763427734,
:y2 310.5833740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 312.63543701171875,
:x2 511.14061737060547,
:y2 331.3021240234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 333.35418701171875,
:x2 512.744499206543,
:y2 352.0208740234375,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 354.0833740234375,
:x2 509.82991790771484,
:y2 372.75,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 374.8021240234375,
:x2 512.3487548828125,
:y2 393.46875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 395.5208740234375,
:x2 509.8315963745117,
:y2 414.1875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 416.25,
:x2 509.82784271240234,
:y2 434.91668701171875,
:width 1060.8,
:height 1372.8}
{:x1 93.23958587646484,
:y1 436.96875,
:x2 338.02425384521484,
:y2 455.635498046875,
:width 1060.8,
:height 1372.8}),
:page 8},
:content {:text " When multiple views are present, the system keeps them in synch with a single joint model, and through that, with each other. Edits in one view are projected live to all other views. The model is a program in a domain-specific language (DSL). As discussed previously, the DSL may or may not be exposed to the user, and may or may not be embedded in a host programming language. Optionally, the system may even expose the textual DSL as another view, for instance, in a structure editor [37]. Besides the model and the view, the third part of the MVC pattern is the controller, which, for low-code, can contain a player and/or a configuration pane"},
:properties {:color "green"}}
{:id #uuid "64750a95-c15c-43e8-b72b-2e70f477a33b",
:page 8,
:position {:bounding {:x1 0,
:y1 993.453125,
:x2 907.656005859375,
:y2 1522.5,
:width 992,
:height 1283.764705882353},
:rects ({:x1 671.7158203125,
:y1 993.453125,
:x2 904.923828125,
:y2 1011.453125,
:width 992,
:height 1283.764705882353}
{:x1 515.375,
:y1 1012.8359375,
:x2 907.656005859375,
:y2 1030.8359375,
:width 992,
:height 1283.764705882353}
{:x1 515.375,
:y1 1032.2109375,
:x2 883.1744995117188,
:y2 1050.2109375,
:width 992,
:height 1283.764705882353}
{:x1 0,
:y1 1485,
:x2 0,
:y2 1506.5,
:width 992,
:height 1283.764705882353}
{:x1 0,
:y1 1501,
:x2 0,
:y2 1522.5,
:width 992,
:height 1283.764705882353}),
:page 8},
:content {:text "domain-specific languages and the model-view-controller pattern constitute a common backbone and unifying principle across low-code techniques"},
:properties {:color "green"}}],
:extra {:page 9}}