Latest Articles from JUCS - Journal of Universal Computer Science Latest 44 Articles from JUCS - Journal of Universal Computer Science https://lib.jucs.org/ Fri, 29 Mar 2024 00:24:22 +0200 Pensoft FeedCreator https://lib.jucs.org/i/logo.jpg Latest Articles from JUCS - Journal of Universal Computer Science https://lib.jucs.org/ Communication in Abstract State Machines https://lib.jucs.org/article/22976/ JUCS - Journal of Universal Computer Science 23(2): 129-145

DOI: 10.3217/jucs-023-02-0129

Authors: Egon Börger, Klaus-Dieter Schewe

Abstract: Up to recently the majority of applications of the Abstract State Machines method for design and verification of computational systems used the shared variable approach. However in particular with distributed systems only various forms of communication may be available to share information. We define communicating ASMs by using instead of shared locations an explicit, abstract concept of Sending/Receiving messages which can be added to existing ASM execution engines. We aim to provide a definition which is a conservative extension of traditional ASMs, uniformly captures synchronous and asynchronous communication and is not bound to any specific message passing mechanism but can be instantiated to the major communication concepts in the literature. We illustrate the concept by an application to synchronous and asynchronous networks of communicating processes.

HTML

XML

PDF

]]>
Research Article Tue, 28 Feb 2017 00:00:00 +0200
Abstract Data Types without the Types. Dedicated to David Turner on the occasion of his 70'th birthday https://lib.jucs.org/article/22908/ JUCS - Journal of Universal Computer Science 23(1): 5-20

DOI: 10.3217/jucs-023-01-0005

Authors: Philip Wadler

Abstract: The data abstraction mechanism of Miranda may be adapted to a dynamically typed programming language by applying ideas from gradual typing.

HTML

XML

PDF

]]>
Research Article Sat, 28 Jan 2017 00:00:00 +0200
Cross-Language Source Code Re-Use Detection Using Latent Semantic Analysis https://lib.jucs.org/article/23824/ JUCS - Journal of Universal Computer Science 21(13): 1708-1725

DOI: 10.3217/jucs-021-13-1708

Authors: Enrique Flores, Alberto Barrón-Cedeño, Lidia Moreno, Paolo Rosso

Abstract: Nowadays, Internet is the main source to get information from blogs, encyclopedias, discussion forums, source code repositories, and more resources which are available just one click away. The temptation to re-use these materials is very high. Even source codes are easily available through a simple search on the Web. There is a need of detecting potential instances of source code re-use. Source code re-use detection has usually been approached comparing source codes in their compiled version. When dealing with cross-language source code re-use, traditional approaches can deal only with the programming languages supported by the compiler. We assume that a source code is a piece of text ,with its syntax and structure, so we aim at applying models for free text re-use detection to source code. In this paper we compare a Latent Semantic Analysis (LSA) approach with previously used text re-use detection models for measuring cross-language similarity in source code. The LSA-based approach shows slightly better results than the other models, being able to distinguish between re-used and related source codes with a high performance.

HTML

XML

PDF

]]>
Research Article Mon, 28 Dec 2015 00:00:00 +0200
Deriving System Behavior from UML State Machine Diagram: Applied to Missile Project https://lib.jucs.org/article/22862/ JUCS - Journal of Universal Computer Science 19(1): 53-77

DOI: 10.3217/jucs-019-01-0053

Authors: Hyun-Seok Min, Sang-Mun Chung, Jin-Young Choi

Abstract: Traditionally, System Analysis and Software Design are treated as separate processes. Software Design is based on System Analysis but they have little direct relationship to each other. UML (Unified Modeling Language) is widely accepted by industry as the de facto standard for System Analysis and Software Design. The primary tool for System Analysis is the Use Case Diagram and its Scenarios, while the primary tools for Software Design are the Class Diagram and Sequence Diagram. State Machine Diagram is also very useful for behavioral modeling. Our aim is to derive system behavior from software design, so that separate processes can work together. This paper suggests how to make a system-wide State Machine Diagram by gathering State Machine Diagrams in the system using predefined Stereotypes and Synchronization/Externalization. The resulting system-wide State Machine Diagram can be used for various things, such as automatic test case generation for the system, deadlock detection, and Use Case scenario consistency checking. The proposed method is applied to the Missile project of ADD (Agency for Defense Development) in South Korea. The result is very promising. It is expected to be applied to more projects.

HTML

XML

PDF

]]>
Research Article Tue, 1 Jan 2013 00:00:00 +0200
Points-to Analysis: A Fine-Grained Evaluation https://lib.jucs.org/article/23982/ JUCS - Journal of Universal Computer Science 18(20): 2851-2878

DOI: 10.3217/jucs-018-20-2851

Authors: Jonas Lundberg, Welf Löwe

Abstract: Points-to analysis is a static program analysis that extracts reference information from programs, e.g., possible targets of a call and possible objects referenced by a field. Previous works evaluating different approaches to context-sensitive Pointsto analyses use coarse-grained precision metrics focusing on references between source code entities like methods and classes. Two typical examples of such metrics are the number of nodes and edges in a call-graph. These works indicate that context-sensitive analysis with a call-depth k = 1 only provides slightly better precision than contextinsensitive analysis. Moreover, these works could not find a substantial precision improvement when using the more expensive analyses with call-depth k < 1. The hypothesis in the present paper is that substantial differences between the contextsensitive approaches show if (and only if) the precision is measured by more fine-grained metrics focusing on individual objects (rather than methods and classes) and references between them. These metrics are justified by the many applications requiring such detailed object reference information. In order to experimentally validate our hypothesis we make a systematic comparison of ten different variants of context-sensitive Points-to analysis using different call-depths k

