Results 1 - 10
of
34
The Ring of k-Regular 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 29 (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 product-machine for K processes; instead, it constructs a two-process product-machine f ..."
Abstract
-
Cited by 29 (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 product-machine for K processes; instead, it constructs a two-process product-machine 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.
An Object-Oriented Refinement Calculus with Modular Reasoning
, 1992
"... In this thesis, the refinement calculus is extended to support a variety of object-oriented programming styles. The late binding of procedure calls in object-oriented languages is modelled by defining an object-oriented 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 object-oriented programming styles. The late binding of procedure calls in object-oriented languages is modelled by defining an object-oriented 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 object-oriented 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 non-object-oriented systems and for object-oriented systems. This thesis gives the first formal definition of modular reasoning for object-oriented languages. Intuitively, the definition seems to capture the minimum possible requirements necessa...
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 n-vertex bipartite graph in time O (n 2 + n2"5/~.) = O (n2"5/log n), how to comp ..."
Abstract
-
Cited by 12 (4 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 n-vertex 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 depth-first and breadth-first search and how to compute strongly connected components and biconnected components in time O(n~. + n2/L), and how to solve the single source shortest-path 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.
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 Object-Oriented 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 History-only Sensiti ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
The term Inheritance Anomaly has been introduced into Object-Oriented 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 History-only 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 Object-Oriented 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 pair-program for every pair of "connected" processes, and analyze these pair-programs for desired correctness properties. We then take the "pair processes" of the pair-programs, 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 pair-programs. 1 Introduction We exhibit a method of automatically synthesizing ...
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 non-miraculous 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 non-miraculous 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
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 8 (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 one-dimensional spreading problem, prove its convergence to the equally spaced configuration and discusses its convergence rate in the synchronous and semi-synchronous 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 two-dimensional case and presents simulation results of its effectiveness.
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 high-level programming model and environm...
Enterprise: An Interactive Graphical Programming Environment For Distributed Software Development
, 1992
"... Workstation environments have been in use for more than a decade now. Although a network of workstations together represents a large amount of aggregate computing power, single users often cannot utilize these resources for their applications. Enterprise is a programming environment for designing, c ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
Workstation environments have been in use for more than a decade now. Although a network of workstations together represents a large amount of aggregate computing power, single users often cannot utilize these resources for their applications. Enterprise is a programming environment for designing, coding, debugging, testing, monitoring, profiling and executing programs in a distributed hardware environment. Enterprise code looks like familiar sequential code; the parallelism is expressed graphically. The system automatically inserts the code necessary to handle communication, synchronization and fault tolerance, allowing the rapid construction of correct distributed programs. Enterprise programs run on a network of computers, absorbing the idle cycles on machines. The system supports load balancing, limited process migration, and dynamic distribution of work in environments with changing resource utilization. Enterprise offers a costeffective method for increasing the productivity of p...

