scispace - formally typeset
Search or ask a question

Showing papers on "Specification language published in 2012"


Book ChapterDOI
01 Oct 2012
TL;DR: A consolidated view of the Frama-C platform, its main and composite analyses, and some of its industrial achievements are presented.
Abstract: Frama-C is a source code analysis platform that aims at conducting verification of industrial-size C programs. It provides its users with a collection of plug-ins that perform static analysis, deductive verification, and testing, for safety- and security-critical software. Collaborative verification across cooperating plug-ins is enabled by their integration on top of a shared kernel and datastructures, and their compliance to a common specification language. This foundational article presents a consolidated view of the platform, its main and composite analyses, and some of its industrial achievements.

327 citations


Patent
15 Mar 2012
TL;DR: In this article, a high-level object-oriented specification language for configurable components of a cloud-based deployment is proposed, which allows configurable component models to be modeled by a class definition that includes a group of configurable class parameters.
Abstract: A high-level object-oriented specification language allows configurable components of a cloud-based deployment to be modeled by a class definition that includes a group of configurable class parameters. The object-oriented specification language supports extension of an existing base class definition to create new class definitions, and supports inheritance of class parameters from the existing base class definition by the new class definitions. A cloud-based deployment can be customized based on class definitions used in configuring one or more generic deployments, such as by modifying class parameter values of the class definitions, varying interrelationships between the classes, and supplementing existing class parameters with new class parameters. The high-level object-oriented specification language supports class definitions that model hardware and virtual resources as well as software roles and service roles served by software applications and services in a cloud-based deployment. Syntax for specifying dependency and connectivity between classes is also provided.

221 citations


Book ChapterDOI
11 Jun 2012
TL;DR: Using a combination of static and dynamic program analysis the authors assess the success of different language features in the R language design.
Abstract: R is a dynamic language for statistical computing that combines lazy functional features and object-oriented programming. This rather unlikely linguistic cocktail would probably never have been prepared by computer scientists, yet the language has become surprisingly popular. With millions of lines of R code available in repositories, we have an opportunity to evaluate the fundamental choices underlying the R language design. Using a combination of static and dynamic program analysis we assess the success of different language features.

140 citations


Proceedings ArticleDOI
31 Mar 2012
TL;DR: This work specifies five forms of language composition: language extension, language restriction, language unification, self-extension, and extension composition, and hopes that the terminology provided will enable more precise communication on language composition.
Abstract: In language-oriented programming and modeling, software developers are largely concerned with the definition of domain-specific languages (DSLs) and their composition. While various implementation techniques and frameworks exist for defining DSLs, language composition has not obtained enough attention and is not well-enough understood. In particular, there is a lack of precise terminology for describing observations about language composition in theory and in existing language-development systems. To clarify the issue, we specify five forms of language composition: language extension, language restriction, language unification, self-extension, and extension composition. We illustrate this classification by various examples and apply it to discuss the performance of different language-development systems with respect to language composition. We hope that the terminology provided by our classification will enable more precise communication on language composition.

125 citations


Journal ArticleDOI
TL;DR: It is demonstrated that logic-based workflow verification can be applied to SWSpec which is capable of checking compliance and also detecting conflicts of the imposed requirements and will support scalable services interoperation in the form of workflows in opened environments.
Abstract: This paper presents a requirement-oriented automated framework for formal verification of service workflows. It is based on our previous work describing the requirement-oriented service workflow specification language called SWSpec. This language has been developed to facilitate workflow composer as well as arbitrary services willing to participate in a workflow to formally and uniformly impose their own requirements. As such, SWSpec provides a formal way to regulate and control workflows. The key component of the to-be-proposed framework centers on verification algorithms that rely on propositional logic. We demonstrate that logic-based workflow verification can be applied to SWSpec which is capable of checking compliance and also detecting conflicts of the imposed requirements. By automating compliance checking process, this framework will support scalable services interoperation in the form of workflows in opened environments.

114 citations


