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.

, , , , ,
ICT Netherlands BV, Eindhoven, The Netherlands
15th ACM SIGPLAN International Conference on Software Language Engineering

Verano Merino, M, & van Wijk, K. (2022). Workbench for creating block-based environments. In SLE 2022 - Proceedings of the 15th ACM SIGPLAN International Conference on Software Language Engineering (pp. 61–73). doi:10.1145/3567512.3567518