Pub Date : 2023-01-01DOI: 10.1016/j.cola.2022.101189
Caitlin Kelleher , Michelle Brachman
Current programming practices rely heavily on the use of APIs (Application Programming Interfaces) and frameworks. However, APIs can be challenging to learn and use. Existing research focuses on specific barriers programmers encounter while learning APIs, providing a fragmented understanding of the process. In this paper, we analyze the holistic process of twelve programmers learning the React JS API using sensemaking theory as a guiding framework for qualitative coding of behaviors. We describe how these API learners moved through sensemaking stages and how they interacted with information during each sensemaking stage. Our results highlighted programmers’ tendency to seek understanding when they encountered problems.
{"title":"A sensemaking analysis of API learning using React","authors":"Caitlin Kelleher , Michelle Brachman","doi":"10.1016/j.cola.2022.101189","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101189","url":null,"abstract":"<div><p>Current programming practices rely heavily on the use of APIs (Application Programming Interfaces) and frameworks. However, APIs can be challenging to learn and use. Existing research focuses on specific barriers programmers encounter while learning APIs, providing a fragmented understanding of the process. In this paper, we analyze the holistic process of twelve programmers learning the React JS API using sensemaking theory as a guiding framework for qualitative coding of behaviors. We describe how these API learners moved through sensemaking stages and how they interacted with information during each sensemaking stage. Our results highlighted programmers’ tendency to seek understanding when they encountered problems.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101189"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49903347","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Due to the growing interest in model-driven system development techniques, the efficient design of automated model transformations between heterogeneous models has become a major challenge in software development. While a number of specialized languages have been proposed, aiming at specifying model transformations, there is currently no matured foundation for specifying transformations between such models that are based on designers/experts collaboration in order to propose a solution that satisfies users’ requirements and application constraints. This transformation process is a complex task and must emulate how designers and experts with different perspectives behave and reflect about model transformations. In this paper, we propose a framework based on a novel approach for the specification and design of model transformations called MoTrans-BDI, which leverages Evolutionary Multi-Agent System (EMAS) to simulate designers’ expertise for the transformation of models. Our approach is based on the Belief-Desire-Intention (BDI) agent model and the Contract Net Protocol where agents’ beliefs feed from a series of transformation examples. The emphasis of using the specific model is the opportunity to produce a target model that may be composed of parts from different experts’ designs. We first experimentally evaluate MoTrans-BDI on twelve handmade UML2REL model transformation problems. All types of agents are able to produce perfect target models compared to human experts’ collaboratively-produced target models. Second, we empirically evaluate MoTrans-BDI’s proposal in terms of response time on Star Schema Benchmark (SSB) queries. An application of MoTrans-BDI in the case of UML2REL transformation is performed to stress and highlight the transformation process steps.
{"title":"MoTrans-BDI: Leveraging the Beliefs-Desires-Intentions agent architecture for collaborative model transformation by example","authors":"Ahmed Siabdelhadi , Abdelhafid Chadli , Hadda Cherroun , Abdelkader Ouared , Houari Sahraoui","doi":"10.1016/j.cola.2022.101174","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101174","url":null,"abstract":"<div><p>Due to the growing interest in model-driven system development techniques, the efficient design of automated model transformations between heterogeneous models has become a major challenge in software development. While a number of specialized languages have been proposed, aiming at specifying model transformations, there is currently no matured foundation for specifying transformations between such models that are based on designers/experts collaboration in order to propose a solution that satisfies users’ requirements and application constraints. This transformation process is a complex task and must emulate how designers and experts with different perspectives behave and reflect about model transformations. In this paper, we propose a framework based on a novel approach for the specification and design of model transformations called MoTrans-BDI, which leverages Evolutionary Multi-Agent System (EMAS) to simulate designers’ expertise for the transformation of models. Our approach is based on the Belief-Desire-Intention (BDI) agent model and the Contract Net Protocol where agents’ beliefs feed from a series of transformation examples. The emphasis of using the specific model is the opportunity to produce a target model that may be composed of parts from different experts’ designs. We first experimentally evaluate MoTrans-BDI on twelve handmade UML2REL model transformation problems. All types of agents are able to produce perfect target models compared to human experts’ collaboratively-produced target models. Second, we empirically evaluate MoTrans-BDI’s proposal in terms of response time on Star Schema Benchmark (SSB) queries. An application of MoTrans-BDI in the case of UML2REL transformation is performed to stress and highlight the transformation process steps.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101174"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49903349","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101152
Robert Husák , Jakub Míšek , Filip Zavoral , Jan Kofroň
PeachPie is a compiler of PHP code into Common Language Infrastructure (CLI) assemblies, enabling direct interoperability between PHP and .NET projects. This work describes the overall PeachPie architecture and the implementation of its components, highlighting and explaining the differences from its predecessor Phalanger. PeachPie can compile both legacy proprietary PHP applications and modern PHP frameworks, porting them into CLI with the ability to integrate with other projects written in languages such as C#. This work might provide helpful insight for people performing static analysis of PHP, developing a custom compiler targeting CLI, or exploring possibilities of dynamic language compilation.
{"title":"PeachPie: Mature PHP to CLI compiler","authors":"Robert Husák , Jakub Míšek , Filip Zavoral , Jan Kofroň","doi":"10.1016/j.cola.2022.101152","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101152","url":null,"abstract":"<div><p>PeachPie is a compiler of PHP code into Common Language Infrastructure (CLI) assemblies, enabling direct interoperability between PHP and .NET projects. This work describes the overall PeachPie architecture and the implementation of its components, highlighting and explaining the differences from its predecessor Phalanger. PeachPie can compile both legacy proprietary PHP applications and modern PHP frameworks, porting them into CLI with the ability to integrate with other projects written in languages such as C#. This work might provide helpful insight for people performing static analysis of PHP, developing a custom compiler targeting CLI, or exploring possibilities of dynamic language compilation.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101152"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2590118422000491/pdfft?md5=bf3582af81d9fe8f3919741e6d7e16da&pid=1-s2.0-S2590118422000491-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72221282","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The database technology evolution trends had pushed the researchers to redesign and adapt the past mathematical database cost models with the consideration of additional aspects due to the emergence of this evolution. As a result, many scientists today propose database cost models by rethinking query processing and optimization with every change in hardware, workload, and applications. This requires a high level of domain expertise. However, assisting users to build database cost models by context-aware is difficult and an increasingly harder challenge. A new paradigm is needed to change cost model development methodology by designing it at a high level of abstraction to mitigate the gap between core database and conceptual modeling communities in order to shorten its long development cycle. Moreover, we need to support incrementally complex design of cost models and follow the evolution of database technologies that change rapidly and continuously to fit the new requirements. We investigate Model-Driven Engineering paradigms that enable database cost models, fast prototyping of modeling/analysis and optimize reusability of its integration components. This article presents a framework that aims to develop cost models as an extensible and customized kernel that provides metrics related to the most sensitive layers of database systems and assists the cost model composition process by combinations of fundamental primitives. We implement our framework to help designers/researchers create a successful cost model product semi-automatically correlate with their manifests. Experimental evaluations show that by using our framework, we can reduce the time spent by 60% on CM building, while being able to recommend useful components with up to 90%.
{"title":"COMORP: Rapid prototyping for mathematical database cost models development","authors":"Abdelkader Ouared , Moussa Amrani , Pierre-Yves Schobbens","doi":"10.1016/j.cola.2022.101173","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101173","url":null,"abstract":"<div><p>The database technology evolution trends had pushed the researchers to redesign and adapt the past mathematical database cost models with the consideration of additional aspects due to the emergence of this evolution. As a result, many scientists today propose database cost models by rethinking query processing<span> and optimization with every change in hardware, workload, and applications. This requires a high level of domain expertise. However, assisting users to build database cost models by context-aware is difficult and an increasingly harder challenge. A new paradigm is needed to change cost model development methodology by designing it at a high level of abstraction to mitigate the gap between core database and conceptual modeling communities in order to shorten its long development cycle. Moreover, we need to support incrementally complex design of cost models and follow the evolution of database technologies that change rapidly and continuously to fit the new requirements. We investigate Model-Driven Engineering paradigms that enable database cost models, fast prototyping of modeling/analysis and optimize reusability of its integration components. This article presents a framework that aims to develop cost models as an extensible and customized kernel that provides metrics related to the most sensitive layers of database systems and assists the cost model composition process by combinations of fundamental primitives. We implement our framework to help designers/researchers create a successful cost model product semi-automatically correlate with their manifests. Experimental evaluations show that by using our framework, we can reduce the time spent by 60% on CM building, while being able to recommend useful components with up to 90%.</span></p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101173"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72221283","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101156
Corey Brady , Brian Broll , Gordon Stein , Devin Jean , Shuchi Grover , Veronica Cateté , Tiffany Barnes , Ákos Lédeczi
Many block-based programming environments have proven to be effective at engaging novices in learning programming. However, most offer only restricted access to the outside world, limiting learners to commands and computing resources built in to the environment. Some allow learners to drag and drop files, connect to sensors and robots locally or issue HTTP requests. But in a world where most of the applications in our daily lives are distributed (i.e., their functionality depends on communicating with other computers or accessing resources and data on the internet), the limited support for beginners to envision and create such distributed programs is a lost opportunity. We argue that it is feasible to create environments with simple yet powerful abstractions that open up distributed computing and other widely-used but advanced computing concepts including networking, the Internet of Things, and cybersecurity to novices. The paper presents the architecture of and design decisions behind NetsBlox, a programming environment that supports these ideas. We show how NetsBlox expands opportunities for learning considerably: NetsBlox projects can access a wealth of online data and web services, and they can communicate with other projects. Moreover, the tool infrastructure enables young learners to collaborate with each other during program construction, whether they share their physical location or study remotely. Importantly, providing access to the wider world will also help counter widespread student perceptions that block-based environments are mere toys, and show that they are capable of creating compelling applications. In this way, NetsBlox offers an illuminating example of how tools can be designed to democratize access to powerful ideas in computing.
{"title":"Block-based abstractions and expansive services to make advanced computing concepts accessible to novices","authors":"Corey Brady , Brian Broll , Gordon Stein , Devin Jean , Shuchi Grover , Veronica Cateté , Tiffany Barnes , Ákos Lédeczi","doi":"10.1016/j.cola.2022.101156","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101156","url":null,"abstract":"<div><p>Many block-based programming environments have proven to be effective at engaging novices in learning programming. However, most offer only restricted access to the outside world, limiting learners to commands and computing resources built in to the environment. Some allow learners to drag and drop files, connect to sensors and robots locally or issue HTTP requests. But in a world where most of the applications in our daily lives are <em>distributed</em><span> (i.e., their functionality depends on communicating with other computers or accessing resources and data on the internet), the limited support for beginners to envision and create such distributed programs is a lost opportunity. We argue that it is feasible to create environments with simple yet powerful abstractions that open up distributed computing<span> and other widely-used but advanced computing concepts including networking, the Internet of Things, and cybersecurity to novices. The paper presents the architecture of and design decisions behind NetsBlox, a programming environment that supports these ideas. We show how NetsBlox expands opportunities for learning considerably: NetsBlox projects can access a wealth of online data and web services, and they can communicate with other projects. Moreover, the tool infrastructure enables young learners to collaborate with each other during program construction, whether they share their physical location or study remotely. Importantly, providing access to the wider world will also help counter widespread student perceptions that block-based environments are mere toys, and show that they are capable of creating compelling applications. In this way, NetsBlox offers an illuminating example of how tools can be designed to democratize access to powerful ideas in computing.</span></span></p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101156"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72221277","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101172
Boštjan Slivnik
Parsing programming languages using context-sensitive rather than context-free grammars is being considered here because a stronger formalism might be beneficial for dealing with increasingly complex programming languages and their syntax, or is more appropriate in some applications. A new deterministic non-backtracking algorithm for parsing deterministic context-sensitive languages is described. It is a significant improvement of the algorithm built into WEAVE and CWEAVE tools for literate programming and requires that the language is described by a context-sensitive reduction system, namely a deterministic formalism similar to a context-sensitive grammar but with strict rules about how reductions are to be applied. The new algorithm uses a reduction automaton for finding the position of the next reduction at each step during parsing rather than a hardcoded trie that is build into the original algorithm of WEAVE and CWEAVE. The new algorithm performs at least twice as few operations per input symbol as the original one. Furthermore, it is shown that parsing a language described by a context-sensitive reduction system need not be limited to typesetting purposes as in literate programming but can be used as a general parsing approach.
{"title":"Context-sensitive parsing for programming languages","authors":"Boštjan Slivnik","doi":"10.1016/j.cola.2022.101172","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101172","url":null,"abstract":"<div><p>Parsing programming languages using context-sensitive rather than context-free grammars is being considered here because a stronger formalism might be beneficial for dealing with increasingly complex programming languages and their syntax, or is more appropriate in some applications. A new deterministic non-backtracking algorithm for parsing deterministic context-sensitive languages is described. It is a significant improvement of the algorithm built into <span>WEAVE</span> and <span>CWEAVE</span> tools for literate programming and requires that the language is described by a context-sensitive reduction system, namely a deterministic formalism similar to a context-sensitive grammar but with strict rules about how reductions are to be applied. The new algorithm uses a reduction automaton for finding the position of the next reduction at each step during parsing rather than a hardcoded trie that is build into the original algorithm of <span>WEAVE</span> and <span>CWEAVE</span>. The new algorithm performs at least twice as few operations per input symbol as the original one. Furthermore, it is shown that parsing a language described by a context-sensitive reduction system need not be limited to typesetting purposes as in literate programming but can be used as a general parsing approach.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101172"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2590118422000697/pdfft?md5=71c396f28a0247b058401c5f5001037f&pid=1-s2.0-S2590118422000697-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72221279","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101155
Jack Williams , Andrew D. Gordon
We explore the idea of adding bidirectionality to spreadsheet formulas, so that editing the output can directly affect the input. We introduce the portal: a value paired with its where-provenance, that is, one or more links to its origin. When a portal is the result of a formula in a cell, that cell inherits the capability to edit locations described by the provenance. The simplicity of portals makes them amenable to implementation in existing systems. We analyse the list of functions provided by a widely used commercial spreadsheet and find that many frequently used functions work with portals with no modification.
{"title":"Where-provenance for bidirectional editing in spreadsheets","authors":"Jack Williams , Andrew D. Gordon","doi":"10.1016/j.cola.2022.101155","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101155","url":null,"abstract":"<div><p>We explore the idea of adding bidirectionality to spreadsheet formulas, so that editing the output can directly affect the input. We introduce the portal: a value paired with its where-provenance, that is, one or more links to its origin. When a portal is the result of a formula in a cell, that cell inherits the capability to edit locations described by the provenance. The simplicity of portals makes them amenable to implementation in existing systems. We analyse the list of functions provided by a widely used commercial spreadsheet and find that many frequently used functions work with portals with no modification.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101155"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72287707","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101157
Kyungjin Park , Bradford Mott , Seung Lee , Anisha Gupta , Katie Jantaraweragul , Krista Glazewski , J. Adam Scribner , Anne Ottenbreit-Leftwich , Cindy E. Hmelo-Silver , James Lester
Recent years have seen the rapid adoption of artificial intelligence (AI) in every facet of society. The ubiquity of AI has led to an increasing demand to integrate AI learning experiences into K-12 education. Early learning experiences incorporating AI concepts and practices are critical for students to better understand, evaluate, and utilize AI technologies. AI planning is an important class of AI technologies in which an AI-driven agent utilizes the structure of a problem to construct plans of actions to perform a task. Although a growing number of efforts have explored promoting AI education for K-12 learners, limited work has investigated effective and engaging approaches for delivering AI learning experiences to elementary students. In this article, we propose a visual interface to enable upper elementary students (grades 3–5, ages 8–11) to formulate AI planning tasks within a game-based learning environment. We present our approach to designing the visual interface as well as how the AI planning tasks are embedded within narrative-centered gameplay structured around a Use-Modify-Create scaffolding progression. Further, we present results from a study of upper elementary students using the visual interface. We discuss how the Use-Modify-Create approach supported student learning as well as discuss the misconceptions and usability issues students encountered while using the visual interface to formulate AI planning tasks.
{"title":"Investigating a visual interface for elementary students to formulate AI planning tasks","authors":"Kyungjin Park , Bradford Mott , Seung Lee , Anisha Gupta , Katie Jantaraweragul , Krista Glazewski , J. Adam Scribner , Anne Ottenbreit-Leftwich , Cindy E. Hmelo-Silver , James Lester","doi":"10.1016/j.cola.2022.101157","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101157","url":null,"abstract":"<div><p><span><span>Recent years have seen the rapid adoption of artificial intelligence (AI) in every facet of society. The ubiquity of AI has led to an increasing demand to integrate AI </span>learning experiences into K-12 education. Early learning experiences incorporating AI concepts and practices are critical for students to better understand, evaluate, and utilize AI technologies. AI planning is an important class of AI technologies in which an AI-driven agent utilizes the structure of a problem to construct plans of actions to perform a task. Although a growing number of efforts have explored promoting AI education for K-12 learners, limited work has investigated effective and engaging approaches for delivering AI learning experiences to elementary students. In this article, we propose a visual interface to enable upper elementary students (grades 3–5, ages 8–11) to formulate AI planning tasks within a game-based learning environment. We present our approach to designing the visual interface as well as how the AI planning tasks are embedded within narrative-centered gameplay structured around a Use-Modify-Create scaffolding progression. Further, we present results from a study of upper elementary students using the visual interface. We discuss how the Use-Modify-Create approach supported student learning as well as discuss the misconceptions and </span>usability issues students encountered while using the visual interface to formulate AI planning tasks.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101157"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72287706","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101171
Anderson Faustino da Silva , Edson Borin , Fernando Magno Quintão Pereira , Nilton Luiz Queiroz Junior , Otávio Oliveira Napoli
In the last five years, predictive compilation has advanced with long strides. Contributions in the field include new program embeddings, new learning architectures, and datasets with millions of programs. This paper evaluates 25 state-of-the-art program embeddings, three of them new, plus two learning models from previous work. We have trained this apparatus with three large datasets, and have applied it onto three classification problems. When classifying programs according to the problem that they solve, we reproduced the high-accuracy results seen in previous work. However, we have not been able to repeat these results in the two new classification challenges that we study: namely, determining the depth of the most nested loop in a program and determining the best sequence of optimizations to reduce code size of programs. Negative results emerged, even in spite of the large number of classifiers, 25, that we have evaluated. Surprisingly, using the histogram of instruction opcodes, a very simple program embedding, led to about the same classification accuracy than embeddings like Ir2Vec or Inst2Vec, which were designed to solve stochastic compilation tasks.
{"title":"Program representations for predictive compilation: State of affairs in the early 20’s","authors":"Anderson Faustino da Silva , Edson Borin , Fernando Magno Quintão Pereira , Nilton Luiz Queiroz Junior , Otávio Oliveira Napoli","doi":"10.1016/j.cola.2022.101171","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101171","url":null,"abstract":"<div><p><span>In the last five years, predictive compilation has advanced with long strides. Contributions in the field include new program embeddings, new learning architectures, and datasets with millions of programs. This paper evaluates 25 state-of-the-art program embeddings, three of them new, plus two learning models from previous work. We have trained this apparatus with three large datasets, and have applied it onto three classification problems. When classifying programs according to the problem that they solve, we reproduced the high-accuracy results seen in previous work. However, we have not been able to repeat these results in the two new classification challenges that we study: namely, determining the depth of the most nested loop in a program and determining the best sequence of optimizations to reduce code size of programs. Negative results emerged, even in spite of the large number of classifiers, 25, that we have evaluated. Surprisingly, using the histogram of instruction opcodes, a very simple program embedding, led to about the same classification accuracy than embeddings like </span><span>Ir2Vec</span> or <span>Inst2Vec</span>, which were designed to solve stochastic compilation tasks.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101171"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72221281","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2022-12-01DOI: 10.1016/j.cola.2022.101158
Marleen Gilsing , Jesús Pelay , Felienne Hermans
Hedy is a programming language that implements the gradual programming approach in which the goal is to lower the syntax barrier by starting with a very simple language, and gradually adding both concepts and refining syntax. This paper describes the design and implementation of Hedy, as well as a first user study involving 39 children between the ages of 11 and age 14 who followed online lessons for six weeks. Based on lesson observations and a written survey filled out by the participants, we aim to understand the impact of using a gradual language. Our findings show that children appreciate the gradual nature of Hedy, find Hedy easy to learn and especially appreciate the power to control the difficulty of Hedy themselves. They also like and frequently use built-in educational features like example code snippets. Challenges of a gradual approach are the fact that commands sometimes change or overlap, and remembering commands and specific syntax remain a challenge. According to the participants, improvements could be made by making Hedy less sensitive to syntax errors, by improving error messages and by localizing keywords to the native language of children.
{"title":"Design, implementation and evaluation of the Hedy programming language","authors":"Marleen Gilsing , Jesús Pelay , Felienne Hermans","doi":"10.1016/j.cola.2022.101158","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101158","url":null,"abstract":"<div><p>Hedy is a programming language that implements the gradual programming approach in which the goal is to lower the syntax barrier by starting with a very simple language, and gradually adding both concepts and refining syntax. This paper describes the design and implementation of Hedy, as well as a first user study involving 39 children between the ages of 11 and age 14 who followed online lessons for six weeks. Based on lesson observations and a written survey filled out by the participants, we aim to understand the impact of using a gradual language. Our findings show that children appreciate the gradual nature of Hedy, find Hedy easy to learn and especially appreciate the power to control the difficulty of Hedy themselves. They also like and frequently use built-in educational features like example code snippets. Challenges of a gradual approach are the fact that commands sometimes change or overlap, and remembering commands and specific syntax remain a challenge. According to the participants, improvements could be made by making Hedy less sensitive to syntax errors, by improving error messages and by localizing keywords to the native language of children.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"73 ","pages":"Article 101158"},"PeriodicalIF":2.2,"publicationDate":"2022-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S2590118422000557/pdfft?md5=f30b4723b9212932f2f496d1e98291a4&pid=1-s2.0-S2590118422000557-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72221278","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}