Journal ArticleDOI
TL;DR: A Service Workflow Specification language is proposed, called SWSpec, which allows arbitrary services in a workflow to formally and uniformly impose their requirements, and will provide a formal way to regulate and control workflows as well as enrich the proliferation of service provisions and consumptions in opened environments.
Abstract: Advanced technologies have changed the nature of business processes in the form of services. In coordinating services to achieve a particular objective, service workflow is used to control service composition, execution sequences as well as path selection. Since existing mechanisms are insufficient for addressing the diversity and dynamicity of the requirements in a large-scale distributed environment, developing formal requirements specification is necessary. In this paper, we propose a Service Workflow Specification language, called SWSpec, which allows arbitrary services in a workflow to formally and uniformly impose their requirements. As such, the solution will provide a formal way to regulate and control workflows as well as enrich the proliferation of service provisions and consumptions in opened environments.

110 citations


Journal ArticleDOI
25 Jan 2012
TL;DR: Redex is a domain-specific language for semantic models that is embedded in the Racket programming language and comes with tools for the semantics engineering life cycle.
Abstract: Formal models serve in many roles in the programming language community. In its primary role, a model communicates the idea of a language design; the architecture of a language tool; or the essence of a program analysis. No matter which role it plays, however, a faulty model doesn't serve its purpose.One way to eliminate flaws from a model is to write it down in a mechanized formal language. It is then possible to state theorems about the model, to prove them, and to check the proofs. Over the past nine years, PLT has developed and explored a lightweight version of this approach, dubbed Redex. In a nutshell, Redex is a domain-specific language for semantic models that is embedded in the Racket programming language. The effort of creating a model in Redex is often no more burdensome than typesetting it with LaTeX; the difference is that Redex comes with tools for the semantics engineering life cycle.

105 citations


Book ChapterDOI
TL;DR: TimeSquare is an Eclipse and model-based environment for the specification, analysis and verification of causal and temporal constraints, which implements the MARTE Time Model and its specification language, the Clock Constraint Specification Language (ccsl).
Abstract: TimeSquare is an Eclipse and model-based environment for the specification, analysis and verification of causal and temporal constraints. It implements the MARTE Time Model and its specification language, the Clock Constraint Specification Language (ccsl). Both MARTE and ccsl heavily rely on logical time, made popular by its use in distributed systems and synchronous languages. Logical Time provides a relaxed form of time that is functional, elastic (can be abstracted or refined) and multiform. TimeSquare is based on the latest model-driven technology so that more than 60% of its code is automatically generated. It provides an XText-based editor of constraints, a polychronous clock calculus engine able to process a partial order conforming to the set of constraints and it supports several simulation policies. It has been devised to be connected to several back-ends developed as new plugins to produce timing diagrams, animate uml models, or execute Java code amongst others.

95 citations


Proceedings ArticleDOI
19 Oct 2012
TL;DR: The mbeddr technology stack that supports extension of C with constructs adequate for embedded systems is presented and it is shown that language workbenches deliver on the promise of significantly reducing the effort of language engineering and the construction of corresponding IDEs.
Abstract: While the C programming language provides good support for writing efficient, low-level code, it is not adequate for defining higher-level abstractions relevant to embedded software. In this paper we present the mbeddr technology stack that supports extension of C with constructs adequate for embedded systems. In mbeddr, efficient low-level programs can be written using the well-known concepts from C. Higher-level domain-specific abstractions can be seamlessly integrated into C by means of modular language extension regarding syntax, type system, semantics and IDE. In the paper we show how language extension can address the challenges of embedded software development and report on our experience in building these extensions. We show that language workbenches deliver on the promise of significantly reducing the effort of language engineering and the construction of corresponding IDEs. mbeddr is built on top of the JetBrains MPS language workbench. Both MPS and mbeddr are open source software.

92 citations


