{"title":"An AST-based interface for composing and editing javascript on the phone","authors":"Yana Malysheva","doi":"10.1109/BLOCKS.2017.8120402","DOIUrl":null,"url":null,"abstract":"Grasshopper is an Android application which teaches people JavaScript through a series of coding puzzles. As part of this application, we developed an AST-based JavaScript editor for the phone. The visual representation of the code is built using the AST as the source of truth, and user actions modify the AST rather than a code string, much like a block code editor. At the same time, we style this visual representation to look as similar as possible to syntax-highlighted, formatted JavaScript code in a text based editor. This paper outlines the system, the reasoning behind this design, and some early observations from users interacting with it.","PeriodicalId":424744,"journal":{"name":"2017 IEEE Blocks and Beyond Workshop (B&B)","volume":"95 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2017-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2017 IEEE Blocks and Beyond Workshop (B&B)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/BLOCKS.2017.8120402","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
Grasshopper is an Android application which teaches people JavaScript through a series of coding puzzles. As part of this application, we developed an AST-based JavaScript editor for the phone. The visual representation of the code is built using the AST as the source of truth, and user actions modify the AST rather than a code string, much like a block code editor. At the same time, we style this visual representation to look as similar as possible to syntax-highlighted, formatted JavaScript code in a text based editor. This paper outlines the system, the reasoning behind this design, and some early observations from users interacting with it.