HTML

XML

PDF

]]>
Research Article Sat, 1 Dec 2012 00:00:00 +0200
Compositional Semantics of Dataflow Networks with Query-Driven Communication of Exact Values https://lib.jucs.org/article/29801/ JUCS - Journal of Universal Computer Science 16(18): 2629-2656

DOI: 10.3217/jucs-016-18-2629

Authors: Michal Konečný, Amin Farjudian

Abstract: We develop and study the concept of dataflow process networks as used for exampleby Kahn to suit exact computation over data types related to real numbers, such as continuous functions and geometrical solids. Furthermore, we consider communicating these exact objectsamong processes using protocols of a query-answer nature as introduced in our earlier work. This enables processes to provide valid approximations with certain accuracy and focusing on certainlocality as demanded by the receiving processes through queries. We define domain-theoretical denotational semantics of our networks in two ways: (1) directly, i. e. by viewing the whole network as a composite process and applying the process semantics introduced in our earlier work; and (2) compositionally, i. e. by a fixed-point construction similarto that used by Kahn from the denotational semantics of individual processes in the network. The direct semantics closely corresponds to the operational semantics of the network (i. e. it iscorrect) but very difficult to study for concrete networks. The compositional semantics enablescompositional analysis of concrete networks, assuming it is correct. We prove that the compositional semantics is a safe approximation of the direct semantics. Wealso provide a method that can be used in many cases to establish that the two semantics fully coincide, i. e. safety is not achieved through inactivity or meaningless answers. The results are extended to cover recursively-defined infinite networks as well as nested finitenetworks. A robust prototype implementation of our model is available.

HTML

XML

PDF

]]>
Research Article Tue, 28 Sep 2010 00:00:00 +0300
Semantics of Query-Driven Communication of Exact Values https://lib.jucs.org/article/29800/ JUCS - Journal of Universal Computer Science 16(18): 2597-2628

DOI: 10.3217/jucs-016-18-2597

Authors: Michal Konečný, Amin Farjudian

Abstract: We address the question of how to communicate among distributed processes valuessuch as real numbers, continuous functions and geometrical solids with arbitrary precision, yet efficiently. We extend the established concept of lazy communication using streams of approximants by introducing explicit queries. We formalise this approach using protocols of a query-answer nature. Such protocols enable processes to provide valid approximations with certain accuracy and focusing on certain locality as demanded by the receiving processes through queries. A lattice-theoretic denotational semantics of channel and process behaviour is developed. Thequery space is modelled as a continuous lattice in which the top element denotes the query demanding all the information, whereas other elements denote queries demanding partial and/or local information. Answers are interpreted as elements of lattices constructed over suitable domains of approximations to the exact objects. An unanswered query is treated as an error anddenoted using the top element. The major novel characteristic of our semantic model is that it reflects the dependency of answerson queries. This enables the definition and analysis of an appropriate concept of convergence rate, by assigning an effort indicator to each query and a measure of information content to eachanswer. Thus we capture not only what function a process computes, but also how a process transforms the convergence rates from its inputs to its outputs. In future work these indicatorscan be used to capture further computational complexity measures. A robust prototype implementation of our model is available.

HTML

XML

PDF

]]>
Research Article Tue, 28 Sep 2010 00:00:00 +0300
Realisability for Induction and Coinduction with Applications to Constructive Analysis https://lib.jucs.org/article/29794/ JUCS - Journal of Universal Computer Science 16(18): 2535-2555

DOI: 10.3217/jucs-016-18-2535

Authors: Ulrich Berger

Abstract: We prove the correctness of a formalised realisability interpretation of extensions of first-order theories by inductive and coinductive definitions in an untyped λ-calculus with fixed-points. We illustrate the use of this interpretation for program extraction by some simple examples in the area of exact real number computation and hint at further non-trivial applications in computable analysis.

HTML

XML

PDF

]]>
Research Article Tue, 28 Sep 2010 00:00:00 +0300
A Debugging System Based on Natural Semantics https://lib.jucs.org/article/29522/ JUCS - Journal of Universal Computer Science 15(14): 2836-2880

DOI: 10.3217/jucs-015-14-2836

Authors: Alberto Encina, Luis Llana, Fernando Rubio

Abstract: Due to the absence of side effects, reasoning about functional programsis simpler than reasoning about their imperative counterparts. However, because of the absence of practical debuggers, finding bugs in lazy functional languages has beenmore complex until quite recently. One of the easiest to use Haskell debuggers is Hood. Its behavior is based on the concept of observation of intermediate data structures.However, although using Hood can be simple when observing some structures, it is known that it can be hard to understand how it works when dealing with complexsituations. In fact, the author of Hood recognizes that it is necessary to formalize its behavior to explain better what should be expected, and also to allow to check whetherthe different implementations work properly. In this paper, we formalize the behavior of the Hood debugger by extending Sestoft'snatural semantics. Moreover, we also show how to derive an abstract machine including such debugging information. By doing so, we do not only provide a formal foundation,but we also provide an alternative method to implement debuggers. In fact, we have already made a prototype of the abstract machine presented in this paper.

HTML

XML

PDF

]]>
Research Article Sat, 1 Aug 2009 00:00:00 +0300
Checking Semantics Equivalence of MDA Transformations in Concurrent Systems https://lib.jucs.org/article/29477/ JUCS - Journal of Universal Computer Science 15(11): 2196-2224