Proceedings ArticleDOI
14 Oct 2012
TL;DR: Wrasse is built, a generic and extensible tool that cloud environments can use to solve their specific allocation problem and shows the extensibility of Wrasse by expressing several allocation problems in its specification language.
Abstract: Resource allocation is an integral, evolving part of many data center management problems such as virtual machine placement in data centers, network virtualization, and multi-path network routing. Since the problems are inherently NP-Hard, most existing systems use custom-designed heuristics to find a suitable solution. However, such heuristics are often rigid, making it difficult to extend them as requirements change.In this paper, we present a novel approach to resource allocation that permits the problem specification to evolve with ease. We have built Wrasse, a generic and extensible tool that cloud environments can use to solve their specific allocation problem. Wrasse provides a simple yet expressive specification language that captures a wide range of resource allocation problems. At the back-end, it leverages the power of GPUs to provide solutions to the allocation problems in a fast and timely manner. We show the extensibility of Wrasse by expressing several allocation problems in its specification language. Our experiments show that Wrasse's solution quality is as good as with heuristics, and sometimes even better, while maintaining good performance. In one case, Wrasse packed 71% more instances than a custom heuristic.

84 citations


Proceedings ArticleDOI
20 May 2012
TL;DR: Tiresias is presented, the first system that provides support for how-to queries, allowing the definition and integrated evaluation of a large set of constrained optimization problems, specifically Mixed Integer Programming problems, on top of a relational database system.
Abstract: How-To queries answer fundamental data analysis questions of the form: "How should the input change in order to achieve the desired output". As a Reverse Data Management problem, the evaluation of how-to queries is harder than their "forward" counterpart: hypothetical, or what-if queries. In this paper, we present Tiresias, the first system that provides support for how-to queries, allowing the definition and integrated evaluation of a large set of constrained optimization problems, specifically Mixed Integer Programming problems, on top of a relational database system. Tiresias generates the problem variables, constraints and objectives by issuing standard SQL statements, allowing for its integration with any RDBMS.The contributions of this work are the following: (a) we define how-to queries using possible world semantics, and propose the specification language TiQL (for Tiresias Query Language) based on simple extensions to standard Datalog. (b) We define translation rules that generate a Mixed Integer Program (MIP) from TiQL specifications, which can be solved using existing tools. (c) Tiresias implements powerful "data-aware" optimizations that are beyond the capabilities of modern MIP solvers, dramatically improving the system performance. (d) Finally, an extensive performance evaluation on the TPC-H dataset demonstrates the effectiveness of these optimizations, particularly highlighting the ability to apply divide-and-conquer methods to break MIP problems into smaller instances.

Journal ArticleDOI
TL;DR: This work introduces a framework for the specification and simulation of multicelled behaviors that combines a simple simulation of microcolony growth and molecular signaling with a new specification language called gro and allows the researcher to explore the collective behaviors induced by high level descriptions of individual cell behaviors.
Abstract: Recent advances in the design and construction of synthetic multicelled systems in E. coli and S. cerevisiae suggest that it may be possible to implement sophisticated distributed algorithms with these relatively simple organisms. However, existing design frameworks for synthetic biology do not account for the unique morphologies of growing microcolonies, the interaction of gene circuits with the spatial diffusion of molecular signals, or the relationship between multicelled systems and parallel algorithms. Here, we introduce a framework for the specification and simulation of multicelled behaviors that combines a simple simulation of microcolony growth and molecular signaling with a new specification language called gro. The framework allows the researcher to explore the collective behaviors induced by high level descriptions of individual cell behaviors. We describe example specifications of previously published systems and introduce two novel specifications: microcolony edge detection and programmed microcolony morphogenesis. Finally, we illustrate through example how specifications written in gro can be refined to include increasing levels of detail about their bimolecular implementations.

Proceedings ArticleDOI
Markus Voelter, Vaclav Pech1
02 Jun 2012
TL;DR: This demo will show MPS based on mbeddr C, a novel approach for embedded software development that makes use of incremental language extension on the basis of C.
Abstract: JetBrains MPS is a comprehensive environment for language engineering. New languages can be defined as standalone languages or as modular extensions of existing languages. Since MPS is a projectional editor, syntactic forms other than text are possible, including tables or mathematical symbols. This demo will show MPS based on mbeddr C, a novel approach for embedded software development that makes use of incremental language extension on the basis of C.

