首页 > 最新文献

Journal of Computer Languages最新文献

英文 中文
Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languages 通过代码生成器语言处理MDSD/DSM可视化建模工具中的复杂表示
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-01 DOI: 10.1016/j.cola.2023.101208
Verislav Djukić , Aleksandar Popović

Constructing languages and tools for modeling is an intellectual effort that addresses challenges related to linguistic theory. It requires a high level of creativity and understanding between software engineers and language and domain experts. It is important to consider the context of language application, or the main goal of the work, at the beginning of the language construction process. A new language is not created instantaneously, but rather through a process of iteratively refining the definition of its elements in interaction with the real-world context in which it will be applied. From a pragmatic standpoint, the best way to ensure the correctness of a language’s semantics is to verify it using a reference implementation, although different approaches may be used to describe the semantics of the language. In this paper, we share our experience in developing new and extending the existing functionalities of tools for visual domain-specific modeling to simplify reference implementation. We demonstrate how the code generator language, with minor extensions, can be used for it. Visual modeling tools in MDSD and DSM pay more attention to the graphical representation of objects, and less to relations, roles, and properties. In our platform, objects, roles, and relations are all derived from the same base class, which allows us to distinguish between fifteen different model representation types, ranging from view on the model topology to complex 3D views.

构建语言和建模工具是一项智力工作,旨在应对与语言学理论相关的挑战。它要求软件工程师、语言和领域专家之间具有高度的创造力和理解力。在语言构建过程的开始,考虑语言应用的背景或工作的主要目标是很重要的。一种新语言不是即时创建的,而是通过与应用它的真实世界环境交互,迭代地完善其元素的定义。从语用学的角度来看,确保语言语义正确性的最佳方法是使用引用实现来验证它,尽管可以使用不同的方法来描述语言的语义。在本文中,我们分享了我们在开发新的和扩展现有功能的工具方面的经验,这些工具用于特定于视觉领域的建模,以简化参考实现。我们展示了如何使用带有少量扩展的代码生成器语言。MDSD和DSM中的可视化建模工具更多地关注对象的图形表示,而较少关注关系、角色和属性。在我们的平台中,对象、角色和关系都源自同一个基类,这使我们能够区分15种不同的模型表示类型,从模型拓扑上的视图到复杂的三维视图。
{"title":"Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languages","authors":"Verislav Djukić ,&nbsp;Aleksandar Popović","doi":"10.1016/j.cola.2023.101208","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101208","url":null,"abstract":"<div><p>Constructing languages and tools for modeling is an intellectual effort that addresses challenges related to linguistic theory. It requires a high level of creativity and understanding between software engineers and language and domain experts. It is important to consider the context of language application, or the main goal of the work, at the beginning of the language construction process. A new language is not created instantaneously, but rather through a process of iteratively refining the definition of its elements in interaction with the real-world context in which it will be applied. From a pragmatic standpoint, the best way to ensure the correctness of a language’s semantics is to verify it using a reference implementation, although different approaches may be used to describe the semantics of the language. In this paper, we share our experience in developing new and extending the existing functionalities of tools for visual domain-specific modeling to simplify reference implementation. We demonstrate how the code generator language, with minor extensions, can be used for it. Visual modeling tools in MDSD and DSM pay more attention to the graphical representation of objects, and less to relations, roles, and properties. In our platform, objects, roles, and relations are all derived from the same base class, which allows us to distinguish between fifteen different model representation types, ranging from view on the model topology to complex 3D views.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"75 ","pages":"Article 101208"},"PeriodicalIF":2.2,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50187288","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
Lexical-based partial redundancy elimination: An optimal algorithm with improved efficiency 基于词法的部分冗余消除:一种提高效率的优化算法
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-01 DOI: 10.1016/j.cola.2023.101204
Reshma Roy, Vineeth Paleri

Partial redundancy elimination is a well-known optimization in compilers that eliminates the recomputation of equivalent expressions appearing on a path in a program. Morel and Renvoise, in their seminal paper, showed that it is a powerful optimization that subsumes two traditional optimizations, i.e., Common Subexpression Elimination and Loop Invariant Code Motion. Morel and Renvoise’s algorithm is not computationally optimal because partially redundant computations may remain even after the optimization. Later, Knoop et al. came up with an algorithm that is computationally and lifetime optimal. The algorithm by Knoop et al. takes four unidirectional data flow analyses to perform the transformation. Here, we propose a new algorithm for partial redundancy elimination, both computationally and lifetime optimal. The proposed algorithm is more efficient than other best-known algorithms since it takes only three unidirectional data flow analyses. We demonstrate the efficiency of the proposed algorithm by implementing it using the LLVM Compiler Infrastructure and comparing the time taken by the algorithm with other selected best-known algorithms. The proposed algorithm reported here is based on lexically equivalent expressions. However, we believe that the ideas in the proposed algorithm can find their use in the value-based approach.

部分冗余消除是编译器中一种众所周知的优化,它消除了对程序中路径上出现的等效表达式的重新计算。Morel和Renvoise在他们的开创性论文中表明,这是一种强大的优化,包含了两种传统的优化,即公共子表达式消除和循环不变代码运动。Morel和Renvoise的算法在计算上不是最优的,因为即使在优化之后也可能保留部分冗余计算。后来,Knoop等人提出了一种计算和寿命最优的算法。Knoop等人的算法采用四个单向数据流分析来执行转换。在这里,我们提出了一种新的部分冗余消除算法,它在计算和寿命上都是最优的。所提出的算法比其他最著名的算法更有效,因为它只需要三次单向数据流分析。我们通过使用LLVM编译器基础结构来实现所提出的算法,并将该算法所花费的时间与其他选定的最著名的算法进行比较,从而证明了该算法的有效性。本文提出的算法是基于词汇等价表达式的。然而,我们相信所提出的算法中的思想可以在基于价值的方法中得到应用。
{"title":"Lexical-based partial redundancy elimination: An optimal algorithm with improved efficiency","authors":"Reshma Roy,&nbsp;Vineeth Paleri","doi":"10.1016/j.cola.2023.101204","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101204","url":null,"abstract":"<div><p>Partial redundancy elimination is a well-known optimization in compilers that eliminates the recomputation of equivalent expressions appearing on a path in a program. Morel and Renvoise, in their seminal paper, showed that it is a powerful optimization that subsumes two traditional optimizations, i.e., Common Subexpression Elimination and Loop Invariant Code Motion. Morel and Renvoise’s algorithm is not computationally optimal because partially redundant computations may remain even after the optimization. Later, Knoop et al. came up with an algorithm that is computationally and lifetime optimal. The algorithm by Knoop et al. takes four unidirectional data flow analyses to perform the transformation. Here, we propose a new algorithm for partial redundancy elimination, both computationally and lifetime optimal. The proposed algorithm is more efficient than other best-known algorithms since it takes only three unidirectional data flow analyses. We demonstrate the efficiency of the proposed algorithm by implementing it using the LLVM Compiler Infrastructure and comparing the time taken by the algorithm with other selected best-known algorithms. The proposed algorithm reported here is based on lexically equivalent expressions. However, we believe that the ideas in the proposed algorithm can find their use in the value-based approach.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"75 ","pages":"Article 101204"},"PeriodicalIF":2.2,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50187260","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
Aesthetics and comprehension of curved 3D graphs in Virtual Reality 虚拟现实中曲面三维图形的美学与理解
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-01 DOI: 10.1016/j.cola.2023.101198
Adam Drogemuller, Andrew Cunningham, James Walsh, James Baumeister, Ross T. Smith, Bruce H. Thomas

Studies and evaluations of 3D graph aesthetics beyond the desktop currently remain sparse, despite recent advancements and applications with the emergence of Immersive Analytics. This paper explores curvature aesthetics for the edges within a 3D graph visualisation and presents preliminary implementations to a Lombardi-inspired rendering for an edge. Additionally, we evaluate three approaches to curvature through two studies to compare against straight-lines as a baseline. The two studies focused on observing user preference and performance when navigating a curved graph without and with topological-based tasks in Virtual Reality (VR). We found that curved edges without specified orientations tended to perform worse in performance and preference compared to Lombardi-inspired implementations of edges. Pupillary response and the participant’s approaches to navigation were also observed to be indicative of the edge’s respective performance for topological-based tasks.

尽管最近随着沉浸式分析的出现取得了进步和应用,但目前对桌面以外的3D图形美学的研究和评估仍然很少。本文探讨了3D图形可视化中边缘的曲率美学,并介绍了受Lombardi启发的边缘渲染的初步实现。此外,我们通过两项研究评估了三种曲率方法,以比较作为基线的直线。这两项研究的重点是在虚拟现实(VR)中,在没有和有基于拓扑的任务的情况下导航曲线图时,观察用户的偏好和性能。我们发现,与Lombardi启发的边缘实现相比,没有指定方向的弯曲边缘往往在性能和偏好方面表现较差。瞳孔反应和参与者的导航方法也被观察到表明了边缘在基于拓扑的任务中的各自表现。
{"title":"Aesthetics and comprehension of curved 3D graphs in Virtual Reality","authors":"Adam Drogemuller,&nbsp;Andrew Cunningham,&nbsp;James Walsh,&nbsp;James Baumeister,&nbsp;Ross T. Smith,&nbsp;Bruce H. Thomas","doi":"10.1016/j.cola.2023.101198","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101198","url":null,"abstract":"<div><p>Studies and evaluations of 3D graph aesthetics beyond the desktop currently remain sparse, despite recent advancements and applications with the emergence of <em>Immersive Analytics</em>. This paper explores curvature aesthetics for the edges within a 3D graph visualisation and presents preliminary implementations to a Lombardi-inspired rendering for an edge. Additionally, we evaluate three approaches to curvature through two studies to compare against straight-lines as a baseline. The two studies focused on observing user preference and performance when navigating a curved graph without and with topological-based tasks in Virtual Reality (VR). We found that curved edges without specified orientations tended to perform worse in performance and preference compared to Lombardi-inspired implementations of edges. Pupillary response and the participant’s approaches to navigation were also observed to be indicative of the edge’s respective performance for topological-based tasks.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"75 ","pages":"Article 101198"},"PeriodicalIF":2.2,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50187253","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
An approach to build JSON-based Domain Specific Languages solutions for web applications 一种为web应用程序构建基于JSON的领域特定语言解决方案的方法
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-01 DOI: 10.1016/j.cola.2023.101203
Enrique Chavarriaga , Francisco Jurado , Francy D. Rodríguez

Because of their level of abstraction, Domain-Specific Languages (DSLs) enable building applications that ease software implementation. In the context of web applications, we can find a lot of technologies and programming languages for server-side applications that provide fast, robust, and flexible solutions, whereas those for client-side applications are limited, and mostly restricted to directly use JavaScript, HTML5, CSS3, JSON and XML. This article presents a novel approach to creating DSL-based web applications using JSON grammar (JSON-DSL) for both, the server and client side. The approach includes an evaluation engine, a programming model and an integrated web development environment that support it. The evaluation engine allows the execution of the elements created with the programming model. For its part, the programming model allows the definition and specification of JSON-DSLs, the implementation of JavaScript components, the use of JavaScript templates provided by the engine, the use of link connectors to heterogeneous information sources, and the integration with other widgets, web components and JavaScript frameworks. To validate the strength and capacity of our approach, we have developed four case studies that use the integrated web development environment to apply the programming model and check the results within the evaluation engine.

由于其抽象级别,领域特定语言(DSL)能够构建简化软件实现的应用程序。在web应用程序的上下文中,我们可以找到许多用于服务器端应用程序的技术和编程语言,这些技术和语言提供快速、健壮和灵活的解决方案,而用于客户端应用程序的那些技术和语言是有限的,并且大多被限制为直接使用JavaScript、HTML5、CSS3、JSON和XML。本文提出了一种新的方法,可以使用JSON语法(JSON-DSL)为服务器端和客户端创建基于DSL的web应用程序。该方法包括评估引擎、编程模型和支持它的集成web开发环境。评估引擎允许执行使用编程模型创建的元素。就编程模型而言,它允许定义和规范JSON DSL,实现JavaScript组件,使用引擎提供的JavaScript模板,使用到异构信息源的链接连接器,以及与其他小部件、web组件和JavaScript框架的集成。为了验证我们的方法的强度和能力,我们开发了四个案例研究,使用集成的web开发环境来应用编程模型并在评估引擎中检查结果。
{"title":"An approach to build JSON-based Domain Specific Languages solutions for web applications","authors":"Enrique Chavarriaga ,&nbsp;Francisco Jurado ,&nbsp;Francy D. Rodríguez","doi":"10.1016/j.cola.2023.101203","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101203","url":null,"abstract":"<div><p>Because of their level of abstraction, Domain-Specific Languages (DSLs) enable building applications that ease software implementation. In the context of web applications, we can find a lot of technologies and programming languages for server-side applications that provide fast, robust, and flexible solutions, whereas those for client-side applications are limited, and mostly restricted to directly use JavaScript, HTML5, CSS3, JSON and XML. This article presents a novel approach to creating DSL-based web applications using JSON grammar (JSON-DSL) for both, the server and client side. The approach includes an evaluation engine, a programming model and an integrated web development environment that support it. The evaluation engine allows the execution of the elements created with the programming model. For its part, the programming model allows the definition and specification of JSON-DSLs, the implementation of JavaScript components, the use of JavaScript templates provided by the engine, the use of link connectors to heterogeneous information sources, and the integration with other widgets, web components and JavaScript frameworks. To validate the strength and capacity of our approach, we have developed four case studies that use the integrated web development environment to apply the programming model and check the results within the evaluation engine.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"75 ","pages":"Article 101203"},"PeriodicalIF":2.2,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50187259","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
Quantitative program sketching using decision tree-based lifted analysis 使用基于决策树的提升分析的定量程序绘制
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-01 DOI: 10.1016/j.cola.2023.101206
Aleksandar S. Dimovski

We present a novel approach for resolving numerical program sketches under Boolean and quantitative objectives. The input is a program sketch, which represents a partial program with missing numerical parameters (holes). The aim is to automatically synthesize values for the parameters, such that the resulting complete program satisfies: a Boolean (qualitative) specification given in the form of assertions; and a quantitative specification that estimates the number of execution steps to termination and which the synthesizer is expected to optimize.

To address the above quantitative sketching problem, we encode a program sketch as a program family (a.k.a. Software Product Line) and use the specifically designed lifted analysis algorithms based on abstract interpretation for efficiently analyzing program families with numerical features. The elements of the lifted analysis domain are decision trees, in which decision nodes are labeled with linear constraints defined over numerical features and leaf nodes belong to an existing single-program analysis domain. First, we transform a program sketch into a program family, such that numerical holes correspond to numerical features and all possible sketch realizations correspond to variants in the program family. Then, we use a combination of forward (numerical) and backward (quantitative termination) lifted analysis of program families to find the variants (family members) that satisfy all assertions, and moreover are optimal with respect to the given quantitative objective. Such obtained variants represent the “correct & optimal” realizations of the given program sketch.

We present a prototype implementation of our approach within the FamilySketcher tool for resolving C sketches with numerical data types. We have evaluated our approach on a set of numerical benchmarks, and experimental results confirm the effectiveness of our approach. In some cases, our approach provides speedups against the well-known sketching tool Sketch and resolves some numerical benchmarks that Sketch cannot handle.

我们提出了一种在布尔和定量目标下求解数值程序草图的新方法。输入是程序草图,表示缺少数值参数(孔)的部分程序。其目的是自动合成参数的值,使生成的完整程序满足:以断言形式给出的布尔(定性)规范;以及量化规范,其估计到终止的执行步骤的数量并且期望合成器优化该数量。为了解决上述定量草图问题,我们将程序草图编码为程序族(也称为软件产品线),并使用专门设计的基于抽象解释的提升分析算法来有效分析具有数字特征的程序族。提升分析域的元素是决策树,其中决策节点用在数值特征上定义的线性约束进行标记,叶节点属于现有的单个程序分析域。首先,我们将程序草图转换为程序族,使得数值孔对应于数值特征,并且所有可能的草图实现对应于程序族中的变体。然后,我们使用程序族的前向(数值)和后向(定量终止)提升分析的组合来找到满足所有断言的变体(族成员),并且对于给定的定量目标是最优的。这样获得的变体代表了给定程序草图的“正确和最佳”实现。我们在FamilySketcher工具中展示了我们的方法的原型实现,用于解析具有数字数据类型的C草图。我们在一组数值基准上评估了我们的方法,实验结果证实了我们方法的有效性。在某些情况下,我们的方法与著名的绘制工具Sketch相比提供了加速,并解决了Sketch无法处理的一些数字基准。
{"title":"Quantitative program sketching using decision tree-based lifted analysis","authors":"Aleksandar S. Dimovski","doi":"10.1016/j.cola.2023.101206","DOIUrl":"https://doi.org/10.1016/j.cola.2023.101206","url":null,"abstract":"<div><p>We present a novel approach for resolving numerical program sketches under Boolean and quantitative objectives. The input is a program sketch, which represents a partial program with missing numerical parameters (holes). The aim is to automatically synthesize values for the parameters, such that the resulting complete program satisfies: a <em>Boolean (qualitative) specification</em> given in the form of assertions; and a <em>quantitative specification</em> that estimates the number of execution steps to termination and which the synthesizer is expected to optimize.</p><p>To address the above quantitative sketching problem, we encode a program sketch as a program family (a.k.a. Software Product Line) and use the specifically designed lifted analysis algorithms based on abstract interpretation for efficiently analyzing program families with numerical features. The elements of the lifted analysis domain are <em>decision trees</em>, in which decision nodes are labeled with linear constraints defined over numerical features and leaf nodes belong to an existing single-program analysis domain. First, we transform a program sketch into a program family, such that numerical holes correspond to numerical features and all possible sketch realizations correspond to variants in the program family. Then, we use a combination of forward (numerical) and backward (quantitative termination) lifted analysis of program families to find the variants (family members) that satisfy all assertions, and moreover are optimal with respect to the given quantitative objective. Such obtained variants represent the “correct &amp; optimal” realizations of the given program sketch.</p><p>We present a prototype implementation of our approach within the <span>FamilySketcher</span>\u0000<!--> <!-->tool for resolving C sketches with numerical data types. We have evaluated our approach on a set of numerical benchmarks, and experimental results confirm the effectiveness of our approach. In some cases, our approach provides speedups against the well-known sketching tool <span>Sketch</span>\u0000<!--> <!-->and resolves some numerical benchmarks that <span>Sketch</span>\u0000<!--> <!-->cannot handle.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"75 ","pages":"Article 101206"},"PeriodicalIF":2.2,"publicationDate":"2023-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"50187261","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}
引用次数: 4
Introduction to the Special issue on Methods, Tools and Languages for Model-driven Engineering and Low-code Development 模型驱动工程和低代码开发的方法、工具和语言特刊简介
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101190
Geylani Kardas, Federico Ciccozzi, Ludovico Iovino
{"title":"Introduction to the Special issue on Methods, Tools and Languages for Model-driven Engineering and Low-code Development","authors":"Geylani Kardas,&nbsp;Federico Ciccozzi,&nbsp;Ludovico Iovino","doi":"10.1016/j.cola.2022.101190","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101190","url":null,"abstract":"","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101190"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49875706","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
Students’ difficulties with inserting and deleting nodes in a singly linked list in the C programming language 学生在C编程语言单链表中插入和删除节点的困难
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101184
Eman Almadhoun, Jennifer Parham-Mocello

Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students’ misunderstandings early. We found that students had a good conceptual understanding of how to insert and delete nodes in a singly linked list in C. However, many students continued to struggle with C syntax, pointer manipulation, and memory management needed to correctly implement singly linked lists. Students reported that the abstract nature of pointers, relating linked lists to the real world, and prior knowledge about dynamic arrays contributed the most to their difficulties with linked lists in C.

由于链表是理解更高级数据结构的桥梁,我们认为及早发现学生的误解是至关重要的。我们发现,学生们对如何在C中插入和删除单链表中的节点有很好的概念理解。然而,许多学生仍然在C语法、指针操作和正确实现单链表所需的内存管理方面苦苦挣扎。学生们报告说,指针的抽象性质、将链表与现实世界联系起来,以及对动态数组的先验知识,是他们在C语言中使用链表时遇到的最大困难。
{"title":"Students’ difficulties with inserting and deleting nodes in a singly linked list in the C programming language","authors":"Eman Almadhoun,&nbsp;Jennifer Parham-Mocello","doi":"10.1016/j.cola.2022.101184","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101184","url":null,"abstract":"<div><p>Since linked lists serve as a bridge to understanding more advanced data structures, we believe that it is critical to identify students’ misunderstandings early. We found that students had a good conceptual understanding of how to insert and delete nodes in a singly linked list in C. However, many students continued to struggle with C syntax, pointer manipulation, and memory management needed to correctly implement singly linked lists. Students reported that the abstract nature of pointers, relating linked lists to the real world, and prior knowledge about dynamic arrays contributed the most to their difficulties with linked lists in C.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101184"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49875705","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
What about the usability in low-code platforms? A systematic literature review 低代码平台的可用性如何?系统的文献综述
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101185
Daniel Pinho , Ademar Aguiar , Vasco Amaral

Context:

Low-code development is a concept whose presence has grown both in academia and the software industry and is discussed alongside others, such as model-driven engineering and domain-specific languages. Usability is an important concept in low-code contexts since users of these tools often lack a background in programming. Grey literature articles have also stated that low-code tools have high usability.

Objective:

This paper examines the current literature about low-code and no-code to discover more about them and their relationship with usability, particularly its quality, which factors are the most relevant, and how users view these tools. This focus on usability aims to provide a different point of view from other works on low-code.

Method:

We performed a systematic literature review based on a formal protocol for this study. The search protocol returned a total of 207 peer-review articles across five databases, which was supplemented with a snowballing process. These were filtered using inclusion and exclusion criteria, resulting in 38 relevant articles that were analysed, synthesised and reported.

Conclusion:

Despite growing interest and a strong enterprise presence in academia, we did not find a formal definition of low-code, although common characteristics have been specified. We found that users have a heightened awareness of usability regarding low-code tools, with some authors performing feasibility studies on their implementations or listing factors that influence the user experience in a given tool. Researchers are considering usability factors unconsciously, and the low-code field would grow if research on usability increased. This paper also suggests a definition for low-code development.

背景:低代码开发是一个概念,它在学术界和软件行业都有发展,并与其他概念一起讨论,如模型驱动的工程和特定领域的语言。在低代码环境中,可用性是一个重要的概念,因为这些工具的用户通常缺乏编程背景。灰色文献文章也指出,低代码工具具有很高的可用性。目的:本文研究了当前关于低代码和无代码的文献,以了解更多关于它们及其与可用性的关系,特别是其质量,哪些因素最相关,以及用户如何看待这些工具。这种对可用性的关注旨在提供一种不同于其他低代码工作的观点。方法:我们根据本研究的正式协议进行了系统的文献综述。搜索协议在五个数据库中总共返回了207篇同行评审文章,并辅以滚雪球过程。使用纳入和排除标准对这些文章进行筛选,得到38篇相关文章进行分析、综合和报道。结论:尽管学术界对低代码的兴趣越来越大,企业界也有很强的影响力,但我们没有找到低代码的正式定义,尽管已经指定了常见的特征。我们发现,用户对低代码工具的可用性有了更高的认识,一些作者对其实现进行了可行性研究,或者列出了影响给定工具中用户体验的因素。研究人员正在无意识地考虑可用性因素,如果对可用性的研究增加,低代码领域就会扩大。本文还提出了低代码开发的定义。
{"title":"What about the usability in low-code platforms? A systematic literature review","authors":"Daniel Pinho ,&nbsp;Ademar Aguiar ,&nbsp;Vasco Amaral","doi":"10.1016/j.cola.2022.101185","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101185","url":null,"abstract":"<div><h3>Context:</h3><p>Low-code development is a concept whose presence has grown both in academia and the software industry and is discussed alongside others, such as model-driven engineering and domain-specific languages. Usability is an important concept in low-code contexts since users of these tools often lack a background in programming. Grey literature articles have also stated that low-code tools have high usability.</p></div><div><h3>Objective:</h3><p>This paper examines the current literature about low-code and no-code to discover more about them and their relationship with usability, particularly its quality, which factors are the most relevant, and how users view these tools. This focus on usability aims to provide a different point of view from other works on low-code.</p></div><div><h3>Method:</h3><p>We performed a systematic literature review based on a formal protocol for this study. The search protocol returned a total of 207 peer-review articles across five databases, which was supplemented with a snowballing process. These were filtered using inclusion and exclusion criteria, resulting in 38 relevant articles that were analysed, synthesised and reported.</p></div><div><h3>Conclusion:</h3><p>Despite growing interest and a strong enterprise presence in academia, we did not find a formal definition of low-code, although common characteristics have been specified. We found that users have a heightened awareness of usability regarding low-code tools, with some authors performing feasibility studies on their implementations or listing factors that influence the user experience in a given tool. Researchers are considering usability factors unconsciously, and the low-code field would grow if research on usability increased. This paper also suggests a definition for low-code development.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101185"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49903321","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}
引用次数: 5
A graph-based model for build optimization sequences: A study of optimization sequence length impacts on code size and speedup 基于图的构建优化序列模型:优化序列长度对代码大小和加速的影响研究
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101188
Nilton Luiz Queiroz Jr, Anderson Faustino da Silva

Embedded Systems applications have several limitations, one of these limitations is the memory size. Modern compilers provide optimization sequences that reduce the code size, contributing to solve this memory issue. However, the optimization search space is very large, and the same optimization can be applied several times in the same program. Consequently, there is a need to determine the optimization sequence length. Furthermore, sometimes applying optimizations does not result in a significant speedup gain. In this paper, we present an evaluation of optimization sequence lengths, their impact on the code size reduction and speedup increase using a graph-based model to build optimization sequences. The results indicate that is possible to achieve about 15.1% of code size reduction over O0, and also obtain speedups better than O2 optimization level, while Oz achieves 15.5% of code size reduction but cannot reach the speedup of O2 optimization level.

嵌入式系统应用程序有几个限制,其中一个限制是内存大小。现代编译器提供了减少代码大小的优化序列,有助于解决这个内存问题。然而,优化搜索空间非常大,同一优化可以在同一程序中多次应用。因此,有必要确定优化序列的长度。此外,有时应用优化并不会带来显著的加速增益。在本文中,我们使用基于图的模型来构建优化序列,以评估优化序列长度及其对代码大小减少和加速增加的影响。结果表明,在0以上可以实现约15.1%的代码缩减,并且获得比O2优化水平更好的加速,而Oz可以实现15.5%的代码缩减,但无法达到O2优化水平的加速。
{"title":"A graph-based model for build optimization sequences: A study of optimization sequence length impacts on code size and speedup","authors":"Nilton Luiz Queiroz Jr,&nbsp;Anderson Faustino da Silva","doi":"10.1016/j.cola.2022.101188","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101188","url":null,"abstract":"<div><p>Embedded Systems applications have several limitations, one of these limitations is the memory size. Modern compilers provide optimization sequences that reduce the code size, contributing to solve this memory issue. However, the optimization search space is very large, and the same optimization can be applied several times in the same program. Consequently, there is a need to determine the optimization sequence length. Furthermore, sometimes applying optimizations does not result in a significant speedup gain. In this paper, we present an evaluation of optimization sequence lengths, their impact on the code size reduction and speedup increase using a graph-based model to build optimization sequences. The results indicate that is possible to achieve about 15.1% of code size reduction over <span>O0</span>, and also obtain speedups better than <span>O2</span> optimization level, while <span>Oz</span> achieves 15.5% of code size reduction but cannot reach the speedup of <span>O2</span> optimization level.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101188"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49875711","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
General parsing with regular expression matching 使用正则表达式匹配的一般解析
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101176
Angelo Borsotti , Luca Breveglieri , Stefano Crespi Reghizzi , Angelo Morzenti

The context-free grammars extended with regular expressions (RE), known as ECF or EBNF grammars, are commonly used as they often allow for terser language definitions. Yet for such grammars the notion of syntax tree, and consequently of ambiguity, lacks an agreed definition. The simplified tree structures returned by the existing parsing algorithms do not faithfully represent all the ways a sentence is derivable by means of the REs present in the grammar rules. We contribute a precise definition of the regular parts in the structures of the EBNF syntax trees, which is aligned with the tree representations that have been adopted by the recent algorithms for RE matching. For an EBNF rule, the finest representation shows all the RE operators as nodes in the sub-tree, while the flat representation simply appends the string generated by the RE to the nonterminal node. A consequent notion of representation-dependent ambiguity follows. The above representations are incorporated into a Tomita-style parsing algorithm, i.e., a GLR(1) parser. To construct such a parser, we follow the positional method of the Berry–Sethi parsers for regular languages. Given an EBNF grammar, our parser-generator produces a parser compliant with the choices expressed by the user about the representation of the syntax trees. We also report the parsing performance, over a few representative sets of languages (benchmarks) for programming and data representation, in comparison with existing parsers for EBNF grammars.

用正则表达式(RE)扩展的上下文无关语法,即ECF或EBNF语法,通常被使用,因为它们通常允许简洁的语言定义。然而,对于这样的语法来说,语法树的概念,以及由此产生的歧义,缺乏一个一致的定义。现有解析算法返回的简化树结构并不能忠实地表示通过语法规则中存在的RE导出句子的所有方式。我们贡献了EBNF语法树结构中规则部分的精确定义,该定义与最近的RE匹配算法所采用的树表示一致。对于EBNF规则,最精细的表示将所有RE运算符显示为子树中的节点,而平面表示只是将RE生成的字符串附加到非终端节点。随之而来的是表征相关歧义的概念。上述表示被合并到富田风格的解析算法中,即GLR(1)解析器。为了构建这样一个解析器,我们遵循Berry–Sethi语法分析器的定位方法。给定EBNF语法,我们的解析器生成器生成一个解析器,该解析器符合用户对语法树表示的选择。我们还报告了与EBNF语法的现有解析器相比,在用于编程和数据表示的几个具有代表性的语言集(基准)上的解析性能。
{"title":"General parsing with regular expression matching","authors":"Angelo Borsotti ,&nbsp;Luca Breveglieri ,&nbsp;Stefano Crespi Reghizzi ,&nbsp;Angelo Morzenti","doi":"10.1016/j.cola.2022.101176","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101176","url":null,"abstract":"<div><p>The context-free grammars extended with regular expressions (RE), known as ECF or EBNF grammars, are commonly used as they often allow for terser language definitions. Yet for such grammars the notion of syntax tree, and consequently of ambiguity, lacks an agreed definition. The simplified tree structures returned by the existing parsing algorithms do not faithfully represent all the ways a sentence is derivable by means of the REs present in the grammar rules. We contribute a precise definition of the regular parts in the structures of the EBNF syntax trees, which is aligned with the tree representations that have been adopted by the recent algorithms for RE matching. For an EBNF rule, the finest representation shows all the RE operators as nodes in the sub-tree, while the flat representation simply appends the string generated by the RE to the nonterminal node. A consequent notion of representation-dependent ambiguity follows. The above representations are incorporated into a Tomita-style parsing algorithm, i.e., a <span><math><mrow><mtext>GLR</mtext><mspace></mspace><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math></span> parser. To construct such a parser, we follow the positional method of the Berry–Sethi parsers for regular languages. Given an EBNF grammar, our parser-generator produces a parser compliant with the choices expressed by the user about the representation of the syntax trees. We also report the parsing performance, over a few representative sets of languages (benchmarks) for programming and data representation, in comparison with existing parsers for EBNF grammars.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101176"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49903348","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
期刊
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