-
An empirical approach to understand the role of emotions in code comprehension J. Comput. Lang. (IF 2.2) Pub Date : 2024-03-02 Divjot Singh, Ashutosh Mishra, Ashutosh Aggarwal
Programming and cognitive skills are two pivotal abilities of programmers to maintain software products. First, this study included a systematic literature review on code comprehension, emotions, cognitive psychology, and belief-desire-intention domains to analyse various code comprehension monitoring techniques, performance metrics, and computational methodologies. Second, a case study is conducted
-
Developers’ information seeking in Question & Answer websites through a gender lens J. Comput. Lang. (IF 2.2) Pub Date : 2024-02-03 Abim Sedhain, Vaishvi Diwanji, Helen Solomon, Shahnewaz Leon, Sandeep Kaur Kuttal
Question & Answer websites for developers, such as Stack Overflow, contain enormous programming knowledge which can be redundant and cost substantial time and cognitive effort. We investigated the information seeking behavior of developers on Stack Overflow using Information Foraging Theory. To understand the influence of gender on foraging patterns, we conducted a gender-balanced think-aloud lab study
-
τJUpdate: An update language for time-varying JSON data J. Comput. Lang. (IF 2.2) Pub Date : 2024-01-11 Zouhaier Brahmia, Fabio Grandi, Safa Brahmia, Rafik Bouaziz
Time-varying JSON data are being used and exchanged in various today’s application frameworks like IoT platforms, Web services, cloud computing, online social networks, and mobile systems. However, in the state-of-the-art of JSON data management, there is neither a consensual nor a standard language for updating (i.e., inserting, modifying, and deleting) temporal JSON data, like the TSQL2 or SQL:2016
-
AI-based clustering of similar issues in GitHub’s repositories J. Comput. Lang. (IF 2.2) Pub Date : 2024-01-04 Hamzeh Eyal Salman
Issues are highly prevalent on GitHub due to the increasing scale of its software repositories. These issues are submitted to the issue tracking system for several reasons: reporting a bug, asking a question, or other maintenance activities. The attractive repositories on Github receive a large number of issues daily. Assigning similar issues individually to different developers for validating and
-
LEV4REC: A feature-based approach to engineering RSSEs J. Comput. Lang. (IF 2.2) Pub Date : 2023-12-18 Claudio Di Sipio, Juri Di Rocco, Davide Di Ruscio, Phuong T. Nguyen
To facilitate the development of recommender systems for software engineering (RSSEs), this paper introduces LEV4REC, a model-driven approach supporting all RSSE development stages, from design to deployment. It enables parameter fine-tuning, enhancing the developer and user experience by using a dedicated feature model for early configuration. We evaluated LEV4REC by applying it to two existing RSSEs
-
A test amplification bot for Pharo/Smalltalk J. Comput. Lang. (IF 2.2) Pub Date : 2023-12-11 Mehrdad Abdi, Henrique Rocha, Alexandre Bergel, Serge Demeyer
Test amplification exploits the knowledge embedded in an existing test suite to strengthen it. A typical test amplification technique transforms the initial tests into additional test methods that increase the mutation coverage. Although past research demonstrated the benefits, additional steps need to be taken to incorporate test amplifiers in the everyday workflow of developers. This paper describes
-
Improved software fault prediction using new code metrics and machine learning algorithms J. Comput. Lang. (IF 2.2) Pub Date : 2023-12-02 Manpreet Singh, Jitender Kumar Chhabra
Many code metrics exist for bug prediction. However, these metrics are based on the trivial count of code properties and are not sufficient. This research article proposes three new code metrics based on class complexity, coupling, and cohesion to fill the gap. The Promise repository metrics suite's complexity, coupling, and cohesion metrics are replaced by the proposed metrics, and a new metric suite
-
CHESSIoT: A model-driven approach for engineering multi-layered IoT systems J. Comput. Lang. (IF 2.2) Pub Date : 2023-11-30 Felicien Ihirwe, Davide Di Ruscio, Simone Gianfranceschi, Alfonso Pierantonio
Context: The current technology revolution, which places the highest value on people’s welfare, is frequently seen as being mainly supported by Internet of Things (IoT) technologies. IoT is regarded as a powerful multi-layered network of systems that integrates several heterogeneous, independently networked (sub-)systems working together to achieve a shared purpose. Objective: In this article, we present
-
Solvi: A visual constraint modeling tool J. Comput. Lang. (IF 2.2) Pub Date : 2023-11-23 Xu Zhu, Miguel A. Nacenta, Özgür Akgün, Daniel Zenkovitch
-
Supporting model-based safety analysis for safety-critical IoT systems J. Comput. Lang. (IF 2.2) Pub Date : 2023-11-22 Felicien Ihirwe, Davide Di Ruscio, Katia Di Blasio, Simone Gianfranceschi, Alfonso Pierantonio
Dependability is regarded as the ability of the system to provide services that can be trusted within a specific period. As the complexity and heterogeneity of Internet of Things (IoT) systems rise, so does the possibility of errors and failure. Early safety analysis not only reduces the cost of late failure but also makes it easier to trace and determine the source of the failure beforehand in case
-
Fuzzing-based grammar learning from a minimal set of seed inputs J. Comput. Lang. (IF 2.2) Pub Date : 2023-11-19 Hannes Sochor, Flavio Ferrarotti, Daniela Kaufmann
To be effective, a fuzzer needs to generate inputs that are well formed, so that they are not outright rejected by the Software Under Test (SUT) and can thus detect meaningful bugs. Grammar based fuzzers solve this problem, but they obviously require a grammar of the input language accepted by the SUT. Many times such grammar is unknown. Therefore, different black- and white-box algorithms have been
-
Requirements development for IoT systems with UCM4IoT J. Comput. Lang. (IF 2.2) Pub Date : 2023-11-23 Paul Boutot, Mirza Rehenuma Tabassum, Abdul Abedin, Sadaf Mustafiz
The engineering of IoT (Internet of Things) systems brings about various challenges due to the inherent complexities associated with such adaptive systems. Addressing the adaptive nature of IoT systems in the early stages of the development life cycle is essential for developing a complete and precise system specification. In this paper, we propose a use case-based modelling language, UCM4IoT, to support
-
-
A transformation methodology for Capella to Event-B models with DSL verification J. Comput. Lang. (IF 2.2) Pub Date : 2023-10-11 Khaoula Bouba, Abderrahim Ait Wakrime, Yassine Ouhammou, Redouane Benaini
Capella/Arcadia helps engineers design complex system models, but as models grew in complexity, simulation and verification became necessary. An automatic model-to-model transformation approach was proposed to interpret the dynamic behavior of the semi-formal Capella models. Custom domain-specific languages were introduced to assess the syntax of these models. The approach was applied to the Adaptive
-
Correctness of IoT-based systems: From a DSL to a mechanised analysis J. Comput. Lang. (IF 2.2) Pub Date : 2023-09-16 Christian Attiogbé, Jérôme Rocheteau
Systems based on the Internet of Things are being widely used in industrial areas such as smart manufacturing, in smart health monitoring, in entertainment and in home automation application. They impact more and more every day life. Ensuring their correct construction, their well functioning and their reliability is an important issue for some of these systems which can be critical in case of dysfunction
-
Easing the tuning of drone autopilots through a model-based framework J. Comput. Lang. (IF 2.2) Pub Date : 2023-09-15 Soulimane Kamni, Antoine Bertout, Emmanuel Grolleau, Gautier Hattenberger, Yassine Ouhammou
Off-the-shelf open-source autopilots are customized by practitioners to satisfy their customer’s specific needs. When custom functions require low delays and/or fast frequency, in the order of magnitude of hundreds or a couple of thousand hertz, they may impact the behavior of the underlying stabilization loop. This paper proposes a tool chain able to extract a model using a Domain-Specific Language
-
A comparison of three solver-aided programming languages: αRby, ProB, and Rosette J. Comput. Lang. (IF 2.2) Pub Date : 2023-09-07 Richard St-Denis
The premise of this paper asserts that the source code of software programs must preserve the underlying domain knowledge in the form of declarative domain models and fully exploit the capacity of satisfiability solvers, or constraint solvers in general, to get solutions of domain-specific problem instances so as to interleave data processing with such problem-solving techniques. This way of contemplating
-
Programming microcontrollers through high-level abstractions: The OMicroB project J. Comput. Lang. (IF 2.2) Pub Date : 2023-08-18 Steven Varoumas, Basile Pesin, Benoît Vaugon, Emmanuel Chailloux
In this paper, we present an approach for programming microcontrollers that provides more expressivity and safety than the low-level language approach traditionally used to program such devices. To this end, we provide various abstraction layers (abstraction of the microcontroller, of the electronic components of the circuit, and of concurrency) which, while being adapted to the scarce resources of
-
Introduction to the special issue on foundations and practice of visual modeling (FPVM) J. Comput. Lang. (IF 2.2) Pub Date : 2023-08-09 Amleto Di Salle, Ludovico Iovino, Alfonso Pierantonio, Juha-Pekka Tolvanen
Abstract not available
-
Towards smart contract distributed directory based on the uniform description language J. Comput. Lang. (IF 2.2) Pub Date : 2023-07-29 Wafa Ben Slama Souei, Chiraz El Hog, Raoudha Ben Djemaa, Layth Sliman, Ikram Amous Ben Amor
A Smart Contract (SC) is a piece of code executed on the blockchain to automatically trigger transactions upon the occurrence of predefined events. Due to the intrinsic features regarding traceability and data immutability, many companies started using blockchain Smart Contracts to perform collaborative processes. Despite their promising features, there is a lack of Smart Contacts management platforms
-
Composition operators for modeling languages: A literature review J. Comput. Lang. (IF 2.2) Pub Date : 2023-07-28 Jérôme Pfeiffer, Bernhard Rumpe, David Schmalzing, Andreas Wortmann
Efficiently engineering modeling languages demands their reuse through composition. Research in language engineering has produced many different operators to reuse and compose languages and language parts. Unfortunately, these operate on different dimensions of languages, produce diverse results, and are distributed across various technological spaces and publications, which hampers understanding the
-
Model consistency as a heuristic for eventual correctness J. Comput. Lang. (IF 2.2) Pub Date : 2023-07-06 Istvan David, Hans Vangheluwe, Eugene Syriani
Inconsistencies between stakeholders’ views pose a severe challenge in the engineering of complex systems. The past decades have seen a vast number of sophisticated inconsistency management techniques being developed. These techniques build on the common idea of “managing consistency instead of removing inconsistency”, as put forward by Finkelstein. While it is clear what and how to do about inconsistencies
-
Minimum modulus visualization of algebraic fractals J. Comput. Lang. (IF 2.2) Pub Date : 2023-06-20 Severino F. Galán
Fractals are a family of shapes formed by irregular and fragmented patterns. They can be classified into two main groups: geometric and algebraic. Whereas the former are characterized by a fixed geometric replacement rule, the latter are defined by a recurrence function in the complex plane. The classical method for visualizing algebraic fractals considers the sequence of complex numbers originated
-
A new versioning approach for collaboration in blended modeling J. Comput. Lang. (IF 2.2) Pub Date : 2023-06-17 Joeri Exelmans, Jakob Pietron, Alexander Raschke, Hans Vangheluwe, Matthias Tichy
The complexity of modern software-intensive systems and the need for flexibility in their development process forces developers to collaborate using the most appropriate language(s) for each given task, view and component. Blended modeling is the ability to edit a model through multiple concrete syntaxes simultaneously. To support collaborative blended modeling, we present a variation of operation-based
-
E-APK: Energy pattern detection in decompiled android applications J. Comput. Lang. (IF 2.2) Pub Date : 2023-06-11 Nelson Gregório, João Bispo, João Paulo Fernandes, Sérgio Queiroz de Medeiros
Energy efficiency is a non-functional requirement that developers must consider, particularly when building software for battery-operated devices like mobile ones: a long-lasting battery is an essential requirement for an enjoyable user experience. In previous studies, it has been shown that many mobile applications include inefficiencies that cause battery to be drained faster than necessary. Some
-
Dandelion: A scalable, cloud-based graphical language workbench for industrial low-code development J. Comput. Lang. (IF 2.2) Pub Date : 2023-05-22 Francisco Martínez-Lasaca, Pablo Díez, Esther Guerra, Juan de Lara
There is an increasing demand nowadays for low-code development platforms (LCDPs). As they rely heavily on graphical languages rather than writing code, these platforms enable citizen developers to participate in software development. However, creating new LCDPs is very costly, since it requires building support for graphical modelling and its integration with services like model validation, recommendation
-
A domain-specific language for describing machine learning datasets J. Comput. Lang. (IF 2.2) Pub Date : 2023-05-02 Joan Giner-Miguelez, Abel Gómez, Jordi Cabot
Datasets are essential for training and evaluating machine learning (ML) models. However, they are also at the root of many undesirable model behaviors, such as biased predictions. To address this issue, the machine learning community is proposing a data-centric cultural shift, where data issues are given the attention they deserve and more standard practices for gathering and describing datasets are
-
A methodology for refactoring ORM-based monolithic web applications into microservices J. Comput. Lang. (IF 2.2) Pub Date : 2023-04-22 Francisco Freitas, André Ferreira, Jácome Cunha
In the last few years we have been seeing a drastic change in the way software is developed. Large-scale software projects are being assembled by a flexible composition of many (small) components possibly written in different programming languages and deployed anywhere in the cloud — the so-called microservices-based applications. The dramatic growth in popularity of microservices-based applications
-
Machine learning with word embedding for detecting web-services anti-patterns J. Comput. Lang. (IF 2.2) Pub Date : 2023-04-20 Lov Kumar, Sahithi Tummalapalli, Sonika Chandrakant Rathi, Lalita Bhanu Murthy, Aneesh Krishna, Sanjay Misra
Software design Anti-pattern is the common feedback to a recurring problem that is ineffective and has a high risk of failure. Early prediction of these Anti-patterns helps reduce the design process’s efforts, resources, and costs. In earlier research, static code or Web Service Description Language (WSDL) metrics were used to develop anti-pattern prediction models. These source code metrics are calculated
-
Handling complex representations in visual modeling tools for MDSD/DSM by means of code generator languages J. Comput. Lang. (IF 2.2) Pub Date : 2023-04-13 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
-
Quantitative program sketching using decision tree-based lifted analysis J. Comput. Lang. (IF 2.2) Pub Date : 2023-04-06 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;
-
Lexical-based partial redundancy elimination: An optimal algorithm with improved efficiency J. Comput. Lang. (IF 2.2) Pub Date : 2023-03-29 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
-
An approach to build JSON-based Domain Specific Languages solutions for web applications J. Comput. Lang. (IF 2.2) Pub Date : 2023-03-25 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
-
A systematic literature review on automatic website generation J. Comput. Lang. (IF 2.2) Pub Date : 2023-03-08 Thisaranie Kaluarachchi, Manjusri Wickramasinghe
Since machine learning became a prominent feature in the modern-day computing landscape, the urge to automate processes has increased. One such process of particular interest has been the automatic generation of websites based on user intention. Though the requirement of such automatic generation is a modern-day need, the quality of the automatic generation still provides a unique set of challenges
-
React example viability for efficient API learning (REVEAL): A tool to help programmers utilize incompatible code examples in React.js J. Comput. Lang. (IF 2.2) Pub Date : 2023-03-05 John Allen, Caitlin Kelleher
Programmers typically learn APIs on-the-fly through web examples. Incompatibilities and omissions in copied example code can create barriers for these learners. We present an analysis of example usage barriers programmers faced in a previous study of React.js novices. We show that a small set of errors prevented programmers from using most found code examples. In response, we built REVEAL to detect
-
API comparison knowledge extraction via prompt-tuned language model J. Comput. Lang. (IF 2.2) Pub Date : 2023-02-17 Yangrui Yang, Yaping Zhu, Sisi Chen, Pengpeng Jian
Application Programming Interfaces (APIs) are frequent in software engineering domain texts, such as API references and Stack Overflow. These APIs and the comparison knowledge between them are not only important for solving programming issues (e.g., question answering), but they are also organized into structured knowledge to support many software engineering tasks (e.g., API misuse detection). As
-
A visual notation for succinct program traces J. Comput. Lang. (IF 2.2) Pub Date : 2023-02-09 Divya Bajaj, Martin Erwig, Danila Fedorin
Program traces are a widely used representation for explaining the dynamic behavior of programs. They help to make sense of computations and also support the location and elimination of bugs. Unfortunately, program traces can grow quite big very quickly, even for small programs, which compromises their usefulness. In this paper we present a visual notation for program traces that supports their concise
-
Aesthetics and comprehension of curved 3D graphs in Virtual Reality J. Comput. Lang. (IF 2.2) Pub Date : 2023-02-02 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
-
Introduction to the Special issue on Methods, Tools and Languages for Model-driven Engineering and Low-code Development J. Comput. Lang. (IF 2.2) Pub Date : 2023-01-25 Geylani Kardas, Federico Ciccozzi, Ludovico Iovino
Abstract not available
-
-
A sensemaking analysis of API learning using React J. Comput. Lang. (IF 2.2) Pub Date : 2022-12-29 Caitlin Kelleher, Michelle Brachman
Current programming practices rely heavily on the use of APIs (Application Programming Interfaces) and frameworks. However, APIs can be challenging to learn and use. Existing research focuses on specific barriers programmers encounter while learning APIs, providing a fragmented understanding of the process. In this paper, we analyze the holistic process of twelve programmers learning the React JS API
-
End-user development for interactive web-based virtual reality scenes J. Comput. Lang. (IF 2.2) Pub Date : 2022-12-21 Enes Yigitbas, Jonas Klauke, Sebastian Gottschalk, Gregor Engels
-
Preserving hand-drawn qualities in audiovisual performance through sketch-based interaction J. Comput. Lang. (IF 2.2) Pub Date : 2022-12-20 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
-
A graph-based model for build optimization sequences: A study of optimization sequence length impacts on code size and speedup J. Comput. Lang. (IF 2.2) Pub Date : 2022-12-16 Nilton Luiz Queiroz, 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
-
General parsing with regular expression matching J. Comput. Lang. (IF 2.2) Pub Date : 2022-11-24 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
-
What about the usability in low-code platforms? A systematic literature review J. Comput. Lang. (IF 2.2) Pub Date : 2022-11-24 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
-
Students’ difficulties with inserting and deleting nodes in a singly linked list in the C programming language J. Comput. Lang. (IF 2.2) Pub Date : 2022-11-23 Eman Almadhoun, Jennifer Parham-Mocello
-
Method name recommendation based on source code metrics J. Comput. Lang. (IF 2.2) Pub Date : 2022-11-18 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
-
A domain-specific language for structure manipulation in constraint system-based GUIs J. Comput. Lang. (IF 2.2) Pub Date : 2022-11-14 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
-
MoTrans-BDI: Leveraging the Beliefs-Desires-Intentions agent architecture for collaborative model transformation by example J. Comput. Lang. (IF 2.2) Pub Date : 2022-11-08 Ahmed Siabdelhadi, Abdelhafid Chadli, Hadda Cherroun, Abdelkader Ouared, Houari Sahraoui
Due to the growing interest in model-driven system development techniques, the efficient design of automated model transformations between heterogeneous models has become a major challenge in software development. While a number of specialized languages have been proposed, aiming at specifying model transformations, there is currently no matured foundation for specifying transformations between such
-
COMORP: Rapid prototyping for mathematical database cost models development J. Comput. Lang. (IF 2.2) Pub Date : 2022-10-29 Abdelkader Ouared, Moussa Amrani, Pierre-Yves Schobbens
The database technology evolution trends had pushed the researchers to redesign and adapt the past mathematical database cost models with the consideration of additional aspects due to the emergence of this evolution. As a result, many scientists today propose database cost models by rethinking query processing and optimization with every change in hardware, workload, and applications. This requires
-
Context-sensitive parsing for programming languages J. Comput. Lang. (IF 2.2) Pub Date : 2022-10-19 Boštjan Slivnik
Parsing programming languages using context-sensitive rather than context-free grammars is being considered here because a stronger formalism might be beneficial for dealing with increasingly complex programming languages and their syntax, or is more appropriate in some applications. A new deterministic non-backtracking algorithm for parsing deterministic context-sensitive languages is described. It
-
Program representations for predictive compilation: State of affairs in the early 20’s J. Comput. Lang. (IF 2.2) Pub Date : 2022-10-13 Anderson Faustino da Silva, Edson Borin, Fernando Magno Quintão Pereira, Nilton Luiz Queiroz, Otávio Oliveira Napoli
In the last five years, predictive compilation has advanced with long strides. Contributions in the field include new program embeddings, new learning architectures, and datasets with millions of programs. This paper evaluates 25 state-of-the-art program embeddings, three of them new, plus two learning models from previous work. We have trained this apparatus with three large datasets, and have applied
-
Surveying communities of users of MATLAB and clone languages J. Comput. Lang. (IF 2.2) Pub Date : 2022-10-12 Eduardo Reis, Catarina Gralha, Miguel P. Monteiro
Context: MATLAB is a programming language vastly used in scientific and engineering domains by engineers, scientists, and researchers. Still, MATLAB seems to be perceived as being used mainly by non-professional programmers, not taking full advantage of MATLAB’s features (e.g., OOP-support). The current state of the art does not seem to verify these assumptions. Objectives: Our goal was to fill the
-
Combining stream with data parallelism abstractions for multi-cores J. Comput. Lang. (IF 2.2) Pub Date : 2022-10-03 Júnior Löff, Renato B. Hoffmann, Dalvan Griebler, Luiz G. Fernandes
Stream processing applications have seen an increasing demand with the raised availability of sensors, IoT devices, and user data. Modern systems can generate millions of data items per day that require to be processed timely. To deal with this demand, application programmers must consider parallelism to exploit the maximum performance of the underlying hardware resources. In this work, we introduce
-
PeachPie: Mature PHP to CLI compiler J. Comput. Lang. (IF 2.2) Pub Date : 2022-09-21 Robert Husák, Jakub Míšek, Filip Zavoral, Jan Kofroň
PeachPie is a compiler of PHP code into Common Language Infrastructure (CLI) assemblies, enabling direct interoperability between PHP and .NET projects. This work describes the overall PeachPie architecture and the implementation of its components, highlighting and explaining the differences from its predecessor Phalanger. PeachPie can compile both legacy proprietary PHP applications and modern PHP
-
Design, implementation and evaluation of the Hedy programming language J. Comput. Lang. (IF 2.2) Pub Date : 2022-09-20 Marleen Gilsing, Jesús Pelay, Felienne Hermans
Hedy is a programming language that implements the gradual programming approach in which the goal is to lower the syntax barrier by starting with a very simple language, and gradually adding both concepts and refining syntax. This paper describes the design and implementation of Hedy, as well as a first user study involving 39 children between the ages of 11 and age 14 who followed online lessons for
-
Block-based abstractions and expansive services to make advanced computing concepts accessible to novices J. Comput. Lang. (IF 2.2) Pub Date : 2022-09-20 Corey Brady, Brian Broll, Gordon Stein, Devin Jean, Shuchi Grover, Veronica Cateté, Tiffany Barnes, Ákos Lédeczi
Many block-based programming environments have proven to be effective at engaging novices in learning programming. However, most offer only restricted access to the outside world, limiting learners to commands and computing resources built in to the environment. Some allow learners to drag and drop files, connect to sensors and robots locally or issue HTTP requests. But in a world where most of the
-
Taming stateful computations in Rust with typestates J. Comput. Lang. (IF 2.2) Pub Date : 2022-09-17 José Duarte, António Ravara
As our lives become increasingly more reliant on software, the impact of its failures grows as well; these failures have diverse causes and their impact ranges from negligible to life-threatening; thus, it is our duty as developers to minimize their occurrence, just as other fields do. To that end, we build abstractions, move complexity from component to component, and much more, just to stop the end-user
-
Where-provenance for bidirectional editing in spreadsheets J. Comput. Lang. (IF 2.2) Pub Date : 2022-09-17 Jack Williams, Andrew D. Gordon
We explore the idea of adding bidirectionality to spreadsheet formulas, so that editing the output can directly affect the input. We introduce the portal: a value paired with its where-provenance, that is, one or more links to its origin. When a portal is the result of a formula in a cell, that cell inherits the capability to edit locations described by the provenance. The simplicity of portals makes