Proceedings Article
01 May 2012
TL;DR: MaltOptimizer is an interactive system that first performs an analysis of the training set in order to select a suitable starting point for optimization and then guides the user through the optimization of parsing algorithm, feature model, and learning algorithm.
Abstract: Freely available statistical parsers often require careful optimization to produce state-of-the-art results, which can be a non-trivial task especially for application developers who are not interested in parsing research for its own sake. We present MaltOptimizer, a freely available tool developed to facilitate parser optimization using the open-source system MaltParser, a data-driven parser-generator that can be used to train dependency parsers given treebank data. MaltParser offers a wide range of parameters for optimization, including nine different parsing algorithms, two different machine learning libraries (each with a number of different learners), and an expressive specification language that can be used to define arbitrarily rich feature models. MaltOptimizer is an interactive system that first performs an analysis of the training set in order to select a suitable starting point for optimization and then guides the user through the optimization of parsing algorithm, feature model, and learning algorithm. Empirical evaluation on data from the CoNLL 2006 and 2007 shared tasks on dependency parsing shows that MaltOptimizer consistently improves over the baseline of default settings and sometimes even surpasses the result of manual optimization.

Proceedings ArticleDOI
03 Sep 2012
TL;DR: This paper presents the SiDiff approach to model comparison which includes a set of highly configurable incremental matchers and a specification language to control their application.
Abstract: Modern model-based development methodologies require a large number of efficient, high-quality model comparison tools. They must be carefully adapted to the specific model type, user preferences and application context. Implementing a large number of dedicated, monolithic tools is infeasible, the only viable approach are generic, adaptable tools. Generic tools currently available provide only partial or low-quality solutions to this challenge; their results are not satisfactory for model types such as state machines or block diagrams. This paper presents the SiDiff approach to model comparison which includes a set of highly configurable incremental matchers and a specification language to control their application.

DOI
01 Jan 2012
TL;DR: The thesis presents different techniques that can be used to build formal behavioral models and describes a language transformation from the language Chi 2.0 language to the mCRL2 language to create models from system descriptions that specify concurrent behavior.
Abstract: The thesis presents different techniques that can be used to build formal behavioral models. If modal properties are formulated, the models can be subjected to verification techniques to determine whether a model possesses the desired properties. However many native environments do not facilitate tools or techniques to verify them. Hence, these models need to be transformed into other models that provide suitable techniques for a formal analysis. The transformations are classified into two engineering approaches, namely syntactically engineered models and semantically engineered models. Syntactically engineered models are constructed from input specifications without explicitly considering the semantics. Semantically engineered models are constructed from input specifications by explicitly considering the semantics. The syntactic engineering approach presents four dedicated modeling techniques that construct or disseminate verification results for formal models. The first modeling technique describes a way to create models from system descriptions that specify concurrent behavior. Here, we model three variations of a 2×2 switch, for which the models are subsequently compared to models created in the specification languages: TLA+, Bluespec, Statecharts, and ACP. The comparison validates that mCRL2 is a suitable specification language to model descriptions or specify the behavior for prototype systems. The second syntactic technique constructs an mCRL2 model from a software implementation that operates a printer for printing Printed Circuit Boards. The model is used to advise (other) software engineers on dangerous language constructs in the control software. Hence, the model is model checked for various safety properties. The implementation is modeled through an over-approximation on the behavior by abstracting from program variables, such that only interface calls between processes and non-deterministic choices in procedures remain. The third modeling technique describes a language transformation from the language Chi 2.0 language to the mCRL2 language. The purpose of the transformation is to facilitate model checking techniques to the discrete part of the Chi 2.0 language.

Journal ArticleDOI
TL;DR: A polynomial-time algorithm for verification whether a language is conditionally decomposable with respect to given alphabets is presented and it is shown that conditional decomposability is a weaker condition than nonblockingness.

Book ChapterDOI
24 Sep 2012
TL;DR: This paper gives a tutorial introduction to ABS, a novel language for modeling feature-rich, distributed, object-oriented systems at an abstract, yet precise level, and has a formal semantics and has been designed with formal analyzability in mind.
Abstract: ABS for abstract behavioral specification is a novel language for modeling feature-rich, distributed, object-oriented systems at an abstract, yet precise level. ABS has a clear and simple concurrency model that permits synchronous as well as actor-style asynchronous communication. ABS abstracts away from specific datatype or I/O implementations, but is a fully executable language and has code generators for Java, Scala, and Maude. ABS goes beyond conventional programming languages in two important aspects: first, it embeds architectural concepts such as components or feature hierarchies and allows to connect features with their implementation in terms of product families. In contrast to standard OO languages, code reuse in ABS is feature-based instead of inheritance-based. Second, ABS has a formal semantics and has been designed with formal analyzability in mind. This paper gives a tutorial introduction to ABS. We discuss all important design features, explain why they are present and how they are intended to be used.

