当前期刊: Science of Computer Programming Go to current issue    加入关注   
显示样式:        排序: IF: - GO 导出
  • 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

  • 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

  • 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

  • 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

  • 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

  • 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

  • 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'

  • 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

  • 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

  • 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

  • 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

  • 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

  • A new modular implementation for stateful traits
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-29
    Pablo Tesone; Stéphane Ducasse; Guillermo Polito; Luc Fabresse; Noury Bouraqadi

    The term traits is overloaded in the literature. In this work we refer to traits as the stateless model and implementation described in Schaerli et al. articles. Traits provide a flexible way to support multiple inheritance code reuse in the context of a single inheritance language. The Pharo programming language includes the second implementation of stateless traits based on the original version of

  • Formalizing the dependency pair criterion for innermost termination
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-28
    Ariane Alves Almeida; Mauricio Ayala-Rincón

    Rewriting is a framework for reasoning about functional programming. The dependency pair criterion is a well-known mechanism to analyze termination of term rewriting systems. Functional specifications with an operational semantics based on evaluation are related, in the rewriting framework, to the innermost reduction relation. This paper presents a PVS formalization of the dependency pair criterion

  • Ready, set, Go!
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-24
    Daniel Schnetzer Fava; Martin Steffen

    Data races are often discussed in the context of lock acquisition and release, with race-detection algorithms routinely relying on vector clocks as a means of capturing the relative ordering of events from different threads. In this paper, we present a data-race detector for a language with channel communication as its sole synchronization primitive, and provide a semantics directly tied to the happens-before

  • The Prevalence and Severity of Persistent Ambiguity in Software Requirements Specifications: Is a Special Effort Needed to Find Them?
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-24
    Cristina Ribeiro; Daniel Berry

    Context and motivation All the research in methods and tools for avoiding, detecting, and removing ambiguities in requirements specifications assumes that doing so is necessary and that the methods and tools for doing so are worth the effort to use them. Each of two attempts by de Bruijn et al and Philippo et al to test these assumptions empirically with a case study examined a random sampling of the

  • Lean formalization of bounded grids and computable cellular automata defined thereover
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-22
    František Silváši; Martin Tomášek

    We present a formalization of bounded grids using Lean proof assistant and provide a formalized implementation along with an interface consisting of various definitions together with their proven–correct properties serving to manipulate grids in general fashion regardless of the intended use case. We then proceed to demonstrate the applicability of the grids by interpreting them as matrices, followed

  • Formal verification of input-output mappings of tree ensembles
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-03-19
    John Törnblom; Simin Nadjm-Tehrani

    Recent advances in machine learning and artificial intelligence are now being considered in safety-critical autonomous systems where software defects may cause severe harm to humans and the environment. Design organizations in these domains are currently unable to provide convincing arguments that their systems are safe to operate when machine learning algorithms are used to implement their software

  • Programming language foundations in Agda
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-03-24
    Wen Kokke; Jeremy G. Siek; Philip Wadler

    One of the leading textbooks for formal methods is Software Foundations (SF), written by Benjamin Pierce in collaboration with others, and based on Coq. After five years using SF in the classroom, we came to the conclusion that Coq is not the best vehicle for this purpose, as too much of the course needs to focus on learning tactics for proof derivation, to the cost of learning programming language

  • A debugging approach for live Big Data applications
    Sci. Comput. Program. (IF 0.775) Pub Date : 2020-04-03
    Matteo Marra; Guillermo Polito; Elisa Gonzalez Boix

    Many frameworks exist for programmers to develop and deploy Big Data applications such as Hadoop Map/Reduce and Apache Spark. However, very little debugging support is currently provided in those frameworks. When an error occurs, developers are lost in trying to understand what has happened from the information provided in log files. Recently, new solutions allow developers to record & replay the application

  • Comparison of eigensolvers for symmetric band matrices.
    Sci. Comput. Program. (IF 0.775) Pub Date : 2014-09-15
    Michael Moldaschl,Wilfried N Gansterer

    We compare different algorithms for computing eigenvalues and eigenvectors of a symmetric band matrix across a wide range of synthetic test problems. Of particular interest is a comparison of state-of-the-art tridiagonalization-based methods as implemented in Lapack or Plasma on the one hand, and the block divide-and-conquer (BD&C) algorithm as well as the block twisted factorization (BTF) method on

Contents have been reproduced by permission of the publishers.
Springer Nature Live 产业与创新线上学术论坛
ACS ES&T Engineering
ACS ES&T Water