首页 > 最新文献

Journal of Computer Languages最新文献

英文 中文
A C++ annotation-based domain-specific language for expressing stream and data parallelism supporting CPU and GPU 一种基于c++注释的领域特定语言,用于表达支持CPU和GPU的流和数据并行性
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-10-13 DOI: 10.1016/j.cola.2025.101369
Gabriell Araujo , Dinei A. Rockenbach , Júnior Löff , Dalvan Griebler , Luiz G. Fernandes
Graphics processing units (GPUs) and central processing units (CPUs) provide massive parallel computing in our modern computer systems (e.g., servers, desktops, smartphones, and laptops), and efficiently utilizing their processing power requires expertise in parallel programming. Mainly, domain-specific languages (DSLs) address this challenge by improving productivity and abstractions. SPar is a high-level DSL that promotes parallel programming abstractions for stream and data parallelism using C++ attribute annotations for serial code. Unlike existing solutions, SPar eliminates the need to manually implement low-level mechanisms to leverage stream and data parallelism on heterogeneous systems. In this article, we design an extended version of the language and compiler algorithm for GPU code generation. We newly offer a single parallel programming model targeting CPUs and GPUs to exploit stream and data parallelism. The experiments indicated performance improvement compared with previous versions of SPar and achieved performance comparable to handwritten code using lower-level programming abstractions in specific scenarios.
图形处理单元(gpu)和中央处理单元(cpu)在我们的现代计算机系统(例如,服务器、台式机、智能手机和笔记本电脑)中提供了大量并行计算,有效地利用它们的处理能力需要并行编程方面的专业知识。主要是,领域特定语言(dsl)通过提高生产力和抽象来解决这一挑战。SPar是一种高级DSL,它通过对串行代码使用c++属性注释来促进流和数据并行性的并行编程抽象。与现有的解决方案不同,SPar不需要手动实现低级机制来利用异构系统上的流和数据并行性。在本文中,我们设计了用于GPU代码生成的语言和编译算法的扩展版本。我们最近提供了一种针对cpu和gpu的单一并行编程模型,以利用流和数据并行性。实验表明,与以前版本的SPar相比,性能有所提高,并且在特定场景中实现了与使用低级编程抽象的手写代码相当的性能。
{"title":"A C++ annotation-based domain-specific language for expressing stream and data parallelism supporting CPU and GPU","authors":"Gabriell Araujo ,&nbsp;Dinei A. Rockenbach ,&nbsp;Júnior Löff ,&nbsp;Dalvan Griebler ,&nbsp;Luiz G. Fernandes","doi":"10.1016/j.cola.2025.101369","DOIUrl":"10.1016/j.cola.2025.101369","url":null,"abstract":"<div><div>Graphics processing units (GPUs) and central processing units (CPUs) provide massive parallel computing in our modern computer systems (e.g., servers, desktops, smartphones, and laptops), and efficiently utilizing their processing power requires expertise in parallel programming. Mainly, domain-specific languages (DSLs) address this challenge by improving productivity and abstractions. SPar is a high-level DSL that promotes parallel programming abstractions for stream and data parallelism using C++ attribute annotations for serial code. Unlike existing solutions, SPar eliminates the need to manually implement low-level mechanisms to leverage stream and data parallelism on heterogeneous systems. In this article, we design an extended version of the language and compiler algorithm for GPU code generation. We newly offer a single parallel programming model targeting CPUs and GPUs to exploit stream and data parallelism. The experiments indicated performance improvement compared with previous versions of SPar and achieved performance comparable to handwritten code using lower-level programming abstractions in specific scenarios.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101369"},"PeriodicalIF":1.8,"publicationDate":"2025-10-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145323872","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
Jotai: A methodology for the generation of executable C benchmarks Jotai:生成可执行C基准的方法
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-09-25 DOI: 10.1016/j.cola.2025.101368
Cecília Conde Kind, Michael Canesche, Fernando Magno Quintão Pereira
This paper presents a methodology for automatically generating well-defined executable benchmarks in C. The generation process is fully automatic: C files are extracted from open-source repositories and split into compilation units. A type reconstructor infers all the types and declarations required to ensure that functions compile. The generation of inputs is guided by constraints specified via a domain-specific language. This DSL refines the types of functions, for instance, creating relations between integer arguments and the length of buffers. Off-the-shelf tools such as AddressSanitizer and Kcc filter out programs with undefined behavior. To demonstrate applicability, this paper analyzes the dynamic behavior of different collections of benchmarks, some with up to 30 thousand samples, to support several observations: (i) the speedup of optimizations does not follow a normal distribution—a property assumed by statistical tests such as the T-test and the Z-test; (ii) there is strong correlation between number of instructions fetched and running time in x86 and in ARM processors; hence, the former—a non-varying quantity—can be used as a proxy for the latter—a varying quantity—in the autotuning of compilation tasks. The apparatus to generate benchmarks is publicly available. A collection of 18 thousand programs thus produced is also available as a CompilerGym’s dataset.
本文提出了一种在C语言中自动生成定义良好的可执行基准的方法。生成过程是全自动的:从开源存储库中提取C文件并将其拆分为编译单元。类型重构器推断出确保函数编译所需的所有类型和声明。输入的生成由特定于领域的语言指定的约束来指导。这个DSL细化了函数的类型,例如,创建了整数参数和缓冲区长度之间的关系。现成的工具,如AddressSanitizer和Kcc,可以过滤掉行为未定义的程序。为了证明其适用性,本文分析了不同基准集合的动态行为,其中一些有多达3万个样本,以支持以下几个观察结果:(i)优化的加速不遵循正态分布-这是统计检验(如t检验和z检验)所假设的属性;(ii)在x86和ARM处理器中,获取的指令数与运行时间之间存在很强的相关性;因此,在编译任务的自动调优中,前者(一个不变的量)可以用作后者(一个可变的量)的代理。生成基准测试的工具是公开的。这样产生的18000个程序的集合也可以作为CompilerGym的数据集使用。
{"title":"Jotai: A methodology for the generation of executable C benchmarks","authors":"Cecília Conde Kind,&nbsp;Michael Canesche,&nbsp;Fernando Magno Quintão Pereira","doi":"10.1016/j.cola.2025.101368","DOIUrl":"10.1016/j.cola.2025.101368","url":null,"abstract":"<div><div>This paper presents a methodology for automatically generating well-defined executable benchmarks in C. The generation process is fully automatic: C files are extracted from open-source repositories and split into compilation units. A type reconstructor infers all the types and declarations required to ensure that functions compile. The generation of inputs is guided by constraints specified via a domain-specific language. This DSL refines the types of functions, for instance, creating relations between integer arguments and the length of buffers. Off-the-shelf tools such as <span>AddressSanitizer</span> and <span>Kcc</span> filter out programs with undefined behavior. To demonstrate applicability, this paper analyzes the dynamic behavior of different collections of benchmarks, some with up to 30 thousand samples, to support several observations: (i) the speedup of optimizations does not follow a normal distribution—a property assumed by statistical tests such as the T-test and the Z-test; (ii) there is strong correlation between number of instructions fetched and running time in x86 and in ARM processors; hence, the former—a non-varying quantity—can be used as a proxy for the latter—a varying quantity—in the autotuning of compilation tasks. The apparatus to generate benchmarks is publicly available. A collection of 18 thousand programs thus produced is also available as a <span>CompilerGym</span>’s dataset.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101368"},"PeriodicalIF":1.8,"publicationDate":"2025-09-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145157809","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
A ChatGPT-based dynamic assessment chatbot 基于chatgpt的动态评估聊天机器人
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-09-25 DOI: 10.1016/j.cola.2025.101366
Yung-Ting Chuang, Hui-Ting Wang
Research on information tools for learning support is abundant, with many studies integrating natural language analysis and chatbots. However, existing research still struggles to provide differentiated instructional guidance tailored to the varying levels of student understanding. Therefore, this study introduces a chatbot named ChatDAC designed as educational material for university programming classes. The system utilizes a GPT-4 model, the same model as ChatGPT, to progressively provide learners with tiered hints based on categorized response types representing different levels of understanding during practice sessions, rather than solely assessing right or wrong answers conventionally. Analysis of the data revealed a significant increase in average post-test scores compared to pre-test scores for all participants, indicating that ChatDAC effectively enhances students’ programming skills. Additionally, a notable positive correlation was found between the proportion of positive responses and post-test scores. Finally, insights from questionnaires and interviews with students about ChatDAC were gathered, along with suggestions for future improvements.
关于学习支持的信息工具的研究非常丰富,许多研究将自然语言分析和聊天机器人相结合。然而,现有的研究仍在努力提供针对不同学生理解水平的差异化教学指导。因此,本研究介绍了一个名为ChatDAC的聊天机器人,作为大学编程课程的教材。该系统采用与ChatGPT相同的GPT-4模型,在练习过程中,根据不同的理解水平,根据不同的回答类型,逐步为学习者提供分层提示,而不是传统的评估正确或错误的答案。数据分析显示,所有参与者的平均测试后分数与测试前分数相比显著提高,这表明ChatDAC有效地提高了学生的编程技能。此外,积极回答的比例与测试后得分之间存在显著的正相关。最后,从问卷调查和对学生的采访中收集了关于ChatDAC的见解,以及对未来改进的建议。
{"title":"A ChatGPT-based dynamic assessment chatbot","authors":"Yung-Ting Chuang,&nbsp;Hui-Ting Wang","doi":"10.1016/j.cola.2025.101366","DOIUrl":"10.1016/j.cola.2025.101366","url":null,"abstract":"<div><div>Research on information tools for learning support is abundant, with many studies integrating natural language analysis and chatbots. However, existing research still struggles to provide differentiated instructional guidance tailored to the varying levels of student understanding. Therefore, this study introduces a chatbot named ChatDAC designed as educational material for university programming classes. The system utilizes a GPT-4 model, the same model as ChatGPT, to progressively provide learners with tiered hints based on categorized response types representing different levels of understanding during practice sessions, rather than solely assessing right or wrong answers conventionally. Analysis of the data revealed a significant increase in average post-test scores compared to pre-test scores for all participants, indicating that ChatDAC effectively enhances students’ programming skills. Additionally, a notable positive correlation was found between the proportion of positive responses and post-test scores. Finally, insights from questionnaires and interviews with students about ChatDAC were gathered, along with suggestions for future improvements.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101366"},"PeriodicalIF":1.8,"publicationDate":"2025-09-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145219478","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
Toward efficient vibe coding: An LLM-based agent for low-code software development 迈向高效的氛围编码:用于低代码软件开发的基于llm的代理
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-09-23 DOI: 10.1016/j.cola.2025.101367
Nikolaos Malamas , Emmanouil Tsardoulias , Konstantinos Panayiotou , Andreas L. Symeonidis
The Software Engineering (SE) domain increasingly adopts low-code and no-code approaches to simplify application development and deployment. Two dominant paradigms have emerged in this space: Model-driven Engineering (MDE), leveraging Domain-specific Languages (DSLs) to abstract implementation and reduce the knowledge and expertise required, and LLM-based vibe coding, where developers interact with Large Language Models (LLMs) using natural language, allowing for rapid prototyping and code generation through conversations. Although DSLs provide precise abstractions and formal correctness, they often require specialized knowledge and have a steep learning curve. Conversely, vibe coding enables fluid and natural interactions, but struggles with domain specificity and frequently produces erroneous or unstructured code, which is difficult to integrate into formal development workflows. To harness the strengths of both paradigms, we present DSL Agent, an LLM-powered conversational interface for DSL-based application development. The DSL Agent is embedded within Locsys, a modern low-code development platform. It combines the flexibility and intuitiveness of LLM-based vibe coding with the rigor of DSLs by dynamically generating accurate and valid DSL models based on user descriptions, embedded into a unified conversational interface that leverages prompt engineering and in-context learning techniques. This offers a simpler and more intuitive interface, accelerates the development process, and reduces the expertise barrier. The agent is evaluated by more than 130 workshop participants of varying expertise levels, on two DSLs of different complexity. Evaluation metrics, including valid model rate, user satisfaction, and development time, indicate a significant improvement in valid model generation, productivity, and ease of use compared to traditional DSL-based SE workflows. These results highlight the potential of the DSL Agent to improve the entire DSL-based development life cycle by offering an efficient, intuitive, and user-friendly interface.
软件工程(SE)领域越来越多地采用低代码和无代码方法来简化应用程序开发和部署。在这个领域出现了两个主要的范例:模型驱动工程(MDE),利用领域特定语言(dsl)抽象实现并减少所需的知识和专业知识,以及基于llm的vibe编码,开发人员使用自然语言与大型语言模型(llm)交互,允许通过对话快速原型和代码生成。尽管dsl提供了精确的抽象和形式正确性,但它们通常需要专门的知识,并且具有陡峭的学习曲线。相反,vibe编码支持流畅和自然的交互,但是与领域特异性斗争,并且经常产生错误或非结构化的代码,这很难集成到正式的开发工作流中。为了利用这两种范式的优势,我们提出了DSL Agent,这是一个基于DSL的应用程序开发的基于llm的会话接口。DSL代理嵌入在Locsys中,这是一个现代的低代码开发平台。它结合了基于llm的vibe编码的灵活性和直观性与DSL的严密性,根据用户描述动态生成准确有效的DSL模型,嵌入到统一的会话界面中,利用即时工程和上下文学习技术。这提供了一个更简单和更直观的界面,加速了开发过程,并减少了专业知识障碍。该代理由130多名不同专业水平的研讨会参与者对两个不同复杂程度的dsl进行评估。评估指标,包括有效的模型率、用户满意度和开发时间,表明与传统的基于dsl的SE工作流相比,在有效的模型生成、生产力和易用性方面有了显著的改进。这些结果突出了DSL Agent通过提供高效、直观和用户友好的界面来改进整个基于DSL的开发生命周期的潜力。
{"title":"Toward efficient vibe coding: An LLM-based agent for low-code software development","authors":"Nikolaos Malamas ,&nbsp;Emmanouil Tsardoulias ,&nbsp;Konstantinos Panayiotou ,&nbsp;Andreas L. Symeonidis","doi":"10.1016/j.cola.2025.101367","DOIUrl":"10.1016/j.cola.2025.101367","url":null,"abstract":"<div><div>The Software Engineering (SE) domain increasingly adopts low-code and no-code approaches to simplify application development and deployment. Two dominant paradigms have emerged in this space: Model-driven Engineering (MDE), leveraging Domain-specific Languages (DSLs) to abstract implementation and reduce the knowledge and expertise required, and LLM-based vibe coding, where developers interact with Large Language Models (LLMs) using natural language, allowing for rapid prototyping and code generation through conversations. Although DSLs provide precise abstractions and formal correctness, they often require specialized knowledge and have a steep learning curve. Conversely, vibe coding enables fluid and natural interactions, but struggles with domain specificity and frequently produces erroneous or unstructured code, which is difficult to integrate into formal development workflows. To harness the strengths of both paradigms, we present <em>DSL Agent</em>, an LLM-powered conversational interface for DSL-based application development. The DSL Agent is embedded within Locsys, a modern low-code development platform. It combines the flexibility and intuitiveness of LLM-based vibe coding with the rigor of DSLs by dynamically generating accurate and valid DSL models based on user descriptions, embedded into a unified conversational interface that leverages prompt engineering and in-context learning techniques. This offers a simpler and more intuitive interface, accelerates the development process, and reduces the expertise barrier. The agent is evaluated by more than 130 workshop participants of varying expertise levels, on two DSLs of different complexity. Evaluation metrics, including valid model rate, user satisfaction, and development time, indicate a significant improvement in valid model generation, productivity, and ease of use compared to traditional DSL-based SE workflows. These results highlight the potential of the DSL Agent to improve the entire DSL-based development life cycle by offering an efficient, intuitive, and user-friendly interface.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101367"},"PeriodicalIF":1.8,"publicationDate":"2025-09-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145157808","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
Representation and system-agnostic automated CAD interoperability testing based on model interchangeability 基于模型互换性的表示和系统无关的自动化CAD互操作性测试
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-09-12 DOI: 10.1016/j.cola.2025.101365
Duygu Sap , Daniel P. Szabo
In this paper, we present theoretically-supported frameworks to test CAD system interoperability based on shape comparison criteria. We introduce a command line tool that provides indirect, representation-independent comparisons of CAD models via abstract proxies and query-based interpretations. Our frameworks support local comparisons using differential properties and offer a broad range of global comparisons. We allow testing for generic CAD software designed for different operating systems or scripting languages. Users can specify tolerance values for testing, ensuring accuracy. This approach bridges CAD model representations, enabling effective interoperability evaluation across diverse systems without requiring in-depth knowledge of CAD software or representations.
在本文中,我们提出了理论支持的框架来测试基于形状比较标准的CAD系统互操作性。我们介绍了一个命令行工具,它通过抽象代理和基于查询的解释提供CAD模型的间接的、与表示无关的比较。我们的框架支持使用差分属性进行局部比较,并提供广泛的全局比较。我们允许测试针对不同操作系统或脚本语言设计的通用CAD软件。用户可指定测试公差值,确保测试精度。这种方法架起了CAD模型表示的桥梁,在不需要深入了解CAD软件或表示的情况下,实现了跨不同系统的有效互操作性评估。
{"title":"Representation and system-agnostic automated CAD interoperability testing based on model interchangeability","authors":"Duygu Sap ,&nbsp;Daniel P. Szabo","doi":"10.1016/j.cola.2025.101365","DOIUrl":"10.1016/j.cola.2025.101365","url":null,"abstract":"<div><div>In this paper, we present theoretically-supported frameworks to test CAD system interoperability based on shape comparison criteria. We introduce a command line tool that provides indirect, representation-independent comparisons of CAD models via abstract proxies and query-based interpretations. Our frameworks support local comparisons using differential properties and offer a broad range of global comparisons. We allow testing for generic CAD software designed for different operating systems or scripting languages. Users can specify tolerance values for testing, ensuring accuracy. This approach bridges CAD model representations, enabling effective interoperability evaluation across diverse systems without requiring in-depth knowledge of CAD software or representations.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101365"},"PeriodicalIF":1.8,"publicationDate":"2025-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145095459","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
DepAPI: The performance impact of the evolution of APIs DepAPI: api演进对性能的影响
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-08-26 DOI: 10.1016/j.cola.2025.101353
Naser AlDuaij