Book ChapterDOI
12 Sep 2012
TL;DR: Service-based applications are a new class of software systems that provide the basis for enterprises to build their information systems by following the principles of service-oriented architectures, with the related issue of balancing expressiveness and support for automated verification.
Abstract: Service-based applications are a new class of software systems that provide the basis for enterprises to build their information systems by following the principles of service-oriented architectures. These software systems are often realized by orchestrating remote, third-party services, to provide added-values applications that are called service compositions. The distributed ownership and the evolving nature of the services involved in a service composition make verification activities crucial. On a par with verification is also the problem of formally specifying the interactions–with third-party services–of service compositions, with the related issue of balancing expressiveness and support for automated verification.

Book ChapterDOI
28 May 2012
TL;DR: A formal specification language for the declarative formulation of transformation properties (invariants, pre- and postconditions) is proposed from which partial oracle functions that facilitate testing of the transformations are generated.
Abstract: Testing model transformations poses several challenges, among them the automatic generation of appropriate input test models and the specification of oracle functions. Most approaches to the generation of input models ensure a certain level of source meta-model coverage, whereas the oracle functions are frequently defined using query or graph languages. Both tasks are usually performed independently regardless their common purpose, and sometimes there is a gap between the properties exhibited by the generated input models and those demanded to the transformations (as given by the oracles). Recently, we proposed a formal specification language for the declarative formulation of transformation properties (invariants, pre- and postconditions) from which we generated partial oracle functions that facilitate testing of the transformations. Here we extend the usage of our specification language for the automated generation of input test models by constraint solving. The testing process becomes more intentional because the generated models ensure a certain coverage of the interesting properties of the transformation. Moreover, we use the same specification to consistently derive both the input test models and the oracle functions.

Proceedings ArticleDOI
26 Nov 2012
TL;DR: RSLingo is presented, a linguistic approach for improving the quality of requirements specifications, which is based on two languages and the mapping between them, which allows one to deal with requirements as “white-box” items, enabling a deeper understanding at a semantic level.
Abstract: Requirements Engineering (RE) is about achieving a shared understanding about the software system to be built. No withstanding the importance of other RE activities, requirements specification deserves special attention due to its documentation purposes: to communicate requirements, someone has to write them down. In this paper we present RSLingo, a linguistic approach for improving the quality of requirements specifications, which is based on two languages and the mapping between them: RSL-PL, an extensible language for dealing with information extraction from requirements written in natural language; and RSL-IL, a formal language with a fixed set of constructs for representing and conveying RE-specific concerns. Contrarily to other approaches, this decoupling allows one to deal with requirements as “white-box” items, enabling a deeper understanding at a semantic level. Thus, RSLingo enables the automation of some verification tasks that prevent common requirements quality problems and lays the foundation to better integrate RE with the Model-Driven Engineering paradigm through transformations of requirements representations into design models.

Proceedings ArticleDOI
10 Nov 2012
TL;DR: This work evaluates the performance of the PATUS code generation and auto-tuning framework by focusing on a scalable discretization of the wave equation and testing complex simulation types of the AWP-ODC code to aim at excellent parallel efficiency, preparing for petascale 3-D earthquake calculations.
Abstract: Patus is a code generation and auto-tuning framework for stencil computations targeting modern multi and many-core processors. The goals of the framework are productivity and portability for achieving high performance on the target platform. Its stencil specification language allows the programmer to express the computation in a concise way independently of hardware architecture-specific details. Thus, it increases the programmer productivity by removing the need for manual low-level tuning. We illustrate the impact of the stencil code generation in seismic applications, for which both weak and strong scaling are important. We evaluate the performance by focusing on a scalable discretization of the wave equation and testing complex simulation types of the AWP-ODC code to aim at excellent parallel efficiency, preparing for petascale 3-D earthquake calculations.