DOI: 10.3217/jucs-015-11-2196

Authors: Paulo Barbosa, Franklin Ramalho, Jorge Figueiredo, Aniko Costa, Luis Gomes

Abstract: In a previous work we have proposed an extension to the four-layer MDAarchitecture promoting formal verification for semantics preserving model transformations. We analyzed semantics equivalence in transformations involving Platform Specific Models (PSM s). In this paper, considering concurrent systems domain, we show how this extended MDA architecture copes with the correctness verification of horizontal model transformations involving Platform Independent Models (PIM s). Our approach is supported by four formal techniques: behavioral equivalence relation, category the-ory, bisimulation and model-checking. This set of techniques allows the analysis of semantics equivalence between system model before and after transformation enablingthe decomposition of the system model into a set of concurrent sub-models, considered as components. The validation of our approach occurs in a net splitting operation,where PIM s are defined as Petri nets models according to the PNML metamodel with transformations representing formal operations in this domain.

HTML

XML

PDF

]]>
Research Article Mon, 1 Jun 2009 00:00:00 +0300
Disentangling Denotational Semantics Definitions https://lib.jucs.org/article/29268/ JUCS - Journal of Universal Computer Science 14(21): 3592-3607

DOI: 10.3217/jucs-014-21-3592

Authors: Fabio Tirelo, Roberto Bigonha, Joâo Saraiva

Abstract: Denotational semantics is a powerful technique to formally define programming languages. However, language constructs are not always orthogonal, so many semantic equations in a definition may have to be aware of unrelated constructs semantics. Current approaches for modularity in this formalism do not address this problem, providing, for this reason, tangled semantic definitions. This paper proposes an incremental approach for denotational semantic specifications, in which each step can either add new features or adapt existing equations, by means of a formal language based on function transformation and aspect weaving.

HTML

XML

PDF

]]>
Research Article Mon, 1 Dec 2008 00:00:00 +0200
On the Interaction of Advices and Raw Types in AspectJ https://lib.jucs.org/article/29264/ JUCS - Journal of Universal Computer Science 14(21): 3534-3555

DOI: 10.3217/jucs-014-21-3534

Authors: Fernando Rubbo, Rodrigo Machado, Álvaro Moreira, Leila Ribeiro, Daltro Nunes

Abstract: The latest versions of AspectJ, the most popular aspect-oriented extension for Java, must cope with the complex changes that occurred in the Java type system, specially with those that introduced type parameters for classes and methods. In this work we study the influence of raw types, i.e. parameterless instantiations of class types, over the semantics of an AspectJ-like language. As a result, we define an operational semantics and a type system for a calculus, named Raw Aspect Featherweight Generic Java (Raw-AFGJ), that represents a minimal aspect-oriented extension of Raw Featherweight Generic Java. Through our calculus it is possible to achieve a better understanding of several subtleties of aspect weaving with the restrictions imposed by raw types support in the type system.

HTML

XML

PDF

]]>
Research Article Mon, 1 Dec 2008 00:00:00 +0200
Using Visitor Patterns in Object-Oriented Action Semantics https://lib.jucs.org/article/28815/ JUCS - Journal of Universal Computer Science 13(6): 891-919

DOI: 10.3217/jucs-013-06-0891

Authors: André Maidl, Claudio Carvilhe, Martin Musicante

Abstract: Object-Oriented Action Semantics is a semantic framework for the definition of programming languages. The framework incorporates some object-oriented concepts to the Action Semantics formalism. Its main goal is to obtain more readable and reusable semantic specifications. ObjectOriented Action Semantics provides support for the definition of syntax-independent specifications, due to the way its classes are written. In a previous work, a library of classes (called LFL) was developed to improve specification reuse and to provide a way to describe semantic concepts, independent from the syntax of the programming language. This paper aims to address some problematic aspects of LFL, and presents a case study, where a specification is built by using the Visitor Pattern technique. The use of this pattern allows a clear separation between the syntax of a programming language and its different semantic aspects.

HTML

XML

PDF

]]>
Research Article Thu, 28 Jun 2007 00:00:00 +0300
Constructive Failure in Functional-Logic Programming: From Theory to Implementation https://lib.jucs.org/article/28701/ JUCS - Journal of Universal Computer Science 12(11): 1574-1593

DOI: 10.3217/jucs-012-11-1574

Authors: Jaime Sánchez-Hernández

Abstract: Functional-logic programming amalgamates some of the main features of both functional and logic styles into a single paradigm. Nevertheless, negation is a widely investigated feature in logic programming that has not received much attention in such programming style. It is not difficult to incorporate some kind of negation as finite failure for ground goals, but we are interested in a constructive version able to deal with non-ground goals. With this aim, in previous works we have built a formal framework for checking (finite) failure of reduction. In this paper we adapt it for implementing a prototype for a functional-logic language with constructive failure as the natural counterpart to negation in logic programming.

HTML

XML

PDF

]]>
Research Article Tue, 28 Nov 2006 00:00:00 +0200
Process Equivalences as Global Bisimulations https://lib.jucs.org/article/28698/ JUCS - Journal of Universal Computer Science 12(11): 1521-1550

DOI: 10.3217/jucs-012-11-1521

Authors: David Escrig, Carlos Rodríguez

