4,463 research outputs found

    Toward Sequentializing Overparallelized Protocol Code

    Full text link
    In our ongoing work, we use constraint automata to compile protocol specifications expressed as Reo connectors into efficient executable code, e.g., in C. We have by now studied this automata based compilation approach rather well, and have devised effective solutions to some of its problems. Because our approach is based on constraint automata, the approach, its problems, and our solutions are in fact useful and relevant well beyond the specific case of compiling Reo. In this short paper, we identify and analyze two such rather unexpected problems.Comment: In Proceedings ICE 2014, arXiv:1410.701

    Concurrent Lexicalized Dependency Parsing: The ParseTalk Model

    Full text link
    A grammar model for concurrent, object-oriented natural language parsing is introduced. Complete lexical distribution of grammatical knowledge is achieved building upon the head-oriented notions of valency and dependency, while inheritance mechanisms are used to capture lexical generalizations. The underlying concurrent computation model relies upon the actor paradigm. We consider message passing protocols for establishing dependency relations and ambiguity handling.Comment: 90kB, 7pages Postscrip

    Building Transformation Networks for Consistent Evolution of Interrelated Models

    Get PDF
    In dieser Dissertation formalisieren und analysieren wir die Konsistenzerhaltung verschiedener Artefakte zur Beschreibung eines Softwaresystems durch die Kopplung von Transformationen zwischen diesen und unterstĂŒtzen sie mit geeigneten Methoden. FĂŒr die Entwicklung eines Softwaresystems nutzen Entwickler:innen und weitere Beteiligte verschiedene Sprachen, oder allgemein Werkzeuge, zur Beschreibung unterschiedlicher Belange. Meist stellt Programmcode das zentrale Artefakt dar, welches jedoch, implizit oder explizit, durch Spezifikationen von Architektur, Deployment, Anforderungen und anderen ergĂ€nzt wird. Neben der Programmiersprache verwenden die Beteiligten weitere Sprachen zur Spezifikation dieser Artefakte, beispielsweise die UML fĂŒr Modelle des objektorientierten Entwurfs oder der Architektur, den OpenAPI-Standard fĂŒr Schnittstellen-Definitionen, oder Docker fĂŒr Deployment-Spezifikationen. Zur Erstellung eines funktionsfĂ€higen Softwaresystems mĂŒssen diese Artefakte das System einheitlich und widerspruchsfrei darstellen. Beispielsweise mĂŒssen Dienst-Schnittstellen in allen Artefakten einheitlich reprĂ€sentiert sein. Wir sagen, die Artefakte mĂŒssen konsistent sein. In der modellgetriebenen Entwicklung werden solche verschiedenen Artefakte allgemein Modelle genannt und bereits als wesentliche zentrale Entwicklungsbestandteile genutzt, um auch Teile des Programmcodes aus ihnen abzuleiten. Dies betrifft beispielsweise die Softwareentwicklung fĂŒr Fahrzeuge. Zur Konsistenzerhaltung der Modelle werden oftmals Transformationen eingesetzt, die nach Änderungen eines Modells die anderen Modelle anpassen. Die bisherige Forschung beschrĂ€nkt sich auf Transformationen zur Konsistenzerhaltung zweier Modelle und die projektspezifische Kombination von Transformationen zur Konsistenzerhaltung mehrerer Modelle. Ein systematischer Entwicklungsprozess, in dem einzelne Transformationen unabhĂ€ngig entwickelt und in verschiedenen Kontexten modular wiederverwendet werden können, wird hierdurch jedoch nicht unterstĂŒtzt. In dieser Dissertation erforschen wir, wie Entwickler:innen mehrere Transformationen zu einem Netzwerk kombinieren können, welches die Transformationen in einer geeigneten Reihenfolge ausfĂŒhren kann, sodass abschließend alle Modelle konsistent zueinander sind. Dies geschieht unter der Annahme, dass einzelne Transformationen zwischen zwei Sprachen unabhĂ€ngig voneinander entwickelt werden und daher nicht aufeinander abgestimmt werden können. Unsere BeitrĂ€ge unterteilen sich in die Untersuchung der Korrektheit einer solchen Kombination von Transformationen zu einem Netzwerk und die Optimierung von QualitĂ€tseigenschaften solcher Netzwerke. Wir diskutieren und definieren zunĂ€chst einen adĂ€quaten Korrektheitsbegriff, welcher drei Anforderungen impliziert. Diese umfassen eine Synchronisations-Eigenschaft fĂŒr die einzelnen Transformationen, eine KompatibilitĂ€ts-Eigenschaft fĂŒr das Transformationsnetzwerk, sowie das Finden einer geeigneten AusfĂŒhrungsreihenfolge der Transformationen, einer Orchestrierung. Wir stellen ein Konstruktionsverfahren fĂŒr Transformationen vor, mit welchem die Synchronisations-Eigenschaft basierend auf einer formal bewiesenen Eigenschaft erfĂŒllt wird. FĂŒr dieses zeigen wir VollstĂ€ndigkeit und Angemessenheit mit einer fallstudienbasierten empirischen Evaluation in der DomĂ€ne der komponentenbasierten Softwareentwicklung. Wir definieren die Eigenschaft der KompatibilitĂ€t von Transformationen, fĂŒr welche wir ein formales und bewiesen korrektes Analyseverfahren vorschlagen und eine praktische Realisierung ableiten, deren Anwendbarkeit wir in Fallstudien nachweisen. Schlussendlich definieren wir das Orchestrierungsproblem zum Finden einer Orchestrierung, die zu konsistenten Modelle fĂŒhrt wann immer solch eine Orchestrierung existiert. Wir beweisen die Unentscheidbarkeit dieses Problems und diskutieren, dass eine EinschrĂ€nkung des Problems, um Entscheidbarkeit zu erreichen, die Anwendbarkeit unpraktikabel beschrĂ€nken wĂŒrde. Daher schlagen wir einen Algorithmus vor, der das Problem konservativ behandelt. Er findet eine Orchestrierung unter bestimmten, wohldefinierten Bedingungen und terminiert andernfalls mit einem Fehler. Wir beweisen die Korrektheit des Algorithmus und eine Eigenschaft, die das Finden der Ursache im Fehlerfall unterstĂŒtzt. ZusĂ€tzlich kategorisieren wir Fehler, die auftreten können falls ein Netzwerk den definierten Korrektheitsbegriff nicht erfĂŒllt. Daraus leiten wir mittels den bereits genannten Fallstudien ab, dass die meisten potentiellen Fehler per Konstruktion mit den in dieser Arbeit vorgeschlagenen AnsĂ€tzen vermieden werden können. Zur Untersuchung von QualitĂ€tseigenschaften eines Netzwerkes von Transformationen klassifizieren wir zunĂ€chst relevante Eigenschaften, sowie den Effekt verschiedener Typen von Netzwerktopologien auf diese. Hierbei zeigt sich, dass insbesondere Korrektheit und Wiederverwendbarkeit im Widerspruch stehen, sodass die Wahl der Netzwerktopologie ein AbwĂ€gen bei der Optimierung dieser Eigenschaften erfordert. Wir leiten hieraus ein Konstruktionsverfahren fĂŒr Transformationsnetzwerke ab, welches die Notwendigkeit einer AbwĂ€gung zwischen den QualitĂ€tseigenschaften abmildert und, unter gewissen Voraussetzungen, Korrektheit per Konstruktion gewĂ€hrleistet. Wir unterstĂŒtzen den Entwicklungsprozess fĂŒr diesen Ansatz mithilfe einer spezialisierten Spezifikationssprache. WĂ€hrend die Verminderung der Notwendigkeit einer AbwĂ€gung zwischen QualitĂ€tseigenschaften durch den Ansatz per Konstruktion erreicht wird, zeigen wir die Erreichbarkeit der Voraussetzungen und die Vorteile der vorgeschlagenen Sprache in einer empirischen Evaluation mithilfe der Fallstudie aus der komponentenbasierten Softwareentwicklung. Die BeitrĂ€ge dieser Dissertation unterstĂŒtzen sowohl Forscher:innen als auch Transformationsentwickler:innen und Transformationsanwender:innen bei der Analyse und Konstruktion von Netzwerken von Transformationen. Sie stellen fĂŒr Forscher:innen und Transformationsentwickler:innen systematisches Wissen ĂŒber die Korrektheit und weitere QualitĂ€tseigenschaften solcher Netzwerke bereit. Sie zeigen insbesondere welche Teile dieser Eigenschaften per Konstruktion erreicht werden können, welche per Analyse validiert werden können, und welche Fehler unvermeidbar bei der AusfĂŒhrung erwartet werden mĂŒssen. ZusĂ€tzlich zu diesen Einsichten stellen wir konkrete, praktisch nutzbare Verfahren bereit, mit denen Transformationsentwickler:innen und Transformationsanwender:innen korrekte, modular wiederverwendbare Netzwerke konstruieren, analysieren und ausfĂŒhren können

    Modularizing and Specifying Protocols among Threads

    Full text link
    We identify three problems with current techniques for implementing protocols among threads, which complicate and impair the scalability of multicore software development: implementing synchronization, implementing coordination, and modularizing protocols. To mend these deficiencies, we argue for the use of domain-specific languages (DSL) based on existing models of concurrency. To demonstrate the feasibility of this proposal, we explain how to use the model of concurrency Reo as a high-level protocol DSL, which offers appropriate abstractions and a natural separation of protocols and computations. We describe a Reo-to-Java compiler and illustrate its use through examples.Comment: In Proceedings PLACES 2012, arXiv:1302.579

    Mechanizing a Process Algebra for Network Protocols

    Get PDF
    This paper presents the mechanization of a process algebra for Mobile Ad hoc Networks and Wireless Mesh Networks, and the development of a compositional framework for proving invariant properties. Mechanizing the core process algebra in Isabelle/HOL is relatively standard, but its layered structure necessitates special treatment. The control states of reactive processes, such as nodes in a network, are modelled by terms of the process algebra. We propose a technique based on these terms to streamline proofs of inductive invariance. This is not sufficient, however, to state and prove invariants that relate states across multiple processes (entire networks). To this end, we propose a novel compositional technique for lifting global invariants stated at the level of individual nodes to networks of nodes.Comment: This paper is an extended version of arXiv:1407.3519. The Isabelle/HOL source files, and a full proof document, are available in the Archive of Formal Proofs, at http://afp.sourceforge.net/entries/AWN.shtm

    A uniform definition of stochastic process calculi

    Get PDF
    We introduce a unifying framework to provide the semantics of process algebras, including their quantitative variants useful for modeling quantitative aspects of behaviors. The unifying framework is then used to describe some of the most representative stochastic process algebras. This provides a general and clear support for an understanding of their similarities and differences. The framework is based on State to Function Labeled Transition Systems, FuTSs for short, that are state-transition structures where each transition is a triple of the form (s; α;P). The first andthe second components are the source state, s, and the label, α, of the transition, while the third component is the continuation function, P, associating a value of a suitable type to each state s0. For example, in the case of stochastic process algebras the value of the continuation function on s0 represents the rate of the negative exponential distribution characterizing the duration/delay of the action performed to reach state s0 from s. We first provide the semantics of a simple formalism used to describe Continuous-Time Markov Chains, then we model a number of process algebras that permit parallel composition of models according to the two main interaction paradigms (multiparty and one-to-one synchronization). Finally, we deal with formalisms where actions and rates are kept separate and address the issues related to the coexistence of stochastic, probabilistic, and non-deterministic behaviors. For each formalism, we establish the formal correspondence between the FuTSs semantics and its original semantics

    Building Transformation Networks for Consistent Evolution of Interrelated Models

    Get PDF
    Complex software systems are described with multiple artifacts, such as code, design diagrams and others. Ensuring their consistency is crucial and can be automated with transformations for pairs of artifacts. We investigate how developers can combine independently developed and reusable transformations to networks that preserve consistency between more than two artifacts. We identify synchronization, compatibility and orchestration as central challenges, and we develop approaches to solve them

    Input-output Conformance Testing for Channel-based Service Connectors

    Get PDF
    Service-based systems are software systems composed of autonomous components or services provided by different vendors, deployed on remote machines and accessible through the web. One of the challenges of modern software engineering is to ensure that such a system behaves as intended by its designer. The Reo coordination language is an extensible notation for formal modeling and execution of service compositions. Services that have no prior knowledge about each other communicate through advanced channel connectors which guarantee that each participant, service or client, receives the right data at the right time. Each channel is a binary relation that imposes synchronization and data constraints on input and output messages. Furthermore, channels are composed together to realize arbitrarily complex behavioral protocols. During this process, a designer may introduce errors into the connector model or the code for their execution, and thus affect the behavior of a composed service. In this paper, we present an approach for model-based testing of coordination protocols designed in Reo. Our approach is based on the input-output conformance (ioco) testing theory and exploits the mapping of automata-based semantic models for Reo to equivalent process algebra specifications
    • 

    corecore