Results 1  10
of
39
The Ring of kRegular Sequences
, 1992
"... The automatic sequence is the central concept at the intersection of formal language theory and number theory. It was introduced by Cobham, and has been extensively studied by Christol, Kamae, Mendes France and Rauzy, and other writers. Since the range of automatic sequences is nite, however, their ..."
Abstract

Cited by 39 (7 self)
 Add to MetaCart
The automatic sequence is the central concept at the intersection of formal language theory and number theory. It was introduced by Cobham, and has been extensively studied by Christol, Kamae, Mendes France and Rauzy, and other writers. Since the range of automatic sequences is nite, however, their descriptive power is severely limited.
Synthesis of Concurrent Systems with Many Similar Processes
 ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS
, 1998
"... ... In this article, we show how to synthesize concurrent systems consisting of many (i.e., a finite but arbitrarily large number K of) similar sequential processes. Our approach avoids construction of the global productmachine for K processes; instead, it constructs a twoprocess productmachine f ..."
Abstract

Cited by 30 (12 self)
 Add to MetaCart
... In this article, we show how to synthesize concurrent systems consisting of many (i.e., a finite but arbitrarily large number K of) similar sequential processes. Our approach avoids construction of the global productmachine for K processes; instead, it constructs a twoprocess productmachine for a single pair of generic sequential processes. The method is uniform in K, providing a simple template that can be instantiated for each process to yield a solution for any fixed K. The method is also illustrated on synchronization problems from the literature.
Algorithms for dense graphs and networks on the random access computer, Algorithmica 15
, 1996
"... Abstract. We improve upon the running time of several graph and network algorithms when applied to dense graphs. In particular, we show how to compute on a machine with word size L = f2 (log n) a maximal matching in an nvertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to comp ..."
Abstract

Cited by 18 (5 self)
 Add to MetaCart