Abstract: Bisimulation can be defined in a simple way using coinductive methods, and has rather pleasant properties. Ready similarity was proposed by Meyer et al. as a way to weakening the bisimulation equivalence thus getting a semantics defined in a similar way, but supported for more reasonable (weaker) observational properties. Global bisimulations were introduced by Frutos et al. in order to study different variants of non-determinism getting, in particular, a semantics under which the internal choice operator becomes associative. Global bisimulations are defined as plain bisimulations but allowing the use of new moves, called global transitions, that can change the processes not only locally in its head, but anywhere. Now we are continuing the study of global bisimulation but focusing on the way different semantics can be characterised as global bisimulation semantics. In particular, we have studied ready similarity, on the one hand because it was proposed as the strongest reasonable semantics weaker than bisimulation; on the other hand, because ready similarity was not directly defined as an equivalence relation but as the nucleus of an order relation, and this open the question whether it is also possible to define it as a symmetric bisimulation-like semantics. We have got a simple and elegant characterisation of ready similarity as a global bisimulation semantics, that provides a direct symmetric characterisation of it as an equivalence relation, without using any order as intermediate concept. Besides, we have found that it is not necessary to start from a simulation based semantics to get an equivalent global bisimulation. What has proved to be very useful is the axiomatic characterisation of the semantics. Following these ideas we have got also global bisimulation for several semantics, including refusals and traces. That provides a general framework that allows to relate both intensional and extensional semantics.

HTML

XML

PDF

]]>
Research Article Tue, 28 Nov 2006 00:00:00 +0200
Behavioral Institutions and Refinements in Generalized Hidden Logics https://lib.jucs.org/article/28648/ JUCS - Journal of Universal Computer Science 12(8): 1020-1049

DOI: 10.3217/jucs-012-08-1020

Authors: Manuel Martins

Abstract: We investigate behavioral institutions and refinements in the context of the object oriented paradigm. The novelty of our approach is the application of generalized abstract algebraic logic theory of hidden heterogeneous deductive systems (called hidden k-logics) to the algebraic specification of object oriented programs. This is achieved through the Leibniz congruence relation and its combinatorial properties. We reformulate the notion of hidden k-logic as well as the behavioral logic of a hidden k-logic as institutions. We define refinements as hidden signature morphisms having the extra property of preserving logical consequence. A stricter class of refinements, the ones that preserve behavioral consequence, is studied. We establish sufficient conditions for an ordinary signature morphism to be a behavioral refinement.

HTML

XML

PDF

]]>
Research Article Mon, 28 Aug 2006 00:00:00 +0300
Defining Atomic Composition in UML Behavioral Diagrams https://lib.jucs.org/article/28643/ JUCS - Journal of Universal Computer Science 12(7): 958-979

DOI: 10.3217/jucs-012-07-0958

Authors: Júlio Machado, Paulo Menezes

Abstract: UML may be used to describe both the structure and behavior of objectoriented systems using a combination of notations. For the modeling of the dynamic behavior, a number of different models are offered such as interaction, state and activity diagrams. Although compositional techniques for modeling computational processes demand means of composing elements both in non-atomic or atomic ways, UML seems to lack compositional constructs for defining atomic composites. We discuss proper extensions for diagrams that are able to cope with the concept of atomic composition as the basic element for describing transactions (in our settings the term "transaction" denotes a certain operation of a system that might be atomically composed by many, possibly concurrent, operations). Atomic compositions are then formally defined through a special morphism between automata in a domain called Nonsequential Automata.

HTML

XML

PDF

]]>
Research Article Fri, 28 Jul 2006 00:00:00 +0300
Type-safe Versioned Object Query Language https://lib.jucs.org/article/28642/ JUCS - Journal of Universal Computer Science 12(7): 938-957

DOI: 10.3217/jucs-012-07-0938

Authors: Rodrigo Machado, Álvaro Moreira, Renata Galante, Mirella Moro

Abstract: The concept of versioning was initially proposed for controlling design evolution on computer aided design and software engineering. On the context of database systems, versioning is applied for managing the evolution of different elements of the data. Modern database systems provide not only powerful data models but also complex query languages that have evolved to include several features from complex programming languages. While most related work focuses on different aspects of the concepts, designing models, and processing of versions efficiently, there is yet to be a formal definition of a query language for database systems with versions control. In this work we propose a query language, named Versioned Object Query Language (VOQL), that extends ODMG Object Query Language (OQL) with new features to recover object versions. We provide a precise definition of VOQL through a type system and we prove it safe in relation to a small-step operational semantics. Finally, we validate the proposed definition by implementing an interpreter for VOQL.

HTML

XML

PDF

]]>
Research Article Fri, 28 Jul 2006 00:00:00 +0300
Modular Verification of a Component-Based Actor Language https://lib.jucs.org/article/28493/ JUCS - Journal of Universal Computer Science 11(10): 1695-1717

DOI: 10.3217/jucs-011-10-1695

Authors: Marjan Sirjani, Frank De Boer, Ali Movaghar

Abstract: Rebeca is an actor­based language for modeling concurrent and distributed systems as a set of reactive objects which communicate via asynchronous message passing. Rebeca is extended to support synchronous communication, and at the same time components are introduced to encapsulate the tightly coupled reactive objects which may communicate by synchronous messages. This provide us a language for modeling globally asynchronous and locally synchronous systems. Components interact only by asynchronous messages. This feature and also the event-driven nature of the computation are exploited to introduce a modular verification approach in order to overcome the state explosion problem in model checking. In this paper we elaborate on the corresponding theory of the modular verification approach which is based on the formal semantics of components in extended Rebeca.

HTML

XML

PDF

]]>
Research Article Fri, 28 Oct 2005 00:00:00 +0300
Signals and Comonads https://lib.jucs.org/article/28448/ JUCS - Journal of Universal Computer Science 11(7): 1310-1326

