ABSTRACT
Block-based environments are visual-programming environments that allow users to create programs by dragging and dropping blocks that resemble jigsaw puzzle pieces. These environments have proven to lower the entry barrier of programming for end-users. Besides using block-based environments for programming, they can also help edit popular semi-structured data languages such as JSON and YAML. However, creating new block-based environments is still challenging; developers can develop them in an ad-hoc way or using context-free grammars in a language workbench. Given the visual nature of block-based environments, both options are valid; however, developers have some limitations when describing them. In this paper, we present Blocklybench, which is a meta-block-based environment for describing block-based environments for both programming and semi-structured data languages. This tool allows developers to express the specific elements of block-based environments using the blocks notation. To evaluate Blocklybench, we present three case studies. Our results show that Blocklybench allows developers to describe block-based specific aspects of language constructs such as layout, color, block connections, and code generators.
- David Bau, Jef Gray, Caitlin Kelleher, Josh Sheldon, and Franklyn Turbak. 2017. Learnable Programming: Blocks and Beyond. Commun. ACM 60, 6 ( 2017 ), 72-80. https://doi.org/10.1145/3015455 Google ScholarDigital Library
- Blocklybench. 2022. Basic Language. https://motar-242711.ew. r.appspot.com/?editor= basic&load=1. https://motar-242711.ew.r. appspot.com/?editor= basic&load=1 [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Blocklybench. https://motar-242711.ew.r.appspot. com/. https://motar-242711.ew.r.appspot.com/ [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Blocklybench. https://motar-242711.ew.r.appspot. com/?editor= first&load=1. https://motar-242711.ew.r.appspot.com/ ?editor= first&load=1 [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Fectar Code Blocks. https://motar-242711.ew. r.appspot.com/?editor= fectar&load=1. https://motar-242711.ew.r. appspot.com/?editor= fectar&load=1 [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Fectar Code Blocks. https://motar-242711.ew. r.appspot.com/editors/fectar/editor.html. https://motar-242711.ew. r.appspot.com/editors/fectar/editor.html [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Fectar Code Blocks. https://motar-242711. ew.r.appspot.com/?editor= google_workflow&load=1. https://motar242711.ew.r.appspot.com/?editor= google_workflow&load=1 [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Google Workflows Editor. https://motar242711.ew.r.appspot.com/editors/google_workflow/editor.html. https://motar-242711.ew.r.appspot.com/editors/google_workflow/ editor.html [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Smooth Voxels Blocks. https://motar-242711. ew.r.appspot.com/?editor= svox&load=1. https://motar-242711.ew.r. appspot.com/?editor= svox&load=1 [Online, accessed 28 July 2022 ]. Google Scholar
- Blocklybench. 2022. Smooth Voxels Blocks Editor. https://motar242711.ew.r.appspot.com/editors/svox/editor.html. https://motar242711.ew.r.appspot.com/editors/svox/editor.html [Online, accessed 28 July 2022 ]. Google Scholar
- Frank Budinsky, Stephen A. Brodsky, and Ed Merks. 2003. Eclipse Modeling Framework. Pearson Education. Google Scholar
- Philippe Charles, Robert M. Fuhrer, Stanley M. Sutton, Evelyn Duesterwald, and Jurgen Vinju. 2009. Accelerating the Creation of Customized, Language-Specific IDEs in Eclipse. 44, 10 ( 2009 ), 191-206. https://doi.org/10.1145/1639949.1640104 Google ScholarDigital Library
- Enrique Coronado, Fulvio Mastrogiovanni, Bipin Indurkhya, and Gentiane Venture. 2020. Visual Programming Environments for EndUser Development of intelligent and social robots, a systematic review. Journal of Computer Languages 58 ( 2020 ), 100970. https://doi.org/10.1016/j.cola. 2020.100970 Google ScholarCross Ref
- Shruti Dhariwal. 2019. BlockArt: Visualizing the 'Hundred Languages' of Code in Children's Creations. In Proceedings of the 2019 on Creativity and Cognition (San Diego, CA, USA) (C&C '19). ACM, 633-639. https://doi.org/10.1145/3325480.3326585 Google ScholarDigital Library
- Söderberg Emma and Hedin Görel. 2011. Building Semantic Editors Using JastAdd: Tool Demonstration. ( 2011 ), 6 pages. https://doi.org/ 10.1145/1988783.1988794 Google ScholarDigital Library
- S. Erdweg, T. v. d. Storm, M. Volter, L. Tratt, R. Bosman, W. R. Cook, A. Gerritsen, A. Hulshout, S. Kelly, A. Loh, G. Konat, P. J. Molina, M. Palatnik, R. Pohjonen, E. Schindler, K. Schindler, R. Solmi, V. Vergu, E. Visser, K. v. d. Vlist, G. Wachsmuth, and J. v. d. Woning. 2015. Evaluating and comparing language workbenches: Existing results and benchmarks for the future. Computer Languages, Systems & Structures 44 ( 2015 ), 24-47. https://doi.org/10.1016/j.cl. 2015. 08.007 Google ScholarCross Ref
- Fectar. 2022. Fectar. https://www.fectar.com. https://www.fectar. com [Online, accessed 25 July 2022 ]. Google Scholar
- Google. 2020. Blockly. https://developers.google.com/blockly. https://developers.google.com/blockly [Online, accessed 25 July 2022 ]. Google Scholar
- Google. 2020. Blockly block factory. https://blockly-demo.appspot. com/static/demos/blockfactory/index.html. https://blockly-demo. appspot.com/static/demos/blockfactory/index.html [Online, accessed 28 July 2022 ]. Google Scholar
- Google. 2020. Google Cloud Platform. https://github. com/GoogleCloudPlatform/workflows-samples/blob/main/ src/step_conditional_weekend.workflows.yaml. https://github.com/GoogleCloudPlatform/workflows-samples/blob/ main/src/step_conditional_weekend.workflows. yaml [Online, accessed 28 July 2022 ]. Google Scholar
- Google. 2020. Localize Blocks. https://developers.google.com/blockly/ guides/create-custom-blocks/localize-blocks. https://developers. google.com/blockly/guides/create-custom-blocks/localize-blocks [Online, accessed 17 August 2022 ]. Google Scholar
- Google. 2022. Google Workflows. https://cloud.google.com/workflows. https://cloud.google.com/workflows [Online, accessed 28 July 2022 ]. Google Scholar
- Blockly Group. 2022. Blockly json serialization and merging. https://groups.google.com/g/blockly/c/6lfkH-mSWdI/m/K25gHd_oAAAJ. https://groups.google.com/g/blockly/c/6lfkH-mSWdI/m/ K25gHd_oAAAJ [Online, accessed 28 July 2022 ]. Google Scholar
- Brian Harvey and Jens Monig. 2020. Snap! 4.1 Reference Manual. https://github.com/cwi-swat/rascal-minijava. https://snap.berkeley. edu/snap/help/SnapManual.pdf [Online, accessed 12 July 2021 ]. Google Scholar
- Heering Jan and Klint Paul. 2000. Semantics of Programming Languages: A Tool-oriented Approach. SIGPLAN Not. 35, 3 ( 2000 ), 39-48. https://doi.org/10.1145/351159.351173 Google ScholarDigital Library
- Caitlin Kelleher and Randy Pausch. 2005. Lowering the Barriers to Programming: A Taxonomy of Programming Environments and Languages for Novice Programmers. ACM Comput. Surv. 37, 2 ( 2005 ), 83-137. https://doi.org/10.1145/1089733.1089734 Google ScholarDigital Library
- Andrew J. Ko, Brad Myers, Mary Beth Rosson, Gregg Rothermel, Mary Shaw, Susan Wiedenbeck, Robin Abraham, Laura Beckwith, Alan Blackwell, Margaret Burnett, Martin Erwig, Chris Scafidi, Joseph Lawrance, and Henry Lieberman. 2011. The state of the art in end-user software engineering. Comput. Surveys 43, 3 ( 2011 ), 1-44. https://doi.org/10.1145/1922649.1922658 Google ScholarDigital Library
- Henry Lieberman, Fabio Paternò, Markus Klann, and Volker Wulf. 2006. End-User Development: An Emerging Paradigm. Springer Netherlands, Dordrecht, 1-8. https://doi.org/10.1007/1-4020-5386-X_1 Google ScholarCross Ref
- Mauricio Verano Merino and Tijs van der Storm. 2020. cwi-swat/kogi: Kogi 0.1.0. https://doi.org/10.5281/zenodo.4033220 Google ScholarDigital Library
- Luke Moors and Robert Sheehan. 2017. Aiding the Transition from Novice to Traditional Programming Environments. In Proceedings of the 2017 Conference on Interaction Design and Children (Stanford, California, USA) ( IDC '17). ACM, 509-514. https://doi.org/10.1145/ 3078072.3084317 Google ScholarDigital Library
- Mozilla. 2022. File System Access API. https://developer.mozilla.org/enUS/docs/Web/API/File_System_Access_API. https://developer.mozilla. org/en-US/docs/Web/API/File_System_Access_API [Online, accessed 28 July 2022 ]. Google Scholar
- Brad A. Myers, Andrew J. Ko, and Margaret M. Burnett. 2006. Invited Research Overview: End-User Programming. In CHI '06 Extended Abstracts on Human Factors in Computing Systems (Montréal, Québec, Canada) ( CHI EA '06). ACM, 75-80. https://doi.org/10.1145/1125451. 1125472 Google ScholarDigital Library
- Donald A. Norman. 2002. The Design of Everyday Things. Basic Books, Inc. Google ScholarDigital Library
- Klint Paul. 1993. A Meta-Environment for Generating Programming Environments. ACM Transactions on Software Engineering and Methodology (TOSEM) 2, 2 ( 1993 ), 176-201. https://doi.org/10.1145/151257. 151260 Google ScholarDigital Library
- Arnold Pears, Stephen Seidman, Lauri Malmi, Linda Mannila, Elizabeth Adams, Jens Bennedsen, Marie Devlin, and James Paterson. 2007. A Survey of Literature on the Teaching of Introductory Programming. In Working Group Reports on ITiCSE on Innovation and Technology in Computer Science Education (Dundee, Scotland) (ITiCSE-WGR '07). Association for Computing Machinery, New York, NY, USA, 204-223. https://doi.org/10.1145/1345443.1345441 Google ScholarDigital Library
- Smooth Voxel Playground. 2022. Smooth Voxel Playground. https://svox.glitch.me/playground.html. https://svox.glitch.me/playground. html [Online, accessed 28 July 2022 ]. Google Scholar
- Thomas W. Price and Tifany Barnes. 2015. Comparing Textual and Block Interfaces in a Novice Programming Environment. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research (Omaha, Nebraska, USA) ( ICER '15). ACM, 91-99. https://doi.org/10.1145/2787622.2787712 Google ScholarDigital Library
- Thomas Reps and Tim Teitelbaum. 1984. The Synthesizer Generator. ( 1984 ), 42-48. https://doi.org/10.1145/800020.808247 Google ScholarDigital Library
- Mitchel et al. Resnick. 2009. Scratch: Programming for All. Commun. ACM 52, 11 ( 2009 ), 60-67. Google Scholar
- SonarSource SA. 2008. SonarQube. https://www.sonarqube. org. [Online, accessed 16 August 2022 ]. Google Scholar
- Mohamed Aymen Saied, Ali Ouni, Houari Sahraoui, Raula Gaikovina Kula, Katsuro Inoue, and David Lo. 2018. Improving reusability of software libraries through usage pattern mining. Journal of Systems and Software 145 ( 2018 ), 164-179. https://doi.org/10.1016/j.jss. 2018. 08.032 Google ScholarCross Ref
- Andrew Stratton, Chris Bates, and Andy Dearden. 2017. Quando: Enabling Museum and Art Gallery Practitioners to Develop Interactive Digital Exhibits. In End-User Development. Springer, 100-107. Google Scholar
- Blockly team. 2022. Create custom blocks: Per-block configuration. https://developers.google.com/blockly/guides/createcustom-blocks/ define-blocks?hl=en#per-block_configuration. https://developers.google.com/blockly/guides/create-customblocks/ define-blocks?hl=en#per-block_configuration [Online, accessed 25 July 2022 ]. Google Scholar
- Blockly team. 2022. Custom Blocks : Style Guide. https://developers. google.com/blockly/guides/create-custom-blocks/style-guide?hl=en. https://developers.google.com/blockly/guides/create-customblocks/style-guide?hl=en [Online, accessed 25 July 2022 ]. Google Scholar
- Mark G.J. van den Brand, Arie van Deursen, Jan Heering, Hayco A. de Jong, Merijn de Jonge, Tobias Kuipers, Paul Klint, Leon Moonen, Pieter A. Olivier, Jeroen Scheerder, Jurgen J. Vinju, Eelco Visser, and Joost Visser. 2001. The ASF+SDF Meta-Environment: A ComponentBased Language Development Environment. Electronic Notes in Theoretical Computer Science 44, 2 ( 2001 ), 3-8. https://doi.org/10.1016/ S1571-0661 ( 04 ) 80917-4 LDTA'01, First Workshop on Language Descriptions, Tools and Applications (a Satellite Event of ETAPS 2001 ). Google Scholar
- Mauricio Verano Merino, Tom Beckmann, Tijs van der Storm, Robert Hirschfeld, and Jurgen J. Vinju. 2021. Getting Grammars into Shape for Block-Based Editors. In Proceedings of the 14th ACM SIGPLAN International Conference on Software Language Engineering (Virtual, USA) ( SLE 2021). ACM, 12 pages. https://doi.org/10.1145/3486608. 3486908 Google ScholarDigital Library
- Mauricio Verano Merino and Tijs van der Storm. 2020. Block-Based Syntax from Context-Free Grammars. In Proceedings of the 13th ACM SIGPLAN International Conference on Software Language Engineering (Virtual, USA) ( SLE 2020). ACM, 283-295. https://doi.org/10.1145/ 3426425.3426948 Google ScholarDigital Library
- Mauricio Verano Merino, Jurgen Vinju, and Mark van den Brand. 2021. What you always wanted to know but could not find about block-based environments. ( 2021 ). https://arxiv.org/abs/2110.03073 [Under review at ACM Computing Surveys]. Google Scholar
- R. Vinayakumar, K. Soman, and P. Menon. 2018. CT-Blocks: Learning Computational Thinking by Snapping Blocks. In 2018 9th International Conference on Computing, Communication and Networking Technologies (ICCCNT). 1-7. https://doi.org/10.1109/ICCCNT. 2018.8493669 Google ScholarCross Ref
- David Weintrop, Afsoon Afzal, Jean Salac, Patrick Francis, Boyang Li, David C. Shepherd, and Diana Franklin. 2018. Evaluating CoBlox: A Comparative Study of Robotics Programming Environments for Adult Novices. In Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems (Montreal QC, Canada) (CHI '18). ACM, 366 : 1-366 : 12. https://doi.org/10.1145/3173574.3173940 Google ScholarDigital Library
- David Weintrop and Uri Wilensky. 2018. How block-based, text-based, and hybrid block/text modalities shape novice programming practices. International Journal of Child-Computer Interaction 17 ( 2018 ), 83-92. https://doi.org/10.1016/j.ijcci. 2018. 04.005 Google ScholarCross Ref
- David Wolber, Harold Abelson, and Mark Friedman. 2015. Democratizing Computing with App Inventor. GetMobile: Mobile Comp. and Comm. 18, 4 (Jan. 2015 ), 53-58. https://doi.org/10.1145/2721914.2721935 Google ScholarDigital Library
Index Terms
- Workbench for Creating Block-Based Environments
Recommendations
Block-based syntax from context-free grammars
SLE 2020: Proceedings of the 13th ACM SIGPLAN International Conference on Software Language EngineeringBlock-based programming systems employ a jigsaw metaphor to write programs. They are popular in the domain of programming education (e.g., Scratch), but also used as a programming interface for end-users in other disciplines, such as arts, robotics, and ...
Getting grammars into shape for block-based editors
SLE 2021: Proceedings of the 14th ACM SIGPLAN International Conference on Software Language EngineeringBlock-based environments are visual programming environments that allow users to program by interactively arranging visual jigsaw-like blocks. They have shown to be helpful in several domains but often require experienced developers for their creation. ...
Investigating Different Assignment Designs to Promote Collaboration in Block-Based Environments
SIGCSE '20: Proceedings of the 51st ACM Technical Symposium on Computer Science EducationPair Programming is often employed in educational settings as a means of promoting collaboration and scaffolding the assignment difficulty for teams. While much research supports its inclusion as a pedagogical practice at the university level, some ...
Comments