首页 > 最新文献

Journal of Computer Languages最新文献

英文 中文
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
End-user development for interactive web-based virtual reality scenes 交互式网络虚拟现实场景的终端用户开发
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101187
Enes Yigitbas, Jonas Klauke, Sebastian Gottschalk, Gregor Engels

Recent advances in Virtual Reality (VR) technology and the increased availability of VR-equipped devices enable a wide range of consumer-oriented applications. For novice developers, however, creating interactive scenes for VR applications is a complex and cumbersome task that requires high technical knowledge which is often missing. This hinders the potential of enabling novices to create, modify, and execute their own interactive VR scenes. Although recent authoring tools for interactive VR scenes are promising, most of them focus on experts as the target group and neglect the novices with low programming knowledge. To lower the entry barrier, we provide an open-source web-based End-User Development (EUD) tool, called VREUD, that supports the rapid construction and execution of interactive VR scenes. To address the aspect of construction, VREUD enables the specification of the VR scene including interactions and tasks. Furthermore, our tool supports the execution and immersive experience of the created interactive VR scenes on VR head-mounted displays. Based on a user study, we have analyzed the effectiveness, efficiency, and user satisfaction of VREUD which shows promising results to empower novices in creating their interactive VR scenes.

虚拟现实(VR)技术的最新进展和配备VR的设备的可用性的增加使得能够实现广泛的面向消费者的应用。然而,对于新手开发人员来说,为VR应用程序创建交互式场景是一项复杂而繁琐的任务,需要很高的技术知识,而这些知识往往是缺失的。这阻碍了新手创建、修改和执行自己的交互式VR场景的潜力。尽管最近用于交互式VR场景的创作工具很有前景,但它们大多以专家为目标群体,而忽视了编程知识水平较低的新手。为了降低进入门槛,我们提供了一个开源的基于web的最终用户开发(EUD)工具,称为VREUD,支持交互式VR场景的快速构建和执行。为了解决构建方面的问题,VREUD能够规范VR场景,包括交互和任务。此外,我们的工具支持在VR头戴式显示器上执行和身临其境地体验创建的交互式VR场景。在用户研究的基础上,我们分析了VREUD的有效性、效率和用户满意度,这对新手创建交互式VR场景显示出了很好的效果。
{"title":"End-user development for interactive web-based virtual reality scenes","authors":"Enes Yigitbas,&nbsp;Jonas Klauke,&nbsp;Sebastian Gottschalk,&nbsp;Gregor Engels","doi":"10.1016/j.cola.2022.101187","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101187","url":null,"abstract":"<div><p>Recent advances in Virtual Reality (VR) technology and the increased availability of VR-equipped devices enable a wide range of consumer-oriented applications. For novice developers, however, creating interactive scenes for VR applications is a complex and cumbersome task that requires high technical knowledge which is often missing. This hinders the potential of enabling novices to create, modify, and execute their own interactive VR scenes. Although recent authoring tools for interactive VR scenes are promising, most of them focus on experts as the target group and neglect the novices with low programming knowledge. To lower the entry barrier, we provide an open-source web-based End-User Development (EUD) tool, called VREUD, that supports the rapid construction and execution of interactive VR scenes. To address the aspect of construction, VREUD enables the specification of the VR scene including interactions and tasks. Furthermore, our tool supports the execution and immersive experience of the created interactive VR scenes on VR head-mounted displays. Based on a user study, we have analyzed the effectiveness, efficiency, and user satisfaction of VREUD which shows promising results to empower novices in creating their interactive VR scenes.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101187"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49903322","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
Method name recommendation based on source code metrics 基于源代码度量的方法名称推荐
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101177
Saeed Parsa, Morteza Zakeri-Nasrabadi, Masoud Ekhtiarzadeh, Mohammad Ramezani

Method naming is a critical factor in program comprehension, affecting software quality. State-of-the-art naming techniques use deep learning to compute the methods’ similarity considering their textual contents. They highly depend on identifiers’ names and do not compute semantical interrelations among methods’ instructions. Source code metrics compute such semantical interrelations. This article proposes using source code metrics to measure semantical and structural cross-project similarities. The metrics constitute features of a KNN model, determining the k-most similar methods to a given method. Experiments with 4000000 Java methods on the proposed model demonstrate improvements in precision and recall of state-of-the-arts with 4.25 and 12.08%.

方法命名是程序理解中的一个关键因素,影响着软件的质量。最先进的命名技术使用深度学习来计算方法的相似度,考虑它们的文本内容。它们高度依赖于标识符的名称,并且不计算方法指令之间的语义相互关系。源代码度量计算这种语义上的相互关系。本文建议使用源代码度量来度量语义和结构上的跨项目相似性。这些指标构成了KNN模型的特征,决定了与给定方法最相似的k个方法。用400000种Java方法对该模型进行了实验,结果表明该模型的查全率和查全率分别提高了4.25%和12.08%。
{"title":"Method name recommendation based on source code metrics","authors":"Saeed Parsa,&nbsp;Morteza Zakeri-Nasrabadi,&nbsp;Masoud Ekhtiarzadeh,&nbsp;Mohammad Ramezani","doi":"10.1016/j.cola.2022.101177","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101177","url":null,"abstract":"<div><p>Method naming is a critical factor in program comprehension, affecting software quality. State-of-the-art naming techniques use deep learning to compute the methods’ similarity considering their textual contents. They highly depend on identifiers’ names and do not compute semantical interrelations among methods’ instructions. Source code metrics compute such semantical interrelations. This article proposes using source code metrics to measure semantical and structural cross-project similarities. The metrics constitute features of a KNN model, determining the k-most similar methods to a given method. Experiments with 4000000 Java methods on the proposed model demonstrate improvements in precision and recall of state-of-the-arts with 4.25 and 12.08%.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101177"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49875703","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
Preserving hand-drawn qualities in audiovisual performance through sketch-based interaction 通过基于草图的交互保留视听表演中的手绘品质
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101186
Samuelle Bourgault, Jennifer Jacobs

Live coding – the real-time procedural creation of audiovisual works – suggests opportunities to extend hand-drawn animation; however, existing live coding systems are incompatible with manual animation workflows. Manual input is not a primary datatype in existing live coding languages and live coding tools require using symbolic programming environments. We theorize that by applying direct manipulation to the domain of live coding, we can enable animators to create expressive mappings between hand-drawn animations and audio effects in realtime. We present Megafauna, a sketch-based system for audiovisual performance, informed by interviews with professional animators. Megafauna supports the integrated generation and control of hand-drawn animation and audio sequences by enabling animators to directly sketch mapping functions between animation frames and sound generators. We demonstrate the expressive potential of Megafauna by reproducing animated compositions from procedural and manual domains. We evaluate the opportunities of our approach for live production through an expert review of a performance piece created with Megafauna.

现场编码——对视听作品进行实时程序化创作——为扩展手绘动画提供了机会;然而,现有的实时编码系统与手动动画工作流程不兼容。在现有的实时编码语言中,手工输入不是主要的数据类型,并且实时编码工具需要使用符号编程环境。我们的理论是,通过将直接操作应用于现场编码领域,我们可以使动画师在手绘动画和音频效果之间实时创建富有表现力的映射。我们介绍Megafauna,一个基于草图的视听表演系统,通过对专业动画师的采访得知。Megafauna支持手绘动画和音频序列的集成生成和控制,使动画师能够直接在动画帧和声音生成器之间绘制草图映射功能。我们通过从程序和手动领域复制动画组合来展示Megafauna的表达潜力。我们通过对Megafauna创造的表演作品的专家审查来评估我们的现场生产方法的机会。
{"title":"Preserving hand-drawn qualities in audiovisual performance through sketch-based interaction","authors":"Samuelle Bourgault,&nbsp;Jennifer Jacobs","doi":"10.1016/j.cola.2022.101186","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101186","url":null,"abstract":"<div><p>Live coding – the real-time procedural creation of audiovisual works – suggests opportunities to extend hand-drawn animation; however, existing live coding systems are incompatible with manual animation workflows. Manual input is not a primary datatype in existing live coding languages and live coding tools require using symbolic programming environments. We theorize that by applying direct manipulation to the domain of live coding, we can enable animators to create expressive mappings between hand-drawn animations and audio effects in realtime. We present Megafauna, a sketch-based system for audiovisual performance, informed by interviews with professional animators. Megafauna supports the integrated generation and control of hand-drawn animation and audio sequences by enabling animators to directly sketch mapping functions between animation frames and sound generators. We demonstrate the expressive potential of Megafauna by reproducing animated compositions from procedural and manual domains. We evaluate the opportunities of our approach for live production through an expert review of a performance piece created with Megafauna.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101186"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49875704","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 domain-specific language for structure manipulation in constraint system-based GUIs 用于在基于约束系统的gui中进行结构操作的领域特定语言
IF 2.2 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-01-01 DOI: 10.1016/j.cola.2022.101175
Knut Anders Stokke , Mikhail Barash , Jaakko Järvi

A common frustration with programming Graphical User Interfaces (GUIs) is that features for manipulating structures, such as lists and trees, are limited, inconsistent, buggy, or even missing. Implementing complete and convenient sets of operations for inserting, removing, and reordering elements in such structures can be tedious and difficult: a structure that appears as one collection to the user can be implemented as several different data structures and a web of dependencies between them. Structural modifications require changes both to the GUI’s model and view, and possibly extraneous bookkeeping operations, such as adding and removing event handlers.

This paper introduces a DSL that helps programmers to implement a complete set of operations to structures displayed in GUIs. The programmer specifies structures and relations between elements in the structure. Concretely, the latter are definitions of methods for establishing and unestablishing relations. Operations that manipulate structures are specified as rules that control which relations should hold before and after a rule is applied. From these specifications, our tools generate an easy-to-use API for structure manipulation. We target constraint system-based Web GUIs: the DSL generates JavaScript and relies on dataflow constraint systems for expressing dependencies between elements in GUI structures. Our DSL gives tangible representations with well-defined operations for ad-hoc and incidental GUI structures.

图形用户界面(gui)编程的一个常见问题是,用于操作结构(如列表和树)的特性有限、不一致、有bug,甚至缺失。在这样的结构中实现完整而方便的插入、删除和重新排序元素的操作集可能是乏味而困难的:对用户来说,一个结构作为一个集合可以实现为几个不同的数据结构和它们之间的依赖关系网络。结构修改既需要更改GUI的模型和视图,也可能需要更改无关的簿记操作,例如添加和删除事件处理程序。本文介绍了一种DSL,它可以帮助程序员对gui中显示的结构实现一套完整的操作。程序员指定结构和结构中元素之间的关系。具体来说,后者是建立关系和解除关系的方法的定义。操纵结构的操作被指定为规则,这些规则控制在应用规则之前和之后应该保留哪些关系。根据这些规范,我们的工具为结构操作生成易于使用的API。我们的目标是基于约束系统的Web GUI: DSL生成JavaScript并依赖于数据流约束系统来表达GUI结构中元素之间的依赖关系。我们的DSL为特别的和附带的GUI结构提供了具有良好定义的操作的有形表示。
{"title":"A domain-specific language for structure manipulation in constraint system-based GUIs","authors":"Knut Anders Stokke ,&nbsp;Mikhail Barash ,&nbsp;Jaakko Järvi","doi":"10.1016/j.cola.2022.101175","DOIUrl":"https://doi.org/10.1016/j.cola.2022.101175","url":null,"abstract":"<div><p>A common frustration with programming Graphical User Interfaces (GUIs) is that features for manipulating structures, such as lists and trees, are limited, inconsistent, buggy, or even missing. Implementing complete and convenient sets of operations for inserting, removing, and reordering elements in such structures can be tedious and difficult: a structure that appears as one collection to the user can be implemented as several different data structures and a web of dependencies between them. Structural modifications require changes both to the GUI’s model and view, and possibly extraneous bookkeeping operations, such as adding and removing event handlers.</p><p>This paper introduces a DSL that helps programmers to implement a complete set of operations to structures displayed in GUIs. The programmer specifies structures and relations between elements in the structure. Concretely, the latter are definitions of methods for establishing and unestablishing relations. Operations that manipulate structures are specified as rules that control which relations should hold before and after a rule is applied. From these specifications, our tools generate an easy-to-use API for structure manipulation. We target constraint system-based Web GUIs: the DSL generates JavaScript and relies on dataflow constraint systems for expressing dependencies between elements in GUI structures. Our DSL gives tangible representations with well-defined operations for ad-hoc and incidental GUI structures.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"74 ","pages":"Article 101175"},"PeriodicalIF":2.2,"publicationDate":"2023-01-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49875707","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
期刊
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