DOI: 10.3217/jucs-011-07-1311

Authors: Tarmo Uustalu, Tarmo Vene

Abstract: We propose a novel discipline for programming stream functions and for the semantic description of stream manipulation languages based on the observation that both general and causal stream functions can be characterized as coKleisli arrows of comonads. This seems to be a promising application for the old, but very little exploited idea that if monads abstract notions of computation of a value, comonads ought to be useable as an abstraction of notions of value in a context. We also show that causal partial-stream functions can be described in terms of a combination of a comonad and a monad.

HTML

XML

PDF

]]>
Research Article Thu, 28 Jul 2005 00:00:00 +0300
A Formal Semantics for Finalizers https://lib.jucs.org/article/28441/ JUCS - Journal of Universal Computer Science 11(7): 1198-1214

DOI: 10.3217/jucs-011-07-1198

Authors: Marcus Leal, Roberto Ierusalimschy

Abstract: Automatic finalization is a common but inherently complex language facility that makes the garbage collection process semantically visible to client programs. With finalizers, memory management becomes more flexible, and garbage collectors can be used to recycle other resources in addition to memory. Formal language models usually ignore garbage collection, and therefore are unable to properly describe finalization. In this paper we use an operational approach to develop a new abstract model that explicitly represents memory management actions in a garbage­collected programming language based on the λ­calculus. We formally state and prove several important properties related to memory management, and employ the model to describe and explore a semantics for finalizers.

HTML

XML

PDF

]]>
Research Article Thu, 28 Jul 2005 00:00:00 +0300
A Constructive Approach to Language Definition https://lib.jucs.org/article/28434/ JUCS - Journal of Universal Computer Science 11(7): 1117-1134

DOI: 10.3217/jucs-011-07-1117

Authors: Peter Mosses

Abstract: Most approaches to formal semantics are based on the assumption that all the constructs of a language are defined together. The details of the definition of each construct can (and usually do) depend on which other constructs are included in the given language. This limits reuse of definitions of common constructs. With the more constructive approach proposed here, the semantics of each basic abstract programming construct is defined separately and independently. The semantics of a full language is obtained by translating its constructs into the basic abstract constructs, whose definitions are thus reused verbatim. The frameworks of Modular SOS and Action Semantics can both be used in conjunction with the proposed approach. Some illustrations are given.

HTML

XML

PDF

]]>
Research Article Thu, 28 Jul 2005 00:00:00 +0300
Precise Modelling of Compensating Business Transactions and its Application to BPEL https://lib.jucs.org/article/28405/ JUCS - Journal of Universal Computer Science 11(5): 712-743

DOI: 10.3217/jucs-011-05-0712

Authors: Michael Butler, Carla Ferreira, Muan Ng

Abstract: We describe the StAC language which can be used to specify the orchestration of activities in long running business transactions. Long running business transactions use compensation to cope with exceptions. StAC supports sequential and parallel behaviour as well as exception and compensation handling. We also show how the B notation may be combined with StAC to specify the data aspects of transactions. The combination of StAC and B provides a rich formal notation which allows for succinct and precise specification of business transactions. BPEL is an industry standard language for specifying business transactions and includes compensation constructs. We show how a substantial subset of BPEL can be mapped to StAC thus demonstrating the expressiveness of StAC and providing a formal semantics for BPEL.

HTML

XML

PDF

]]>
Research Article Sat, 28 May 2005 00:00:00 +0300
Synchronization Can Improve Reactive Systems Control and Modularity https://lib.jucs.org/article/28313/ JUCS - Journal of Universal Computer Science 10(10): 1429-1468

DOI: 10.3217/jucs-010-10-1429

Authors: Cristina Seceleanu, Tiberiu Seceleanu

Abstract: We concentrate on two major aspects of reactive system design: behavior control and modularity. These are studied from a formal point of view, within the framework of action systems. The traditional interleaving paradigm is completed with a barrier synchronization mechanism. This is achieved by introducing a new parallel composition operator, applicable to bot h discrete and hybrid models. While offering improvements with respect to control and modularity, the approach uses the correctness preserving mechanisms provided by the underlying reasoning environment 1. 1) A shorter version of this study appeared as "Modular Design of Reactive Systems", in Proceedings of the 28th Annual International Computer Software and Applications Conference (COMPSAC 2004), IEEE Computer Society Press, September 2004, Hong Kong. Pages 265-271.

HTML

XML

PDF

]]>
Research Article Thu, 28 Oct 2004 00:00:00 +0300
A Formal Model of Forth Control Words in the Pi-Calculus https://lib.jucs.org/article/28299/ JUCS - Journal of Universal Computer Science 10(9): 1272-1293

DOI: 10.3217/jucs-010-09-1272

Authors: James Power, David Sinclair

Abstract: In this paper we develop a formal specification of aspects of the Forth programming language. We describe the operation of the Forth compiler as it translates XSForth control words, dealing in particular with the interpretation of immediate words during compilation. Our goal here is to provide a basis for the study of safety properties of embedded systems, many of which are constructed using Forth or Forth-like languages. To this end we construct a model of the Forth compiler in the -calculus, and have simulated its execution by animating this model using the Pict programming language.

HTML

XML

PDF

]]>
Research Article Tue, 28 Sep 2004 00:00:00 +0300
A Relational Model for Component Interconnection https://lib.jucs.org/article/28259/ JUCS - Journal of Universal Computer Science 10(7): 808-823

DOI: 10.3217/jucs-010-07-0808

Authors: Marco Barbosa, Luís Barbosa

