首页 > 最新文献

Journal of Computer Languages最新文献

英文 中文
A sensemaking analysis of API learning using React 使用React的API学习的语义分析
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 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.

当前的编程实践在很大程度上依赖于API(应用程序编程接口)和框架的使用。然而,API在学习和使用方面可能具有挑战性。现有的研究侧重于程序员在学习API时遇到的特定障碍,提供了对过程的零散理解。在本文中,我们分析了12名程序员学习React JS API的整体过程,将感觉制造理论作为行为定性编码的指导框架。我们描述了这些API学习者是如何通过感知阶段的,以及他们在每个感知阶段如何与信息互动的。我们的研究结果强调了程序员在遇到问题时寻求理解的倾向。
{"title":"A sensemaking analysis of API learning using React","authors":"Caitlin Kelleher ,&nbsp;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}
引用次数: 0
MoTrans-BDI: Leveraging the Beliefs-Desires-Intentions agent architecture for collaborative model transformation by example MoTrans-BDI:通过示例利用信念-愿望-意图代理体系结构进行协作模型转换
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101174
Ahmed Siabdelhadi , Abdelhafid Chadli , Hadda Cherroun , Abdelkader Ouared , Houari Sahraoui

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.

由于人们对模型驱动的系统开发技术越来越感兴趣,高效设计异构模型之间的自动模型转换已成为软件开发中的一大挑战。虽然已经提出了许多专门的语言,旨在指定模型转换,但目前还没有成熟的基础来指定基于设计师/专家合作的此类模型之间的转换,以提出满足用户需求和应用程序约束的解决方案。这个转换过程是一项复杂的任务,必须模拟具有不同视角的设计师和专家的行为方式,并反思模型转换。在本文中,我们提出了一种基于一种新的模型转换规范和设计方法的框架,称为MoTrans-BDI,它利用进化多代理系统(EMAS)来模拟设计师在模型转换方面的专业知识。我们的方法基于信念-欲望-意图(BDI)代理模型和契约网协议,其中代理的信念来自一系列转换示例。使用特定模型的重点是有机会生成一个目标模型,该模型可能由不同专家设计的零件组成。我们首先在12个手工制作的UML2REL模型转换问题上对MoTrans-BDI进行了实验评估。与人类专家协作生成的目标模型相比,所有类型的代理都能够生成完美的目标模型。其次,我们根据星型模式基准(SSB)查询的响应时间来实证评估MoTrans-BDI的提议。在UML2REL变换的情况下执行MoTrans-BDI的应用,以强调和突出变换过程步骤。
{"title":"MoTrans-BDI: Leveraging the Beliefs-Desires-Intentions agent architecture for collaborative model transformation by example","authors":"Ahmed Siabdelhadi ,&nbsp;Abdelhafid Chadli ,&nbsp;Hadda Cherroun ,&nbsp;Abdelkader Ouared ,&nbsp;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}
引用次数: 0
PeachPie: Mature PHP to CLI compiler PeachPie:成熟的PHP到CLI编译器
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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.

PeachPie是一个将PHP代码编译成公共语言基础设施(CLI)程序集的编译器,实现了PHP和之间的直接互操作性。NET项目。这项工作描述了PeachPie的整体架构及其组件的实现,强调并解释了其与前代Phalanger的差异。PeachPie可以编译传统的专有PHP应用程序和现代PHP框架,将它们移植到CLI中,并能够与用C#等语言编写的其他项目集成。这项工作可能会为执行PHP静态分析、开发针对CLI的自定义编译器或探索动态语言编译的可能性的人提供有用的见解。
{"title":"PeachPie: Mature PHP to CLI compiler","authors":"Robert Husák ,&nbsp;Jakub Míšek ,&nbsp;Filip Zavoral ,&nbsp;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}
引用次数: 0
COMORP: Rapid prototyping for mathematical database cost models development COMORP:用于数学数据库成本模型开发的快速原型
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 10.1016/j.cola.2022.101173
Abdelkader Ouared , Moussa Amrani , Pierre-Yves Schobbens

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%.

数据库技术的发展趋势促使研究人员重新设计和调整过去的数学数据库成本模型,并考虑到这种发展所带来的额外方面。因此,今天许多科学家通过重新思考硬件、工作负载和应用程序的每一次变化的查询处理和优化,提出了数据库成本模型。这需要高水平的领域专业知识。然而,通过上下文感知来帮助用户建立数据库成本模型是困难的,也是越来越困难的挑战。需要一种新的范式来改变成本模型开发方法,在高抽象水平上进行设计,以缩小核心数据库和概念建模社区之间的差距,从而缩短其漫长的开发周期。此外,我们需要支持成本模型的增量复杂设计,并跟踪数据库技术的发展,这些技术快速而持续地变化以适应新的需求。我们研究了模型驱动工程范式,这些范式能够实现数据库成本模型、建模/分析的快速原型设计,并优化其集成组件的可重用性。本文提出了一个框架,旨在将成本模型开发为一个可扩展和定制的内核,该内核提供与数据库系统最敏感层相关的度量,并通过基本原语的组合来帮助成本模型的组成过程。我们实施我们的框架,以帮助设计师/研究人员创建一个成功的成本模型,产品与他们的清单半自动关联。实验评估表明,通过使用我们的框架,我们可以将用于CM构建的时间减少60%,同时能够推荐高达90%的有用组件。
{"title":"COMORP: Rapid prototyping for mathematical database cost models development","authors":"Abdelkader Ouared ,&nbsp;Moussa Amrani ,&nbsp;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}
引用次数: 1
Block-based abstractions and expansive services to make advanced computing concepts accessible to novices 基于块的抽象和扩展服务,使高级计算概念可供新手访问
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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.

许多基于块的编程环境已被证明在吸引新手学习编程方面是有效的。然而,大多数只提供有限的外部世界访问,限制了学习者使用环境中内置的命令和计算资源。有些允许学习者拖放文件、在本地连接传感器和机器人或发出HTTP请求。但在我们日常生活中的大多数应用程序都是分布式的(即,它们的功能取决于与其他计算机的通信或访问互联网上的资源和数据),对初学者设想和创建此类分布式程序的有限支持是一个失去的机会。我们认为,创建具有简单但强大抽象的环境是可行的,这些抽象可以向新手开放分布式计算和其他广泛使用但先进的计算概念,包括网络、物联网和网络安全。本文介绍了支持这些思想的编程环境NetsLox背后的体系结构和设计决策。我们展示了NetsBlox是如何大幅扩大学习机会的:NetsLox项目可以访问丰富的在线数据和web服务,并且可以与其他项目进行交流。此外,该工具基础设施使年轻学习者能够在课程建设期间相互协作,无论他们是共享物理位置还是远程学习。重要的是,提供对更广阔世界的访问也将有助于消除学生们普遍认为基于区块的环境只是玩具的看法,并表明它们有能力创建引人注目的应用程序。通过这种方式,NetsLox提供了一个启发性的例子,说明如何设计工具来民主化对计算中强大思想的访问。
{"title":"Block-based abstractions and expansive services to make advanced computing concepts accessible to novices","authors":"Corey Brady ,&nbsp;Brian Broll ,&nbsp;Gordon Stein ,&nbsp;Devin Jean ,&nbsp;Shuchi Grover ,&nbsp;Veronica Cateté ,&nbsp;Tiffany Barnes ,&nbsp;Á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}
引用次数: 3
Context-sensitive parsing for programming languages 程序设计语言的上下文敏感解析
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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.

这里考虑使用上下文敏感语法而非上下文无关语法来解析编程语言,因为更强的形式主义可能有利于处理日益复杂的编程语言及其语法,或者在某些应用程序中更合适。描述了一种用于解析确定性上下文敏感语言的新的确定性非回溯算法。这是对WEAVE和CWEAVE工具中用于识字编程的算法的显著改进,并要求语言由上下文敏感的约简系统来描述,即类似于上下文敏感语法的确定性形式主义,但对如何应用约简有严格的规则。新算法使用归约自动机来在解析过程中的每一步找到下一个归约的位置,而不是构建在WEAVE和CWEAVE的原始算法中的硬编码trie。新算法对每个输入符号执行的操作至少是原始算法的两倍。此外,研究表明,解析上下文敏感约简系统所描述的语言不必像在识字编程中那样局限于排版目的,而是可以用作一种通用的解析方法。
{"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}
引用次数: 1
Where-provenance for bidirectional editing in spreadsheets 电子表格中双向编辑的出处
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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 ,&nbsp;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}
引用次数: 0
Investigating a visual interface for elementary students to formulate AI planning tasks 研究小学生制定人工智能规划任务的视觉界面
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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.

近年来,人工智能在社会的各个方面都得到了迅速的应用。人工智能的普遍性导致将人工智能学习体验融入K-12教育的需求不断增加。结合人工智能概念和实践的早期学习体验对于学生更好地理解、评估和利用人工智能技术至关重要。人工智能规划是一类重要的人工智能技术,其中人工智能驱动的代理利用问题的结构来构建执行任务的行动计划。尽管越来越多的努力探索促进K-12学习者的人工智能教育,但研究向小学生提供人工智能学习体验的有效和吸引人的方法的工作有限。在本文中,我们提出了一个视觉界面,使小学高年级学生(3-5年级,8-11岁)能够在基于游戏的学习环境中制定人工智能规划任务。我们介绍了我们设计视觉界面的方法,以及人工智能规划任务如何嵌入以叙事为中心的游戏中,围绕“使用-修改-创建”脚手架进程构建。此外,我们还介绍了一项针对高年级小学生使用视觉界面的研究结果。我们讨论了“使用-修改-创建”方法如何支持学生学习,并讨论了学生在使用视觉界面制定人工智能规划任务时遇到的误解和可用性问题。
{"title":"Investigating a visual interface for elementary students to formulate AI planning tasks","authors":"Kyungjin Park ,&nbsp;Bradford Mott ,&nbsp;Seung Lee ,&nbsp;Anisha Gupta ,&nbsp;Katie Jantaraweragul ,&nbsp;Krista Glazewski ,&nbsp;J. Adam Scribner ,&nbsp;Anne Ottenbreit-Leftwich ,&nbsp;Cindy E. Hmelo-Silver ,&nbsp;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}
引用次数: 2
Program representations for predictive compilation: State of affairs in the early 20’s 预测汇编的程序表示法:20世纪初的现状
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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.

在过去的五年里,预测汇编取得了长足的进步。该领域的贡献包括新的程序嵌入、新的学习架构以及数百万程序的数据集。本文评估了25个最先进的程序嵌入,其中三个是新的,加上以前工作中的两个学习模型。我们用三个大型数据集训练了这个装置,并将其应用于三个分类问题。当根据程序解决的问题对程序进行分类时,我们复制了以前工作中看到的高精度结果。然而,我们无法在我们研究的两个新的分类挑战中重复这些结果:即,确定程序中嵌套最多的循环的深度,以及确定减少程序代码大小的最佳优化序列。尽管我们评估了大量的分类器(25个),但还是出现了负面结果。令人惊讶的是,使用指令操作码的直方图,一种非常简单的程序嵌入,导致了与Ir2Vec或Inst2Vec等嵌入(设计用于解决随机编译任务)大致相同的分类精度。
{"title":"Program representations for predictive compilation: State of affairs in the early 20’s","authors":"Anderson Faustino da Silva ,&nbsp;Edson Borin ,&nbsp;Fernando Magno Quintão Pereira ,&nbsp;Nilton Luiz Queiroz Junior ,&nbsp;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}
引用次数: 2
Design, implementation and evaluation of the Hedy programming language Hedy程序设计语言的设计、实现和评估
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2022-12-01 DOI: 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.

Hedy是一种实现渐进编程方法的编程语言,其目标是通过从一种非常简单的语言开始,逐渐添加概念和改进语法来降低语法障碍。本文描述了Hedy的设计和实现,以及一项首次用户研究,涉及39名11岁至14岁的儿童,他们在网上学习了六周。根据课堂观察和参与者填写的书面调查,我们旨在了解使用渐进式语言的影响。我们的研究结果表明,孩子们欣赏海蒂的渐进性,发现海蒂很容易学习,尤其欣赏自己控制海蒂难度的力量。他们还喜欢并经常使用内置的教育功能,如示例代码片段。渐进方法的挑战是命令有时会更改或重叠,记住命令和特定语法仍然是一个挑战。根据参与者的说法,可以通过降低Hedy对语法错误的敏感度、改进错误消息以及将关键字本地化为儿童的母语来进行改进。
{"title":"Design, implementation and evaluation of the Hedy programming language","authors":"Marleen Gilsing ,&nbsp;Jesús Pelay ,&nbsp;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}
引用次数: 0
期刊
Journal of Computer Languages
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1