Book ChapterDOI
28 Jan 2012
TL;DR: A machine-checked, formal semantics based on a "shallow embedding" of Circus in Isabelle/UTP is developed, which derives proof rules from this semantics and implements tactic support that finally allows for proofs of refinement for Circus processes.
Abstract: The Circus specification language combines elements for complex data and behavior specifications, using an integration of Z and CSP with a refinement calculus. Its semantics is based on Hoare and He's unifying theories of programming (UTP). We develop a machine-checked, formal semantics based on a "shallow embedding" of Circus in Isabelle/UTP (our semantic theory of UTP based on Isabelle/HOL). We derive proof rules from this semantics and implement tactic support that finally allows for proofs of refinement for Circus processes (involving both data and behavioral aspects). This proof environment supports a syntax for the semantic definitions which is close to textbook presentations of Circus.

Book ChapterDOI
19 Sep 2012
TL;DR: It is shown how aspects of performance, resource consumption, and deployment on the cloud can be formally modeled for an industrial case study of a distributed system, using the abstract behavioral specification language ABS.
Abstract: We show how aspects of performance, resource consumption, and deployment on the cloud can be formally modeled for an industrial case study of a distributed system, using the abstract behavioral specification language ABS. These non-functional aspects are integrated with an existing formal model of the functional system behavior, supporting a separation of concerns between the functional and non-functional aspects in the integrated model. The ABS model is parameterized with respect to deployment scenarios which capture different application-level management policies for virtualized resources. The model is validated against the existing system's performance characteristics and used to simulate and compare deployment scenarios on the cloud.

Proceedings ArticleDOI
24 Sep 2012
TL;DR: The paper presents a probabilistic framework for goal specification and obstacle assessment and shows how the computed information can be used to prioritize obstacles for countermeasure selection towards a more complete and robust goal model.
Abstract: Requirements completeness is among the most critical and difficult software engineering challenges. Missing requirements often result from poor risk analysis at requirements engineering time. Obstacle analysis is a goal-oriented form of risk analysis aimed at anticipating exceptional conditions in which the software should behave adequately. In the identify-assess-control cycles of such analysis, the assessment step is not well supported by current techniques. This step is concerned with evaluating how likely the obstacles to goals are and how likely and severe their consequences are. Those key factors drive the selection of most appropriate countermeasures to be integrated in the system goal model for increased completeness. Moreover, obstacles to probabilistic goals are currently not supported; such goals prescribe that some corresponding target property should be satisfied in at least X% of the cases. The paper presents a probabilistic framework for goal specification and obstacle assessment. The specification language for goals and obstacles is extended with a probabilistic layer where probabilities have a precise semantics grounded on system-specific phenomena. The probability of a root obstacle to a goal is thereby computed by up-propagation of probabilities of finer-grained obstacles through the obstacle refinement tree. The probability and severity of obstacle consequences is in turn computed by up-propagation from the obstructed leaf goals through the goal refinement graph. The paper shows how the computed information can be used to prioritize obstacles for countermeasure selection towards a more complete and robust goal model. The framework is evaluated on a non-trivial carpooling support system.

Proceedings ArticleDOI
31 Mar 2012
TL;DR: The design and implementation of a specification language for syntax definition based on templates is described, which unifies the specification of parsers, unparsers and template-based editors and is evaluated by application to two domain-specific languages used for tax benefits and mobile applications.
Abstract: Syntax discoverability has been a crucial advantage of structure editors for new users of a language. Despite this advantage, structure editors have not been widely adopted. Based on immediate parsing and analyses, modern textual code editors are also increasingly syntax-aware: structure and textual editors are converging into a new editing paradigm that combines text and templates. Current text-based language workbenches require redundant specification of the ingredients for a template-based editor, which is detrimental to the quality of syntactic completion, as consistency and completeness of the definition cannot be guaranteed.In this paper we describe the design and implementation of a specification language for syntax definition based on templates. It unifies the specification of parsers, unparsers and template-based editors. We evaluate the template language by application to two domain-specific languages used for tax benefits and mobile applications.