Abstract: The basic motivation of component based development is to replace conventional programming by the composition of reusable off-the-shelf units, externally coordinated through a network of connecting devices, to achieve a common goal. This paper introduces a new relational model for software connectors and discusses some preliminary work on its implementation in HASKELL. The proposed model adopts a coordination point of view in order to deal with components' temporal and spatial decoupling and, therefore, to provide support for looser levels of inter-component dependency and effective external control.

HTML

XML

PDF

]]>
Research Article Wed, 28 Jul 2004 00:00:00 +0300
A Modular Rewriting Semantics for CML https://lib.jucs.org/article/28258/ JUCS - Journal of Universal Computer Science 10(7): 789-807

DOI: 10.3217/jucs-010-07-0789

Authors: Fabricio Chalub, Christiano Braga

Abstract: This paper presents a modular rewriting semantics (MRS) specification for Reppy's Concurrent ML (CML), based on Peter Mosses' modular structural operational semantics specification for CML. A modular rewriting semantics specification for a programming language is a rewrite theory in rewriting logic written using techniques that support the modular development of the specification in the precise sense that every module extension is conservative. We show that the MRS of CML can be used to interpret CML programs using the rewrite engine of the Maude system, a high-performance implementation of rewriting logic, and to verify CML programs using Maude's built-in LTL model checker. It is assumed that the reader is familiar with basic concepts of structural operational semantics and algebraic specifications.

HTML

XML

PDF

]]>
Research Article Wed, 28 Jul 2004 00:00:00 +0300
Defining a Formal Coalgebraic Semantics for The Rosetta Specification Language https://lib.jucs.org/article/28135/ JUCS - Journal of Universal Computer Science 9(11): 1322-1349

DOI: 10.3217/jucs-009-11-1322

Authors: Cindy Kong, Perry Alexander, Catherine Menon

Abstract: Rosetta is a systems level design language that allows algebraic specification of systems through facets. The usual approach to formally describe a specification is to define an algebra that satisfies the specification. Although it is possible to formally describe Rosetta facets with the use of algebras, we choose to use the dual of algebra, i.e. coalgebra, to do so. Coalgebras are particularly suited for describing state-based systems. This makes formally defining state-based Rosetta quite straightforward. For non-state-based Rosetta, the formalization is not as direct, but can still be done with coalgebras by focusing on the behaviors of systems specified. We use denotational semantics to map Rosetta syntactic constructs into a language understood by the coalgebras.

HTML

XML

PDF

]]>
Research Article Fri, 28 Nov 2003 00:00:00 +0200
Object-Oriented Action Semantics Specifications https://lib.jucs.org/article/28091/ JUCS - Journal of Universal Computer Science 9(8): 910-934

DOI: 10.3217/jucs-009-08-0910

Authors: Claudio Carvilhe, Martin Musicante

Abstract: Action Semantics is a framework for the formal specification of programming languages. Two different, recently proposed approaches provide modularity to the framework, allowing for specification reusability and extension. In this work, we analyze the previous approaches, and introduce Object-Oriented Action Semantics, a new form of modular organization of Action Semantics descriptions. Object-oriented Action Semantics does not modify the syntax in which actions are written, the addition of object-oriented features (like classes and objects) is done as an upper layer to the semantic entities and functions. A simple Pascal-like, imperative programming language is described using the formalism. The extension and reuse capabilities of Object_Oriented Action Semantics are demonstrated by adding new features to the description. The semantics of the object-oriented action notation is also presented.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
Towards a Calculus of State-based Software Components https://lib.jucs.org/article/28090/ JUCS - Journal of Universal Computer Science 9(8): 891-909

DOI: 10.3217/jucs-009-08-0891

Authors: Luís Barbosa

Abstract: This paper introduces a calculus of state-based software components modelled as concrete coalgebras for some Set endofunctors, with specified initial conditions. The calculus is parametrized by a notion of behaviour, introduced as a strong (usually commutative) monad. The proposed component model and calculus are illustrated through the characterisation of a particular class of components, classified as separable, which includes the ones arising in the so-called model oriented approach to systems design.

HTML

XML

PDF

]]>
Research Article Thu, 28 Aug 2003 00:00:00 +0300
The Origins and the Development of the ASM Method for High Level System Design and Analysis https://lib.jucs.org/article/27843/ JUCS - Journal of Universal Computer Science 8(1): 2-74

DOI: 10.3217/jucs-008-01-0002

Authors: Egon Börger

Abstract: The research belonging to the Abstract State Machines approach to system design and analysis is surveyed and documented in an annotated ASM bibliography. The survey covers the period from 1984, when the idea for the concept of ASMs (under the name dynamic or evolving algebras or structures) appears for the first time in a foundational context, to the year 2001 where a mathematically well-founded, practical system development method based upon the notion of ASMs is in place and ready to be industrially deployed. Some lessons for the future of ASMs are drawn.

HTML

XML

PDF

]]>
Research Article Mon, 28 Jan 2002 00:00:00 +0200
Formal Definition of SDL-2000 - Compiling and Running SDL Specifications as ASM Models https://lib.jucs.org/article/27835/ JUCS - Journal of Universal Computer Science 7(11): 1024-1049

DOI: 10.3217/jucs-007-11-1024

Authors: Robert Eschbach, Uwe Glässer, Reinhard Gotzhein, Martin Löwis, Andreas Prinz

