-
Adaptive selection of classifiers for bug prediction: A large-scale empirical analysis of its performances and a benchmark study Sci. Comput. Program. (IF 0.775) Pub Date : 2021-01-13 Fabiano Pecorelli; Dario Di Nucci
Bug prediction aims at locating defective source code components relying on machine learning models. Although some previous work showed that selecting the machine-learning classifier is crucial, the results are contrasting. Therefore, several ensemble techniques, i.e., approaches able to mix the output of different classifiers, have been proposed. In this paper, we present a benchmark study in which
-
Compatibility checking for asynchronously communicating software Sci. Comput. Program. (IF 0.775) Pub Date : 2021-01-14 Meriem Ouederni
Compatibility is a crucial problem that is encountered while constructing new software by reusing and composing existing components. A set of software components is called compatible if their composition preserves certain properties, such as deadlock freedom. However, checking compatibility for systems communicating asynchronously is an undecidable problem, and asynchronous communication is a common
-
RML: Theory and practice of a domain specific language for runtime verification Sci. Comput. Program. (IF 0.775) Pub Date : 2021-01-12 Davide Ancona; Luca Franceschini; Angelo Ferrando; Viviana Mascardi
Runtime verification (RV) is an approach to verification consisting in dynamically checking that the event traces generated by single runs of a system under scrutiny (SUS) are compliant with the formal specification of its expected correct behavior. RML (Runtime Monitoring Language) is a simple but powerful Domain Specific Language (DSL) for RV which is able to express non context-free properties.
-
Ranking programming languages by energy efficiency Sci. Comput. Program. (IF 0.775) Pub Date : 2021-01-11 Rui Pereira; Marco Couto; Francisco Ribeiro; Rui Rua; Jácome Cunha; João Paulo Fernandes; João Saraiva
This paper compares a large set of programming languages regarding their efficiency, including from an energetic point-of-view. Indeed, we seek to establish and analyze different rankings for programming languages based on their energy efficiency. The goal of being able to rank programming languages based on their energy efficiency is both recent, and certainly deserves further studies. We have taken
-
Automated model extraction: From non-deterministic C code to active objects Sci. Comput. Program. (IF 0.775) Pub Date : 2021-01-06 Nathan Wasser; Asmae Heydari Tabar; Reiner Hähnle
The C programming language is well-known to have a large amount of underspecified behavior that often results in non-determinism even of sequential programs. In many application areas, not necessarily safety-critical ones, this is highly undesirable. A number of approaches and tools that statically analyze such behavior have been suggested, but they suffer from a high number of false positives and
-
How to benefit from newbies' domain ignorance in software development projects Sci. Comput. Program. (IF 0.775) Pub Date : 2020-12-10 Gaurav Mehrotra; Daniel M. Berry
A big problem in a computer-based systems (CBSs) development organization is how to improve the immigration of a newbie (a new hire to the organization or a mover within the organization) into a CBS development project of the organization that is already in progress. The newbie, who is ignorant of the domain of the CBS, must be brought to the same awareness of the domain that the project veterans have
-
Predicting software effort from use case points: A systematic review Sci. Comput. Program. (IF 0.775) Pub Date : 2021-01-06 Mohammad Azzeh; Ali Bou Nassif; Imtinan Basem Attili
Context: Predicting software project effort from Use Case Points (UCP) method is increasingly used among researchers and practitioners. However, unlike other effort estimation domains, this area of interest has not been systematically reviewed. Aims: There is a need for a systemic literature review to provide directions and supports for this research area of effort estimation. Specifically, the objective
-
Are requirements elicitation sessions influenced by participants' gender? An empirical experiment Sci. Comput. Program. (IF 0.775) Pub Date : 2020-12-17 Eduardo Díaz; José Ignacio Panach; Silvia Rueda; Marcela Ruiz; Oscar Pator
Context Requirements elicitation is a crucial phase in the software development life cycle. During requirements elicitation sessions, requirements engineers capture software requirements, and motivate stakeholders to express needs and expected software functionalities. In this context, there is a lack of extensive empirical research reporting the extent to which elicitation sessions can be influenced
-
Predicting Issue Types on GitHub Sci. Comput. Program. (IF 0.775) Pub Date : 2020-12-30 Rafael Kallis; Andrea Di Sorbo; Gerardo Canfora; Sebastiano Panichella
Software maintenance and evolution involves critical activities for the success of software projects. To support such activities and keep code up-to-date and error-free, software communities make use of issue trackers, i.e., tools for signaling, handling, and addressing the issues occurring in software systems. However, in popular projects, tens or hundreds of issue reports are daily submitted. In
-
Modelling digital avatars: A tuple space approach Sci. Comput. Program. (IF 0.775) Pub Date : 2020-12-03 Alejandro Pérez-Vereda; Carlos Canal; Ernesto Pimentel
The development of the Internet of Things (IoT) came with the manufacturing of a huge amount of smart things equipped with sensors for making them aware of their environment, and with network connection for allowing remote interaction with them. However, most smart things still lack enough autonomy and context-awareness, hindering them from being people-friendly and actually useful for their users'
-
A clock-based dynamic logic for the verification of CCSL specifications in synchronous systems Sci. Comput. Program. (IF 0.775) Pub Date : 2020-12-08 Yuanrui Zhang; Hengyang Wu; Yixiang Chen; Frédéric Mallet
The Clock Constraint Specification Language (CCSL) is a clock-based specification language for real-time embedded systems. With logical clocks defined as first-class citizens, CCSL provides a natural way for describing clock constraints in synchronous systems — a classical model of concurrency for real-time embedded systems. In this paper, we propose a clock-based dynamic logic called CCSL Dynamic
-
Toward safe and efficient reconfiguration with Concerto Sci. Comput. Program. (IF 0.775) Pub Date : 2020-12-03 Maverick Chardet; Hélène Coullon; Simon Robillard
For large-scale distributed systems that need to adapt to a changing environment, conducting a reconfiguration is a challenging task. In particular, efficient reconfigurations require the coordination of multiple tasks with complex dependencies. We present Concerto, a model used to manage the lifecycle of software components and coordinate their reconfiguration operations. Concerto promotes efficiency
-
Aggregate centrality measures for IoT-based coordination Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-27 Giorgio Audrito; Danilo Pianini; Ferruccio Damiani; Mirko Viroli
Collecting statistics from graph-based data is an increasingly studied topic in the data mining community. We argue that they can have great value in the coordination of dynamic IoT systems as well, especially to support complex coordination strategies related to distributed situation recognition. Thanks to a mapping to the field calculus, a distribution coordination model proposed for collective adaptive
-
Hubs for VirtuosoNext: Online verification of real-time coordinators Sci. Comput. Program. (IF 0.775) Pub Date : 2020-10-30 Guillermina Cledou; José Proença; Bernhard H.C. Sputh; Eric Verhulst
VirtuosoNextTM is a distributed real-time operating system (RTOS) featuring a generic programming model dubbed Interacting Entities. This paper focuses on these interactions, implemented as so-called Hubs. Hubs act as synchronisation and communication mechanisms between the application tasks and implement the services provided by the kernel. While the kernel provides the most basic services, each carefully
-
NewWave: Workflow engine Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-23 Sebastijan Kaplar; Miroslav Zarić; Stéphane Ducasse
An ever-increasing demand for information systems in the last few decades brought many new opportunities but also presented new challenges for companies in the landscape of doing business globally. In these terms, software systems need to adapt almost instantaneously to new requirements, opportunities, and customer expectations. Process-aware systems have become integral part in business information
-
Compositional workflow modeling with priority constraints Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-11 Behnaz Changizi; Natallia Kokash; Farhad Arbab; Leonid Makhnist
Priority is an important concept in Business Process Management (BPM), useful in the context of workflow patterns such as, e.g., cancelable and compensable tasks within business transactions. Unfortunately, the presence of priority in workflows makes them difficult to be analyzed formally by automated validation and verification tools. In the past, we demonstrated that the Reo coordination language
-
QaSD: A Quality-aware Strategic Dashboard for supporting decision makers in Agile Software Development Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-16 L. López; M. Manzano; C. Gómez; M. Oriol; C. Farré; X. Franch; S. Martínez-Fernández; A.M. Vollmer
Software and data analytics solutions support improving development processes and the quality of the software produced in Agile Software Development (ASD). However, decision makers in software teams (e.g., product owner, project manager) are demanding powerful tools providing evidence data that support their strategic decision-making processes. In this paper, we present and provide access to QaSD,
-
Quantifying the similarity of non-bisimilar labelled transition systems Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-16 Gwen Salaün
Equivalence checking is an established technique for automatically verifying that two behavioural models (Labelled Transition Systems, LTSs) are equivalent from the point of view of an external observer. When these models are not equivalent, the checker returns a Boolean result with a counterexample, which is a sequence of actions leading to a state where the equivalence relation is not satisfied.
-
: A tool chain for choreographic design Sci. Comput. Program. (IF 0.775) Pub Date : 2020-09-24 Roberto Guanciale; Emilio Tuosto
We present a tool chain for model-driven development of asynchronous message-passing applications. The key features of the tool allow designers to identify misbehaviour leading to unsound communications, to provide counterexamples, and to suggest possible corrections as well as to project global specifications to local models in order to generate executable implementations.
-
Anemone: A workbench for the Multi-Bach coordination language Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-12 Jean-Marie Jacquet; Manel Barkallah
Although many research efforts have been spent on the theory and implementation of data-based coordination languages, not much effort has been devoted to constructing programming environments to analyze and reason over programs written in these languages. This paper proposes a workbench for describing concurrent systems using a Linda-like language, for animating them and for reasoning over them using
-
Provably correct implementation of the AbC calculus Sci. Comput. Program. (IF 0.775) Pub Date : 2020-11-06 Rocco De Nicola; Tan Duong; Michele Loreti
Building open, distributed systems while guaranteeing a specific behaviour is difficult because of the dynamicity of the operating environments and the complexity of the interactions of their components. The AbC calculus provides a novel communication mechanism to select interacting partners based on their runtime capabilities, making it naturally to model complex interactions and adaptive behaviour
-
API recommendation for the development of Android App features based on the knowledge mined from App stores Sci. Comput. Program. (IF 0.775) Pub Date : 2020-10-15 Shanquan Gao; Lei Liu; Yuzhou Liu; Huaxiao Liu; Yihui Wang
To improve the efficiency, developers tend to use APIs to avoid reinventing wheels in the development of Apps. However, there are thousands of APIs for various purposes, so it is difficult for developers to identify suitable APIs according to the functionalities to be realized. App stores manage millions of products, which embody the experience and wisdom of developers, and they provide valuable data
-
A clock-based dynamic logic for schedulability analysis of CCSL specifications Sci. Comput. Program. (IF 0.775) Pub Date : 2020-10-14 Yuanrui Zhang; Frédéric Mallet; Huibiao Zhu; Yixiang Chen; Bo Liu; Zhiming Liu
The Clock Constraint Specification Language (CCSL) is a clock-based formalism for the specification and analysis of real-time embedded systems. The major goal of schedulability analysis of CCSL specifications is to solve the schedule problem, which is to answer ‘whether there exists a clock behaviour (also called a ‘schedule’) that conforms to a given CCSL specification'. Existing works on schedulability
-
Medicine-by-wire: Practical considerations on formal techniques for dependable medical systems Sci. Comput. Program. (IF 0.775) Pub Date : 2020-09-28 Leo Freitas; William E. Scott; Patrick Degenaar
We see the future of medicine as highly automated. Improvement in care-provision will be achieved by both increased clinician efficiency, as well as new computing assisted treatments and diagnoses. In other safety-critical industries, such as avionics and automotive, certification is dependability-driven. In contrast, medical certification is clinical-trial driven, which we argue will become increasingly
-
Efficient Counter-factual Type Error Debugging Sci. Comput. Program. (IF 0.775) Pub Date : 2020-09-10 Sheng Chen; Baijun Wu
Providing effective error messages in response to type errors continues to be a challenge in functional programming. Type error messages often point to bogus error locations or lack sufficient information for removing the type error, making error debugging ineffective. Counter-factual typing (CFT) addressed this problem by generating comprehensive error messages with each message includes a rich set
-
A family of multi-concept program synthesisers in Alloy⁎ Sci. Comput. Program. (IF 0.775) Pub Date : 2020-09-02 Alexandre Correia, Juliano Iyoda, Alexandre Mota
Program synthesis aims to mechanise the task of programming from the user intent (using pre and post condition, examples and sketches). There are many approaches (or concepts) in program synthesis that are usually implemented in isolation: deductive, syntax-based, inductive, etc. In this paper, we present a characterisation of program synthesis as model finding, using Alloy⁎. Such a characterisation
-
Validating, verifying and testing timed data-flow reactive systems in Coq from controlled natural-language requirements Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-27 Gustavo Carvalho, Igor Meira
Data-flow reactive systems (DFRSs) form a class of embedded systems whose inputs and outputs are always available as signals. Input signals can be seen as data provided by sensors, whereas the output data are provided to system actuators. In previous works, verifying well-formedness properties of DFRS models was accomplished in a programmatic way, with no formal guarantees, and test cases were generated
-
Model checking safety and liveness via k-induction and witness refinement with constraint generation Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-14 Nils Timm, Stefan Gruner, Madoda Nxumalo, Josua Botha
In this article, we revise our constraint-based abstraction refinement technique for checking temporal logic properties of concurrent software systems. Our technique employs predicate abstraction and SAT-based three-valued bounded model checking. In contrast to classical refinement techniques where a single state space model is iteratively explored and refined with predicates, our approach is as follows:
-
EUD-MARS: End-user development of model-driven adaptive robotics software systems Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-13 Pierre A. Akiki, Paul A. Akiki, Arosha K. Bandara, Yijun Yu
Empowering end-users to program robots is becoming more significant. Introducing software engineering principles into end-user programming could improve the quality of the developed software applications. For example, model-driven development improves technology independence and adaptive systems act upon changes in their context of use. However, end-users need to apply such principles in a non-daunting
-
Efficient testing of GUI applications by event sequence reduction Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-12 Jiwei Yan, Hao Zhou, Xi Deng, Ping Wang, Rongjie Yan, Jun Yan, Jian Zhang
Automatic event sequence generation tools are widely used for testing GUI applications. With these tools, developers can easily test the target GUI applications with a large number of events and collect a group of crash-triggering sequences in a short time. However, some efficiency-oriented tools generate low-level events randomly based on coordinates of the screen instead of widgets, which leads to
-
SApHESIA: An agent-based model and a criticality-based heuristic for cooperatively coupling SoSs Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-12 Valérie Camps, Stéphanie Combettes, Teddy Bouziat
Problems to solve nowadays have never been so complex and are continuously increasing in complexity. In this context Systems of Systems (SoS) may be a solution but the study of such systems is far from over. An SoS is a complex system characterized by the particular nature of its components: the latter, which are systems, tend to be managerially and operationally independent as well as geographically
-
The CLEARSY safety platform: 5 years of research, development and deployment Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-07 Thierry Lecomte, David Deharbe, Paulin Fournier, Marcel Oliveira
The CLEARSY Safety Platform (CSSP) was designed to ease the development of safety critical systems and to reduce the overall costs (development, deployment, and certification) under the pressure of the worldwide market. A smart combination of hardware features (double processor) and formal method (B method and code generators) was used to produce a SIL4-ready platform where safety principles are built-in
-
Which monads Haskell developers use: An exploratory study Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-06 Ismael Figueroa, Paul Leger, Hiroaki Fukuda
Monads are a mechanism for embedding and reasoning about notions of computation such as mutable state, I/O, exceptions, and many others. Even though monads are technically language-agnostic, they are mostly associated with the Haskell language. Indeed, one could argue that the use of monads is one of the defining characteristic of the Haskell language. In practical terms, monadic programming in Haskell
-
Transparent replication using metaprogramming in Cyan Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-05 Fellipe A. Ugliara, Gustavo M.D. Vieira, José de O. Guimarães
Replication can be used to increase the availability of a service by creating many operational copies of its data called replicas. Active replication is a form of replication that has strong consistency semantics, which are easier to reason about and program. However, creating replicated services using active replication still demands from the programmer the knowledge of subtleties of the replication
-
EMIP: The eye movements in programming dataset Sci. Comput. Program. (IF 0.775) Pub Date : 2020-08-04 Roman Bednarik, Teresa Busjahn, Agostino Gibaldi, Alireza Ahadi, Maria Bielikova, Martha Crosby, Kai Essig, Fabian Fagerholm, Ahmad Jbara, Raymond Lister, Pavel Orlov, James Paterson, Bonita Sharif, Teemu Sirkiä, Jan Stelovsky, Jozef Tvarozek, Hana Vrzakova, Ian van der Linde
A large dataset that contains the eye movements of N=216 programmers of different experience levels captured during two code comprehension tasks is presented. Data are grouped in terms of programming expertise (from none to high) and other demographic descriptors. Data were collected through an international collaborative effort that involved eleven research teams across eight countries on four continents
-
BoundWarden: Thread-enforced spatial memory safety through compile-time transformations Sci. Comput. Program. (IF 0.775) Pub Date : 2020-07-27 Smith Dhumbumroong, Krerk Piromsopa
This paper presents BoundWarden, a novel spatial memory safety enforcement approach that utilizes a combination of compile-time transformation and runtime concurrent monitoring techniques. The compiler extension component of BoundWarden transparently instruments source code of C programs with the code that allows the runtime component of BoundWarden to comprehensively detect and prevent buffer overflow
-
An optimal cut-off algorithm for parameterised refinement checking Sci. Comput. Program. (IF 0.775) Pub Date : 2020-07-13 Antti Siirtola, Keijo Heljanko
The verification of contemporary distributed software systems is challenging, because they are heavily parameterised, containing components whose number and connections cannot be a priori fixed. In this work, we consider the multi-parameterised verification of safety properties by refinement checking in the context of labelled transition systems (LTSs). The LTSs are parameterised by using first-order
-
Understanding stack overflow code quality: A recommendation of caution Sci. Comput. Program. (IF 0.775) Pub Date : 2020-07-10 Sarah Meldrum, Sherlock A. Licorish, Caitlin A. Owen, Bastin Tony Roy Savarimuthu
Community Question and Answer (CQA) platforms use the power of online groups to solve problems, or gain information. While these websites host useful information, it is critical that the details provided on these platforms are of high quality, and that users can trust the information. This is particularly necessary for software development, given the ubiquitous use of software across all sections of
-
Event-B formalization of a variability-aware component model patterns framework Sci. Comput. Program. (IF 0.775) Pub Date : 2020-07-08 Jean-Paul Bodeveix, Arnaud Dieumegard, Mamoun Filali
In the domain of model-driven engineering, patterns have emerged as a ubiquitous structuring mechanism. Patterns are used for instance at the requirement analysis level, during system design, and during the deployment and code generation phases. We focus on formalizing the operational semantics of pattern application on component-based system designs. More precisely, our ultimate goal is to provide
-
REST4CEP: RESTful APIs for complex event processing Sci. Comput. Program. (IF 0.775) Pub Date : 2020-07-08 Ángel Gamaza, Guadalupe Ortiz, Juan Boubeta-Puig, Alfonso Garcia-de-Prado
Complex Event Processing (CEP) is a powerful technology thoroughly used in cutting-edge software architectures to support decision-making in multiple domains. Currently, developing such CEP-enhanced software architectures is not an easy task and there are no general purpose Application Programming Interfaces (APIs) which support programming and software development for CEP-based systems. This paper
-
Unifying semantic foundations for automated verification tools in Isabelle/UTP Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-26 Simon Foster, James Baxter, Ana Cavalcanti, Jim Woodcock, Frank Zeyda
The growing complexity and diversity of models used for engineering dependable systems implies that a variety of formal methods, across differing abstractions, paradigms, and presentations, must be integrated. Such an integration requires unified semantic foundations for the various notations, and co-ordination of a variety of automated verification tools. The contribution of this paper is Isabelle/UTP
-
Mechanization of coherence and adequacy: Being extrinsic extended to subtyping Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-23 Alejandro Gadea, Emmanuel Gunther, Miguel Pagano
Operational and denotational are two common approaches to specify the semantics of programming languages: the former is more suitable for expressing a particular evaluation strategy and the latter is more abstract. If there are both an operational and a denotational semantics for a programming language, one expects that the operational semantics be adequate with respect to the denotational one (this
-
Trace semantics and refinement patterns for real-time properties in event-B models Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-23 Chenyang Zhu, Michael Butler, Corina Cirstea
Event-B is a formal method that utilizes a stepwise development approach for system-level modeling and analysis. We are interested in reasoning about real-time deadlines and delays between trigger and response events. There is existing work on treating these properties in Event-B but it lacks a semantic treatment in terms of trace behaviors. Because timing properties require fairness assumptions, we
-
A domain-specific language for verifying software requirement constraints Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-17 Marzina Vidal, Tiago Massoni, Franklin Ramalho
Software requirement analysis can undoubtedly benefit from prevention and early detection of failures, in particular by some kind of automatic analysis. Formal methods offer means to represent and analyze requirements with rigorous tools, avoiding ambiguities, and allowing automatic verification of requirement consistency. However, formalisms often clash in the culture or lack of software analysts'
-
Abstracting gradual references Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-08 Matías Toro, Éric Tanter
Gradual typing is an effective approach to integrate static and dynamic typing, which supports the smooth transition between both extremes via the imprecision of type annotations. Gradual typing has been applied in many scenarios such as objects, subtyping, effects, ownership, typestates, information-flow typing, parametric polymorphism, etc. In particular, the combination of gradual typing and mutable
-
CHOReVOLUTION: Service choreography in practice Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-08 Marco Autili, Amleto Di Salle, Francesco Gallo, Claudio Pompilio, Massimo Tivoli
This paper presents CHOReVOLUTION, a platform for the tool-assisted realization and execution of distributed applications. CHOReVOLUTION specifically targets service-oriented systems specified through service choreographies. It offers an Integrated Development and Runtime Environment (IDRE) organized into three layers, namely, front-end, back-end, and cloud. It comprises a wizard-aided development
-
A polymorphic RPC calculus Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-05 Kwanghoon Choi, James Cheney, Simon Fowler, Sam Lindley
The RPC calculus is a simple semantic foundation for multi-tier programming languages such as Links in which located functions can be written for the client-server model. Subsequently, the typed RPC calculus is designed to capture the location information of functions by types and to drive location type-directed slicing compilations. However, the use of locations is currently limited to monomorphic
-
Use case evolution analysis based on graph transformation with negative application conditions Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-05 Leila Ribeiro, Lucio Mauro Duarte, Rodrigo Machado, Andrei Costa, Érika Fernandes Cota, Jonas Santos Bezerra
Use Case (UC) quality impacts the overall quality and defect rate of a system, as they specify the expected behavior of an implementation. In a previous work, we have defined an approach for a step-by-step translation from UCs written in natural language to a formal description in terms of Graph Transformation (GT), where each step of the UC was translated to a transformation rule. This UC formalization
-
A framework for verifying deadlock and nondeterminism in UML activity diagrams based on CSP Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-05 Lucas Lima, Amaury Tavares, Sidney C. Nogueira
Deadlock and nondeterminism may become increasingly hard to detect in concurrent and distributed systems. UML activity diagrams are flowcharts that model sequential and concurrent behavior. Although the UML community widely adopts such diagrams, there is no standard approach to verify the presence of deadlock and nondeterministic behavior in activity diagrams. Nondeterminism is usually neglected in
-
A big step from finite to infinite computations Sci. Comput. Program. (IF 0.775) Pub Date : 2020-06-05 Davide Ancona, Francesco Dagnino, Jurriaan Rot, Elena Zucca
We provide a construction that, given a big-step semantics describing finite computations and their observations, extends it to include infinite computations as well. The basic idea is that the finite behavior uniquely determines the infinite behavior once observations and their composition operators are fixed. Technically, the construction relies on the framework of inference systems with corules
-
Revisiting monitors Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-29 Renan Santos, Noemi Rodriguez, Roberto Ierusalimschy
Most current programming languages do not restrict the use of the concurrency primitives they provide, leaving it to the programmer to detect data races. In this paper, we revisit the monitor model, which guards against data races by guaranteeing that accesses to shared variables occur only inside monitors, and show that this concept can be implemented in a programming language with referential semantics
-
A type-directed algorithm to generate random well-typed Java 8 programs Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-28 Samuel Feitosa, Rodrigo Ribeiro, Andre Du Bois
Property-based testing of compilers or programming language semantics is difficult to accomplish because it is hard to design a random generator for valid programs. Most compiler test tools do not have a well-specified way for generating type-correct programs, which is a requirement for such testing activities. In this project, we formalize a type-directed procedure to generate random well-typed Java
-
Compositional model checking with divergence preserving branching bisimilarity is lively Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-27 Sander de Putter, Frédéric Lang, Anton Wijs
Compositional model checking approaches attempt to limit state space explosion by iteratively combining the behaviour of the components in a concurrent system and reducing the result modulo an appropriate equivalence relation. In this article, we consider Labelled Transition Systems (LTSs), in which transitions are labelled by actions, to describe component behaviour, and LTS networks to combine the
-
Reshape your layouts, not your programs: A safe language extension for better cache locality Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-27 Alexandros Tasos, Juliana Franco, Sophia Drossopoulou, Tobias Wrigstad, Susan Eisenbach
The vast divide between the speed of CPU and RAM means that effective use of CPU caches is often a prerequisite for high performance on modern architectures. Hence, developers need to consider how to place data in memory so as to exploit spatial locality and achieve high memory bandwidth. Such manual memory optimisations are common in unmanaged languages (e.g. C, C++), but they sacrifice readability
-
Dynamic creation of source code models for the extraction of code metrics data through grammar querying Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-19 Alberto S. Nuñez-Varela, Héctor G. Pérez-Gonzalez, Francisco E. Martínez-Perez, Carlos Soubervielle-Montalvo, Oscar E. Perez-Cham
Source code metrics extraction is a complex task that has to be done automatically given the current size of software. They are extracted using software metric tools and more generic extraction mechanisms. These mechanisms usually work by querying a source code representation model. These models are static, and the information that can be obtained from them is limited. In this work an extraction methodology
-
Linked weak reference arrays: A hybrid approach to efficient bulk finalization Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-14 Andrés Valloud
The present work describes a challenging, real-life finalization scenario that applies combined scalability and resource utilization pressure. Neither weak reference arrays nor ephemerons satisfactorily address the performance-critical demands, hence addressing these existing limitations requires a new strategy. This paper puts forward a hybrid weak arrayed container with properties from both weak
-
Synthesizing and optimizing FDIR recovery strategies from fault trees Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-13 Sascha Müller, Liana Mikaelyan, Andreas Gerndt, Thomas Noll
Redundancy concepts are major design drivers in fault-tolerant space systems. It can be a difficult task to decide when to activate which redundancy, and which component should be replaced. In this paper, we refine a methodology where recovery strategies are synthesized from a model of non-deterministic dynamic fault trees. The synthesis is performed by transforming non-deterministic dynamic fault
-
Handling B models in the PERF integrated verification framework: Formalised and certified embedding Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-07 Alexandra Halchin, Yamine Ait-Ameur, Neeraj Kumar Singh, Julien Ordioni, Abderrahmane Feliachi
The design of complex systems involves several design models supporting different analysis techniques for validation and verification purposes. These activities lead to the definition of heterogeneous modelling languages and analysis techniques. In this setting, meeting certification standards becomes a key issue in system engineering. Reducing heterogeneity due to the presence of different modelling
-
Safe automated refactoring for intelligent parallelization of Java 8 streams Sci. Comput. Program. (IF 0.775) Pub Date : 2020-05-06 Raffi Khatchadourian, Yiming Tang, Mehdi Bagherzadeh
Streaming APIs are becoming more pervasive in mainstream Object-Oriented programming languages and platforms. For example, the Stream API introduced in Java 8 allows for functional-like, MapReduce-style operations in processing both finite, e.g., collections, and infinite data structures. However, using this API efficiently involves subtle considerations such as determining when it is best for stream
-
Improving the success rate of applying the extract method refactoring Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-30 Juan Pablo Sandoval Alcocer, Alejandra Siles Antezana, Gustavo Santos, Alexandre Bergel
Context: Most modern programming environments support refactorings. Although refactorings are relevant to improve the quality of software source code, they unfortunately suffer from severe usability issues. In particular, the extract method refactoring, one of the most prominent refactorings, has a failure rate of 49% when users attempt to use it. Objective: Our main objective is to improve the success
Contents have been reproduced by permission of the publishers.