Proceedings ArticleDOI
24 Jan 2012
TL;DR: The tool set that is currently being built to support reasoning with the VerCors logic supports a specification language that combines features of separation logic with JML, and the first results on data structure specifications are described.
Abstract: This paper describes the first results and on-going work in the VerCors project. The VerCors project is about Verification of Concurrent Data Structures. Its goal is to develop a specification language and program logic for concurrent programs, and in particular for concurrent data structures, as these are the essential building blocks of many different concurrent programs. The program logic is based on our earlier work on permission-based separation logic for Java. This is an extension of Hoare logic that is particularly convenient to reason about concurrent programs.The paper first describes the tool set that is currently being built to support reasoning with this logic. It supports a specification language that combines features of separation logic with JML. For the verification, the program and its annotations are encoded into Chalice, and then we reuse the Chalice translation to Boogie to generate the proof obligations.Next, the paper describes our first results on data structure specifications. We use histories to keep track of the changes to the data structures, and we show how these histories allow us to derive other conclusions about the data structure implementations. We also discuss how we plan to reason about volatile variables, and how we will use this to verify lock-free data structures.Throughout the paper, we discuss our plans for future work within the VerCors project.

Proceedings ArticleDOI
23 Jan 2012
TL;DR: COSTABS is presented, a COSt and Termination analyzer for ABS, which is able to prove termination and obtain resource usage bounds for both the imperative and functional fragments of programs.
Abstract: ABS is an abstract behavioural specification language to model distributed concurrent systems. Characteristic features of ABS are that: (1) it allows abstracting from implementation details while remaining executable: a functional sub-language over abstract data types is used to specify internal, sequential computations; and (2) the imperative sub-language provides flexible concurrency and synchronization mechanisms by means of asynchronous method calls, release points in method definitions, and cooperative scheduling of method activations. This paper presents COSTABS, a COSt and Termination analyzer for ABS, which is able to prove termination and obtain resource usage bounds for both the imperative and functional fragments of programs. The resources that COSTABS can infer include termination, number of execution steps, memory consumption, number of asynchronous calls, among others. The analysis bounds provide formal guarantees that the execution of the program will never exceed the inferred amount of resources. The system can be downloaded as free software from its web site, where a repository of examples and a web interface are also provided. To the best of our knowledge, COSTABS is the first system able to perform resource analysis for a concurrent language.

Proceedings Article
25 Oct 2012
TL;DR: A design flow is envisioned which incorporates a Formal Specification Level (FSL) thereby bridging the gap between the informal textbook specification and the formal ESL implementation and modeling languages such as UML or SysML are envisaged for this purpose.
Abstract: The steadily increasing complexity of the design of embedded systems led to the development of both an elaborated design flow that includes various abstraction levels and corresponding methods for synthesis and verification. However, until today the initial system specification is provided in natural language which is manually translated into a formal implementation e.g. at the Electronic System Level (ESL) by means of SystemC in a time-consuming and error-prone process. In this paper, we envision a design flow which incorporates a Formal Specification Level (FSL) thereby bridging the gap between the informal textbook specification and the formal ESL implementation. Modeling languages such as UML or SysML are envisaged for this purpose. Recent accomplishments towards this envisioned design flow, namely the automatic derivation of formal models from natural language descriptions, verification of formal models in the absence of an implementation, and code generation techniques, are briefly reviewed.

Proceedings ArticleDOI
03 Dec 2012
TL;DR: The viability and benefits of this architectural approach are compared against simpler strategies, to establish technical and business cases for the associated engineering effort.
Abstract: This paper describes a specification language and architecture for managing distributed software and mapped compute, storage and network infrastructure services dynamically, beyond the state of the art in cloud computing. This is referred to as dynamic application topology orchestration, where the mapping and configuration of distributed, interconnected, interdependent application services and infrastructure resources are dynamically adjusted, according to guarantees in Service Level Agreements (SLAs) and operational constraints. The viability and benefits of this architectural approach are compared against simpler strategies, to establish technical and business cases for the associated engineering effort.