Abstract: In November 1999, the current version of SDL (Specification and Description Language), commonly referred to as SDL-2000, has passed ITU-T, an international standardization body for telecommunication. The importance and acceptance of SDL in the telecommunication industry surpasses that of UML, which can be seen as the major competitor. A crucial difference between SDL and UML is the existence of a formal SDL semantics as part of the international standard, which has a positive impact on the quality of the entire language definition. In this paper, we treat fundamental questions concerning practicability, adequacy and maintainability of the formalization approach, provide insights into the formal semantics definition and point out several effects on the SDL standard.

HTML

XML

PDF

]]>
Research Article Wed, 28 Nov 2001 00:00:00 +0200
Verification of ASM Refinements Using Generalized Forward Simulation https://lib.jucs.org/article/27832/ JUCS - Journal of Universal Computer Science 7(11): 952-979

DOI: 10.3217/jucs-007-11-0952

Authors: Gerhard Schellhorn

Abstract: This paper describes a generic proof method for the correctness of refinements of Abstract State Machines based on commuting diagrams. The method generalizes forward simulations from the refinement of I/O automata by allowing arbitrary m:n diagrams, and by combining it with the refinement of data structures.

HTML

XML

PDF

]]>
Research Article Wed, 28 Nov 2001 00:00:00 +0200
Partial Updates: Exploration https://lib.jucs.org/article/27830/ JUCS - Journal of Universal Computer Science 7(11): 917-951

DOI: 10.3217/jucs-007-11-0917

Authors: Yuri Gurevich, Nikolai Tillmann

Abstract: The partial update problem for parallel abstract state machines has manifested itself in the cases of counters, sets and maps. We propose a solution of the problem that lends itself to an efficient implementation and covers the three cases mentioned above. There are other cases of the problem that require a more general framework.

HTML

XML

PDF

]]>
Research Article Wed, 28 Nov 2001 00:00:00 +0200
The Transition from VDL to VDM https://lib.jucs.org/article/27810/ JUCS - Journal of Universal Computer Science 7(8): 631-640

DOI: 10.3217/jucs-007-08-0631

Authors: Cliff Jones

Abstract: This paper describes (one person's view of) how the Vienna Development Method grew out of the earlier work on the Vienna Definition Language. Both of these activities were undertaken at the IBM Laboratory Vienna during the 1960s and 70s.

HTML

XML

PDF

]]>
Research Article Tue, 28 Aug 2001 00:00:00 +0300
Correctness of Efficient Real-Time Model Checking https://lib.jucs.org/article/27773/ JUCS - Journal of Universal Computer Science 7(2): 194-209

DOI: 10.3217/jucs-007-02-0194

Authors: Wolfgang Reif, Gerhard Schellhorn, Tobias Vollmer, Jürgen Ruf

Abstract: In this paper we describe the formal specification and verification of an efficient algorithm based on bitvectors for real-time model checking with the KIV system. We demonstrate that the verification captures the essentials of the C++ algorithm as implemented in the RAVEN model checker. Verification revealed several possibilities to reduce the size of the code and to improve its efficiency.

HTML

XML

PDF

]]>
Research Article Wed, 28 Feb 2001 00:00:00 +0200
Mixed Relations as Enriched Semiringal Categories https://lib.jucs.org/article/27636/ JUCS - Journal of Universal Computer Science 6(1): 112-129

DOI: 10.3217/jucs-006-01-0112

Authors: Radu Grosu, Dorel Lucanu, Gheorghe Stefanescu

Abstract: A study of the classes of finite relations as enriched strict monoidal categories is presented in [CaS91]. The relations there are interpreted as connections in flowchart schemes, hence an angelic theory of relations is used. Finite relations may be used to model the connections between the components of dataflow networks [BeS98, BrS96], as well. The corresponding algebras are slightly different enriched strict monoidal categories modeling a forward-demonic theory of relations. In order to obtain a full model for parallel programs one needs to mix control and reactive parts, hence a richer theory of finite relations is needed. In this paper we (1) define a model of such mixed finite relations, (2) introduce enriched (weak) semiringal categories as an abstract algebraic model for these relations, and (3) show that the initial model of the axiomatization (it always exists) is isomorphic to the defined one of mixed relations. Hence the axioms gives a sound and complete axiomatization for the these relations. 1 C.S.Calude and G.Stefanescu (eds.). Automata, Logic, and Computability. Special issue dedicated to Professor Sergiu Rudeanu Festschrift.

HTML

XML

PDF

]]>
Research Article Fri, 28 Jan 2000 00:00:00 +0200
Behavioural Coherence in Object-Oriented Algebraic Specification https://lib.jucs.org/article/27633/ JUCS - Journal of Universal Computer Science 6(1): 74-96

DOI: 10.3217/jucs-006-01-0074

Authors: Razvan Diaconescu, Kokichi Futatsugi

Abstract: We extend the classical hidden algebra formalism by a re-arrangement of the basic concepts. This re-arrangement of the hidden algebra formalism permits an extension to novel concepts which bring new practical strength to the specification and verification methodologies. The main novel concept, which constitutes the core of this work, is that of behavioural coherence, which is essentially a property of preservation of behavioural structures. We define this concept and study its main denotational and computational properties, and also show how the extension of hidden algebra with behavioural coherence still accommodates the coinduction proof method advocated by classical hidden algebra and, very importantly, permits operations with several hidden sorts in the arity. The emphasis of this paper is however on the methodologies related to behavioural coherence. We present the basic methodologies of behavioural coherence by means of examples actually run under the system, including many proofs with the system exiled to appendices. 1 C.S.Calude and G.Stefanescu (eds.). Automata, Logic, and Computability. Special issue dedicated to Professor Sergiu Rudeanu Festschrift.