Context:

As mobile systems have become ubiquitous, many developers target mobile systems to develop and release their applications. Platform developers provide API documentation for application developers to rely on. Since application performance is key to providing a usable and scalable mobile application to users, application developers must rely on platform API documentation to carefully design and implement their code. With multiple releases and ongoing development of platforms, these APIs are subject to change and may become deprecated. Platform developers require newer or alternative APIs for application developers in case an API becomes deprecated. Previous studies focused on how API deprecations affect development effort and how APIs evolve, but no prior study has explored the performance impact of these API deprecations.

Objective:

Create a methodology to classify deprecated APIs and study the performance implications of these deprecated APIs.

Method:

This study, referred to as DepAPI, presents a methodology called DepClassify to identify and classify deprecated APIs in terms of their types. DepClassify provides a method to select the APIs to test based on the most popular applications and their most frequently used APIs. The study also introduces DepTool that applies the methodology using Android as an exemplary operating system and shows the performance impact of API deprecation. This is the first study to investigate the performance impact of API deprecations.

Results:

The results show that the performance impact is significant enough to warrant the attention of both platform and application developers. Additionally, a specific study in DepAPI with a deprecated user-facing API shows that usability is affected.

Conclusion:

Based on the results, DepAPI recommends that system developers should provide developers with the performance implications of updating their APIs. Application developers should pay attention to the performance impact when updating their applications to use newer or alternative APIs.
背景:随着移动系统变得无处不在,许多开发人员瞄准移动系统来开发和发布他们的应用程序。平台开发人员为应用程序开发人员提供API文档。由于应用程序性能是向用户提供可用且可扩展的移动应用程序的关键,因此应用程序开发人员必须依靠平台API文档来仔细设计和实现他们的代码。随着多个版本和平台的持续开发,这些api可能会发生变化,并可能被弃用。平台开发人员需要为应用程序开发人员提供更新或替代的API,以防API被弃用。以前的研究主要关注API弃用如何影响开发工作以及API如何发展,但之前没有研究探索这些API弃用对性能的影响。目标:创建一种方法来分类已弃用的api,并研究这些已弃用的api的性能影响。方法:该研究(称为DepAPI)提出了一种称为depclassifier的方法,根据api的类型对已弃用的api进行识别和分类。depclassified提供了一种方法,可以根据最流行的应用程序及其最常用的api来选择要测试的api。该研究还介绍了应用该方法的DepTool,将Android作为示例操作系统,并显示API弃用对性能的影响。这是第一个调查API弃用对性能影响的研究。结果:结果表明,性能影响非常显著,足以引起平台和应用程序开发人员的注意。此外,对DepAPI的一项特定研究表明,使用弃用的面向用户的API会影响可用性。结论:基于结果,DepAPI建议系统开发人员应该向开发人员提供更新其api的性能影响。应用程序开发人员在更新应用程序以使用更新的或可替代的api时,应该注意性能影响。
{"title":"DepAPI: The performance impact of the evolution of APIs","authors":"Naser AlDuaij","doi":"10.1016/j.cola.2025.101353","DOIUrl":"10.1016/j.cola.2025.101353","url":null,"abstract":"<div><h3>Context:</h3><div>As mobile systems have become ubiquitous, many developers target mobile systems to develop and release their applications. Platform developers provide API documentation for application developers to rely on. Since application performance is key to providing a usable and scalable mobile application to users, application developers must rely on platform API documentation to carefully design and implement their code. With multiple releases and ongoing development of platforms, these APIs are subject to change and may become deprecated. Platform developers require newer or alternative APIs for application developers in case an API becomes deprecated. Previous studies focused on how API deprecations affect development effort and how APIs evolve, but no prior study has explored the performance impact of these API deprecations.</div></div><div><h3>Objective:</h3><div>Create a methodology to classify deprecated APIs and study the performance implications of these deprecated APIs.</div></div><div><h3>Method:</h3><div>This study, referred to as DepAPI, presents a methodology called DepClassify to identify and classify deprecated APIs in terms of their types. DepClassify provides a method to select the APIs to test based on the most popular applications and their most frequently used APIs. The study also introduces DepTool that applies the methodology using Android as an exemplary operating system and shows the performance impact of API deprecation. This is the first study to investigate the performance impact of API deprecations.</div></div><div><h3>Results:</h3><div>The results show that the performance impact is significant enough to warrant the attention of both platform and application developers. Additionally, a specific study in DepAPI with a deprecated user-facing API shows that usability is affected.</div></div><div><h3>Conclusion:</h3><div>Based on the results, DepAPI recommends that system developers should provide developers with the performance implications of updating their APIs. Application developers should pay attention to the performance impact when updating their applications to use newer or alternative APIs.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101353"},"PeriodicalIF":1.8,"publicationDate":"2025-08-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144912308","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
Lua in TeX Lua in TeX
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-08-22 DOI: 10.1016/j.cola.2025.101354
Hans Hagen
At the end of 2023 the Lua language celebrated its 30th anniversary and in that perspective I offered to wrap up our experiences with that language in the perspective of developing TeX follow ups called LuaTeX and LuaMetaTeX. I also discuss the interplay between them and ConTeXt, an advanced macro package for TeX. For those unfamiliar with TeX I start with an overview of what that system is. Because TeX cannot do much out of the box, users normally combine it with a so called macro package, such as Plain TeX, LaTeX or ConTeXt, where the later one is what I use and whose developers also drove the development of LuaTeX and LuaMetaTeX. The usage of Lua was a natural choice due to its performance and easiness to integrate, beyond the fact that Lua is independent of additional resources. To illustrate the discussion, I present examples that show the interaction between TeX and Lua.
在2023年底,Lua语言庆祝了它的30周年纪念日,从这个角度来看,我提出了从开发称为LuaTeX和LuaMetaTeX的TeX后续项目的角度来总结我们使用该语言的经验。我还讨论了它们与ConTeXt(用于TeX的高级宏包)之间的相互作用。对于那些不熟悉TeX的人,我首先概述一下这个系统是什么。由于TeX不能开箱即用,用户通常将其与所谓的宏包(如Plain TeX、LaTeX或ConTeXt)结合使用,我使用的是后者,后者的开发人员也推动了LuaTeX和LuaMetaTeX的开发。使用Lua是一个自然的选择,因为它的性能和易于集成,除了Lua独立于其他资源之外。为了说明这个讨论,我提供了一些示例,展示了TeX和Lua之间的交互。
{"title":"Lua in TeX","authors":"Hans Hagen","doi":"10.1016/j.cola.2025.101354","DOIUrl":"10.1016/j.cola.2025.101354","url":null,"abstract":"<div><div>At the end of 2023 the Lua language celebrated its 30<sup>th</sup> anniversary and in that perspective I offered to wrap up our experiences with that language in the perspective of developing TeX follow ups called LuaTeX and LuaMetaTeX. I also discuss the interplay between them and ConTeXt, an advanced macro package for TeX. For those unfamiliar with TeX I start with an overview of what that system is. Because TeX cannot do much out of the box, users normally combine it with a so called macro package, such as Plain TeX, LaTeX or ConTeXt, where the later one is what I use and whose developers also drove the development of LuaTeX and LuaMetaTeX. The usage of Lua was a natural choice due to its performance and easiness to integrate, beyond the fact that Lua is independent of additional resources. To illustrate the discussion, I present examples that show the interaction between TeX and Lua.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101354"},"PeriodicalIF":1.8,"publicationDate":"2025-08-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144932843","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
A Haskell Library for Adaptable Parsing Expression Grammars 一个用于自适应解析表达式语法的Haskell库
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-08-21 DOI: 10.1016/j.cola.2025.101349
Elton M. Cardoso , Leonardo V.S. Reis , Rodrigo G. Ribeiro
Adaptable Parsing Expression Grammars (APEG) is a formal model for describing languages that provide a mechanism to extend their own syntax during the parsing process. In this work, we review the syntax and semantics of APEG, discuss the implementation of a Haskell library for building parsers for extensible languages and using it to construct an APEG parser for a tiny extensible language.
适应性解析表达式语法(APEG)是一种形式化模型,用于描述提供在解析过程中扩展其自身语法的机制的语言。在这项工作中,我们回顾了APEG的语法和语义,讨论了用于构建可扩展语言解析器的Haskell库的实现,并使用它来构建用于小型可扩展语言的APEG解析器。
{"title":"A Haskell Library for Adaptable Parsing Expression Grammars","authors":"Elton M. Cardoso ,&nbsp;Leonardo V.S. Reis ,&nbsp;Rodrigo G. Ribeiro","doi":"10.1016/j.cola.2025.101349","DOIUrl":"10.1016/j.cola.2025.101349","url":null,"abstract":"<div><div>Adaptable Parsing Expression Grammars (APEG) is a formal model for describing languages that provide a mechanism to extend their own syntax during the parsing process. In this work, we review the syntax and semantics of APEG, discuss the implementation of a Haskell library for building parsers for extensible languages and using it to construct an APEG parser for a tiny extensible language.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101349"},"PeriodicalIF":1.8,"publicationDate":"2025-08-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144893877","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
Effects of specifying robotic missions in behavior trees and state machines 在行为树和状态机中指定机器人任务的效果
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-08-19 DOI: 10.1016/j.cola.2025.101330
Swaib Dragule , Engineer Bainomugisha , Patrizio Pelliccione , Thorsten Berger
The task of defining the robot’s mission is moving from professional developers and roboticists to the end-users. Robot missions, traditionally implemented in source code with text-based programming languages, present challenges for non-programmers. To this end, many domain-specific languages (DSLs) have been established in robotics. They are typically built upon an established paradigm, where behavior trees and state machines have become the most popular ones in robotics. These paradigms offer different levels of abstraction and control structures, which promise to improve the comprehension, correctness, and usability of missions. However, so far, there are no evaluation and validation studies to determine the effects of using either paradigm for mission specification by end-users. We present a controlled experiment on the effectiveness and efficiency of these paradigms for specifying robot missions by end-users. It measures mission comprehension, correctness and usability by examining language constructs, documentation, and usage. Our findings indicate that participants rated both paradigms above the neutral midpoint that is, greater than three on a 5-point scale in comprehension, with negligible variance in preference. However, state machine received marginally higher ratings in overall usability. The results further indicate that in the concrete syntax of the DSLs used in the experiments, user interfaces need improvement, more tutorials (including videos/audios) are required. End-users also need basic training in behavior trees, state machines, programming, and robotics. While the DSLs provide reasonable abstraction compared to text-based languages, further refinement is needed to enhance usability and correctness. We discuss actionable insights for improving the usability of behavior trees and state machines in robotics and automation.
定义机器人任务的任务正从专业开发人员和机器人专家转移到最终用户。机器人任务传统上是用基于文本的编程语言在源代码中实现的,这对非程序员来说是一个挑战。为此,在机器人技术中建立了许多领域特定语言(dsl)。它们通常建立在已建立的范例之上,其中行为树和状态机已成为机器人技术中最流行的范例。这些范例提供了不同层次的抽象和控制结构,有望提高任务的理解、正确性和可用性。然而,到目前为止,还没有评价和验证研究来确定最终用户在任务规范中使用任何一种范式的影响。我们提出了一个控制实验,对这些范例的有效性和效率的最终用户指定机器人的任务。它通过检查语言结构、文档和用法来度量任务理解、正确性和可用性。我们的研究结果表明,参与者对这两种范式的评价都高于中性中点,即在理解的5分制中大于3分,偏好的差异可以忽略不计。然而,状态机在总体可用性方面获得了稍高的评级。结果进一步表明,在实验中使用的dsl的具体语法中,用户界面需要改进,需要更多的教程(包括视频/音频)。终端用户还需要在行为树、状态机、编程和机器人方面进行基本培训。虽然与基于文本的语言相比,dsl提供了合理的抽象,但需要进一步细化以增强可用性和正确性。我们讨论了在机器人和自动化中提高行为树和状态机可用性的可行见解。
{"title":"Effects of specifying robotic missions in behavior trees and state machines","authors":"Swaib Dragule ,&nbsp;Engineer Bainomugisha ,&nbsp;Patrizio Pelliccione ,&nbsp;Thorsten Berger","doi":"10.1016/j.cola.2025.101330","DOIUrl":"10.1016/j.cola.2025.101330","url":null,"abstract":"<div><div>The task of defining the robot’s mission is moving from professional developers and roboticists to the end-users. Robot missions, traditionally implemented in source code with text-based programming languages, present challenges for non-programmers. To this end, many domain-specific languages (DSLs) have been established in robotics. They are typically built upon an established paradigm, where behavior trees and state machines have become the most popular ones in robotics. These paradigms offer different levels of abstraction and control structures, which promise to improve the comprehension, correctness, and usability of missions. However, so far, there are no evaluation and validation studies to determine the effects of using either paradigm for mission specification by end-users. We present a controlled experiment on the effectiveness and efficiency of these paradigms for specifying robot missions by end-users. It measures mission comprehension, correctness and usability by examining language constructs, documentation, and usage. Our findings indicate that participants rated both paradigms above the neutral midpoint that is, greater than three on a 5-point scale in comprehension, with negligible variance in preference. However, state machine received marginally higher ratings in overall usability. The results further indicate that in the concrete syntax of the DSLs used in the experiments, user interfaces need improvement, more tutorials (including videos/audios) are required. End-users also need basic training in behavior trees, state machines, programming, and robotics. While the DSLs provide reasonable abstraction compared to text-based languages, further refinement is needed to enhance usability and correctness. We discuss actionable insights for improving the usability of behavior trees and state machines in robotics and automation.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101330"},"PeriodicalIF":1.8,"publicationDate":"2025-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144880112","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
Data management and processing for IoT & robotics in smart farming: A survey 智能农业中物联网和机器人的数据管理和处理:一项调查
IF 1.8 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2025-08-16 DOI: 10.1016/j.cola.2025.101355
Houssam Bazza , Sandro Bimonte , Stefano Rizzi , Hassan Badir
Smart farming has garnered significant attention due to substantial advancements in robotics and IoT technologies. However, these advancements necessitate robust data management and processing guidelines to fully harness the potential of data and optimize farm production. Unfortunately, such clear guidelines are lacking in the smart farming sector, forcing practitioners and researchers to implement custom architectures for specific scenarios. This survey paper aims to examine the advancements in data management and processing within the Internet of Robotic Things (IoRT) context. After showing that the existing surveys on IoRT and smart farming barely cover these issues, we will review and classify the related literature within the framework of a reference architecture. We will conclude by listing the main open issues to be addressed in order to achieve the full potential of data-driven practices in the smart farming field.
由于机器人和物联网技术的巨大进步,智能农业受到了极大的关注。然而,这些进步需要强有力的数据管理和处理指南,以充分利用数据的潜力并优化农业生产。不幸的是,智能农业领域缺乏这样明确的指导方针,迫使从业者和研究人员为特定场景实现定制架构。本调查报告旨在研究机器人物联网(IoRT)背景下数据管理和处理的进展。在表明现有的关于IoRT和智能农业的调查几乎没有涵盖这些问题之后,我们将在参考架构的框架内对相关文献进行审查和分类。最后,我们将列出需要解决的主要问题,以便在智能农业领域充分发挥数据驱动实践的潜力。
{"title":"Data management and processing for IoT & robotics in smart farming: A survey","authors":"Houssam Bazza ,&nbsp;Sandro Bimonte ,&nbsp;Stefano Rizzi ,&nbsp;Hassan Badir","doi":"10.1016/j.cola.2025.101355","DOIUrl":"10.1016/j.cola.2025.101355","url":null,"abstract":"<div><div>Smart farming has garnered significant attention due to substantial advancements in robotics and IoT technologies. However, these advancements necessitate robust data management and processing guidelines to fully harness the potential of data and optimize farm production. Unfortunately, such clear guidelines are lacking in the smart farming sector, forcing practitioners and researchers to implement custom architectures for specific scenarios. This survey paper aims to examine the advancements in data management and processing within the Internet of Robotic Things (IoRT) context. After showing that the existing surveys on IoRT and smart farming barely cover these issues, we will review and classify the related literature within the framework of a reference architecture. We will conclude by listing the main open issues to be addressed in order to achieve the full potential of data-driven practices in the smart farming field.</div></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"85 ","pages":"Article 101355"},"PeriodicalIF":1.8,"publicationDate":"2025-08-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144887501","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
期刊
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学术文献互助群
群 号:604180095
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1