Abstract. We improve upon the running time of several graph and network algorithms when applied to dense graphs. In particular, we show how to compute on a machine with word size L = f2 (log n) a maximal matching in an nvertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to compute the transitive closure of a digraph with n vertices and m edges in time O(n 2 + nm/,k), how to solve the uncapacitated transportation problem with integer costs in the range [0..C] and integer demands in the range [U..U] in time O ((n 3 (log log / log n) 1/2 + n 2 log U) log nC), and how to solve the assignment problem with integer costs in the range [0..C] in time O(n 2"5 lognC/(logn/loglogn)l/4). Assuming a suitably compressed input, we also show how to do depthfirst and breadthfirst search and how to compute strongly connected components and biconnected components in time O(n~. + n2/L), and how to solve the single source shortestpath problem with integer costs in the range [0..C] in time O (n 2 (log C)/log n). For the transitive closure algorithm we also report on the experiences with an implementation. Key Words.
An ObjectOriented Refinement Calculus with Modular Reasoning
, 1992
"... In this thesis, the refinement calculus is extended to support a variety of objectoriented programming styles. The late binding of procedure calls in objectoriented languages is modelled by defining an objectoriented system to be a function from procedure names and argument values to the procedur ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
In this thesis, the refinement calculus is extended to support a variety of objectoriented programming styles. The late binding of procedure calls in objectoriented languages is modelled by defining an objectoriented system to be a function from procedure names and argument values to the procedures that are invoked by late binding. The first model allows multiple dispatch late binding, in the style of CLOS. This model is then specialised to the single dispatch case, giving a model that associates types with objects, which is similar to existing class based objectoriented languages. Both models are then restricted so that they support modular reasoning. The concept of modular reasoning has been defined informally in the literature, both for nonobjectoriented systems and for objectoriented systems. This thesis gives the first formal definition of modular reasoning for objectoriented languages. Intuitively, the definition seems to capture the minimum possible requirements necessa...
Guarded Methods vs. Inheritance Anomaly  Inheritance Anomaly Solved by Nested Guarded Method Calls
 ACM SIGPLAN Notices
, 1995
"... The term Inheritance Anomaly has been introduced into ObjectOriented Concurrent Programming (OOCP). It has also been shown how different kinds of synchronization mechanisms fall into one of the three anomalies. Guarded Methods are shown to be an inadequate tool to solve either Historyonly Sensiti ..."
Abstract

Cited by 12 (0 self)
 Add to MetaCart
The term Inheritance Anomaly has been introduced into ObjectOriented Concurrent Programming (OOCP). It has also been shown how different kinds of synchronization mechanisms fall into one of the three anomalies. Guarded Methods are shown to be an inadequate tool to solve either Historyonly Sensitive Anomaly or Modification of Acceptable States. This paper argues that any of the anomalies can be solved by Guarded Methods when a suitable semantics is found for it. The main contribution of the paper is the exposition that the concept of Guarded Methods, provided Guarded Methods are interpreted as Conditional Critical Regions, is an adequate language tool for expressing synchronization constraints in OOCP. Guarded Method based solutions are given for the above mentioned two cases of anomalies. 1 Introduction The concept of Inheritance Anomaly has been introduced into ObjectOriented Concurrent Programming (OOCP) in [MWY90] and further developed in [MY93, MTY93]. 1 It was shown that e...
Synthesis of Large Concurrent Programs via Pairwise Composition
 In CONCUR'99
, 1999
"... . We present a tractable method for synthesizing arbitrarily large concurrent programs from specifications expressed in temporal logic. Our method does not explicitly construct the global state transition diagram of the program to be synthesized, and thereby avoids state explosion. Instead, it cons ..."
Abstract

Cited by 11 (7 self)
 Add to MetaCart
. We present a tractable method for synthesizing arbitrarily large concurrent programs from specifications expressed in temporal logic. Our method does not explicitly construct the global state transition diagram of the program to be synthesized, and thereby avoids state explosion. Instead, it constructs a state transition diagram for each pair of component processes (of the program) that interact. This "pairprogram " embodies all possible interactions of the two processes. Our method proceeds in two steps. First, we construct a pairprogram for every pair of "connected" processes, and analyze these pairprograms for desired correctness properties. We then take the "pair processes" of the pairprograms, and "compose" them in a certain way to synthesize the large concurrent program. We establish a "large model" theorem which shows that the synthesized large program inherits correctness properties from the pairprograms. 1 Introduction We exhibit a method of automatically synthesizing ...
Local Algorithms for Autonomous Robot Systems
 In Proc. 13th Int. Colloq. on Structural Information and Communication Complexity, LNCS 4056
, 2006
"... Abstract. This paper studies local algorithms for autonomous robot systems, namely, algorithms that use only information of the positions of a bounded number of their nearest neighbors. The paper focuses on the spreading problem. It defines measures for the quality of spreading, presents a local alg ..."
Abstract

Cited by 9 (1 self)
 Add to MetaCart
Abstract. This paper studies local algorithms for autonomous robot systems, namely, algorithms that use only information of the positions of a bounded number of their nearest neighbors. The paper focuses on the spreading problem. It defines measures for the quality of spreading, presents a local algorithm for the onedimensional spreading problem, prove its convergence to the equally spaced configuration and discusses its convergence rate in the synchronous and semisynchronous settings. It then presents a local algorithm achieving the exact equally spaced configuration in finite time in the synchronous setting, and proves it is time optimal for local algorithms. Finally, the paper also proposes an algorithm for the twodimensional case and presents simulation results of its effectiveness.
Statement inversion and strongest postcondition
 Science of Computer Programming
, 1993
"... A notion of inverse commands is de ned for a language with a weakest precondition semantics, permitting both demonic and angelic nondeterminism as well as miracles and nontermination. Every conjunctive and terminating command is invertible, the inverse being nonmiraculous and disjunctive. A simulat ..."
Abstract

Cited by 8 (2 self)
 Add to MetaCart
A notion of inverse commands is de ned for a language with a weakest precondition semantics, permitting both demonic and angelic nondeterminism as well as miracles and nontermination. Every conjunctive and terminating command is invertible, the inverse being nonmiraculous and disjunctive. A simulation relation between commands is described using inverse commands. A generalized form of inverse is de ned for arbitrary conjunctive commands. The generalized inverses are shown to be closely related to strongest postconditions. 1
The Enterprise Model for Developing Distributed Applications
, 1992
"... Workstations have been in use for more than a decade now. Although a network of workstations represents a large amount of aggregate computing power, there is a need for software that can harness this power for single, distributed applications. Enterprise is an interactive graphical programming envir ..."
Abstract

Cited by 6 (4 self)
 Add to MetaCart
Workstations have been in use for more than a decade now. Although a network of workstations represents a large amount of aggregate computing power, there is a need for software that can harness this power for single, distributed applications. Enterprise is an interactive graphical programming environment for designing, coding, debugging, testing, monitoring, profiling and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code because the parallelism is expressed graphically and independently of the code. The system automatically inserts the code necessary to handle communication and synchronization, allowing the rapid construction of correct distributed programs. The system supports load balancing, limited process migration, and dynamic distribution of work in environments with changing resource utilization. Enterprise utilizes the combined power of a cluster of workstations by providing a highlevel programming model and environm...
Program Inversion in the Refinement Calculus
 Information Processing letters
, 1990
"... We present a calculational method for inverting programs by inverting the components separately. This is made possible by using assertions as commands and by permitting constructs that exhibit angelic nondeterminism. Rules are given for transforming inverted programs so that the angelic constructs a ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
We present a calculational method for inverting programs by inverting the components separately. This is made possible by using assertions as commands and by permitting constructs that exhibit angelic nondeterminism. Rules are given for transforming inverted programs so that the angelic constructs are removed. A simple example illustrates the method. 1 Introduction The idea of program inversion goes back to Dijkstra [8]. Informally speaking, inverting a program S means constructing a program T that works like the reverse of S . Thus T , supplied with some output of S , will calculate the corresponding input to S . Intuitively based rules for program inversion by calculation are given by Gries [9]. A formal definition of the concept of inverse program together with proof rules for inverting programs is given by Chen and Udding [6], who demonstrate the use of program inversion in formal program development. Both Dijkstra and Gries consider programs to be invertible only if they are func...