HTML

XML

PDF

]]>
Research Article Fri, 28 Jan 2000 00:00:00 +0200
Abstract State Machine Semantics of SDL https://lib.jucs.org/article/27446/ JUCS - Journal of Universal Computer Science 3(12): 1382-1414

DOI: 10.3217/jucs-003-12-1382

Authors: Uwe Glaesser, Rene Karges

Abstract: Based on the ITU-T Recommendation Z.100 [27]---also known as SDL-92--- we define a formal semantic model of the dynamic properties of Basic SDL in terms of an abstract SDL machine. More precisely, we use the concept of multi-agent realtime ASM [17] as a semantic platform on top of which we construct our mathematical description. The resulting interpretation model is not only mathematically precise but also reflects the common understanding of SDL in a direct and intuitive manner; it provides a concise and understandable representation of the complete dynamic semantics of Basic SDL. Moreover, the model can easily be extended and modified---a particularly important issue for an evolving technical standard. In this article, we consider all relevant aspects concerning the behavior of channels, processes and timers with respect to signal transfer operations and timer operations. The model we obtain is intended as a basis for formal documentation as well as for executable high-level SDL specifications.

HTML

XML

PDF

]]>
Research Article Sun, 28 Dec 1997 00:00:00 +0200
MONSTR II - Suspending Semantics and Independence https://lib.jucs.org/article/27380/ JUCS - Journal of Universal Computer Science 3(7): 756-802

DOI: 10.3217/jucs-003-07-0756

Authors: Richard Banach

Abstract: The suspending semantic model for the execution of the MONSTR generali sed term graph rewriting language is defined. This is the canonical operational semantic model for the MONSTR language. Its correctness with respect to DACTL semantics is discussed, a nd a number of general theorems on the soundness of suspending executions with respec t to DACTL semantics are proved. General theorems are proved about the independence of susp ending primitive actions, which are useful in the verification of MONSTR systems.

HTML

XML

PDF

]]>
Research Article Mon, 28 Jul 1997 00:00:00 +0300
The Formal Specification of Oberon https://lib.jucs.org/article/27360/ JUCS - Journal of Universal Computer Science 3(5): 443-503

DOI: 10.3217/jucs-003-05-0443

Authors: Philipp Kutter, Alfonso Pierantonio

Abstract: This paper presents the formal specification of the programming language Oberon. Using Montages we give a description of syntax, static, and dynamic semantics of all constructs of the language. The specification is arranged in five refinement steps, each of them results in a working sub-language of Oberon. The compactness and readability of the specification make us believe that it can be used for a reference manual.

HTML

XML

PDF

]]>
Research Article Wed, 28 May 1997 00:00:00 +0300
Montages Specifications of Realistic Programming Languages https://lib.jucs.org/article/27359/ JUCS - Journal of Universal Computer Science 3(5): 416-442

DOI: 10.3217/jucs-003-05-0416

Authors: Philipp Kutter, Alfonso Pierantonio

Abstract: Montages are a new way of describing all aspects of programming languages formally. Such specifications are intelligible for a broad range of people involved in programming language design and use. In order to enhance readability we combine visual and textual elements to yield specifications similar in structure, length, and complexity to those in common language manuals, but with a formal semantics. The formal semantics is based on Gurevich's Abstract State Machines (formerly called Evolving Algebras).

HTML

XML

PDF

]]>
Research Article Wed, 28 May 1997 00:00:00 +0300
MONSTR I - Fundamental Issues and the Design of MONSTR https://lib.jucs.org/article/27233/ JUCS - Journal of Universal Computer Science 2(4): 164-216

DOI: 10.3217/jucs-002-04-0164

Authors: Richard Banach

Abstract: This is the first in a series of papers dealing with the implementation of an extended term graph rewriting model of computation (described by the DACTL language) on a distributed store architecture. In this paper we set out the high level model, and under some simple restrictions, prove an abstract packet store implementation correct modulo garbage. The abstract packet store model is compared to a more realistic and finegrained packet store model, more closely related to the properties of a genuine distributed store architecture, and the differences are used to inspire the definition of the MONSTR sublanguage of DACTL, intended for direct execution on the machine. Various alternative operational semantics for MONSTR are proposed to reflect more closely the finegrained packet store model, and the prospects for establishing correctness are discussed. The detailed treatment of the alternative models, in the context of suitable sublanguages of MONSTR where appropriate, are subjects for subsequent papers.

HTML

XML

PDF

]]>
Research Article Sun, 28 Apr 1996 00:00:00 +0300
A Translation of the Pi-Calculus Into MONSTR https://lib.jucs.org/article/27130/ JUCS - Journal of Universal Computer Science 1(6): 339-398

DOI: 10.3217/jucs-001-06-0339

Authors: Richard Banach, J. Balázs, George Papadopoulos

Abstract: A translation of the pi-calculus into the MONSTR graph rewriting language is described and proved correct. The translation illustrates the heavy cost in practice of faithfully implementing the communication primitive of the pi-calculus and similar process calculi. It also illustrates the convenience of representing an evolving network of communicating agents directly within a graph manipulation formalism, both because the necessity to use delicate notions of bound variables and of scopes is avoided, and also because the standard model of graphs in set theory automatically yields a useful semantics for the process calculus. The correctness proof illustrates many features typically encountered in reasoning about graph rewriting systems, and particularly how serialisation techniques can be used to reorder an arbitrary execution into one having stated desirable properties.

HTML

XML

PDF

]]>
Research Article Wed, 28 Jun 1995 00:00:00 +0300