Results 1  10
of
35
What is a Recursive Module?
 In SIGPLAN Conference on Programming Language Design and Implementation
, 1999
"... A hierarchical module system is an effective tool for structuring large programs. Strictly hierarchical module systems impose an acyclic ordering on import dependencies among program units. This can impede modular programming by forcing mutuallydependent components to be consolidated into a single ..."
Abstract

Cited by 89 (5 self)
 Add to MetaCart
A hierarchical module system is an effective tool for structuring large programs. Strictly hierarchical module systems impose an acyclic ordering on import dependencies among program units. This can impede modular programming by forcing mutuallydependent components to be consolidated into a single module. Recently there have been several proposals for module systems that admit cyclic dependencies, but it is not clear how these proposals relate to one another, nor how one might integrate them into an expressive module system such as that of ML. To address this question we provide a typetheoretic analysis of the notion of a recursive module in the context of a "phasedistinction" formalism for higherorder module systems. We extend this calculus with a recursive module mechanism and a new form of signature, called a recursively dependent signature, to support the defmition of recursive modules. These extensions are justified by an interpretation in terms of more primitive language constructs. This interpretation may also serve as a guide for implementation.
Verification on Infinite Structures
, 2000
"... In this chapter, we present a hierarchy of infinitestate systems based on the primitive operations of sequential and parallel composition; the hierarchy includes a variety of commonlystudied classes of systems such as contextfree and pushdown automata, and Petri net processes. We then examine the ..."
Abstract

Cited by 80 (2 self)
 Add to MetaCart
In this chapter, we present a hierarchy of infinitestate systems based on the primitive operations of sequential and parallel composition; the hierarchy includes a variety of commonlystudied classes of systems such as contextfree and pushdown automata, and Petri net processes. We then examine the equivalence and regularity checking problems for these classes, with special emphasis on bisimulation equivalence, stressing the structural techniques which have been devised for solving these problems. Finally, we explore the model checking problem over these classes with respect to various linear and branchingtime temporal logics.
Complete Axioms for Categorical Fixedpoint Operators
 In Proceedings of 15th Annual Symposium on Logic in Computer Science
, 2000
"... We give an axiomatic treatment of fixedpoint operators in categories. A notion of iteration operator is defined, embodying the equational properties of iteration theories. We prove a general completeness theorem for iteration operators, relying on a new, purely syntactic characterisation of the fre ..."
Abstract

Cited by 31 (6 self)
 Add to MetaCart
We give an axiomatic treatment of fixedpoint operators in categories. A notion of iteration operator is defined, embodying the equational properties of iteration theories. We prove a general completeness theorem for iteration operators, relying on a new, purely syntactic characterisation of the free iteration theory. We then show how iteration operators arise in axiomatic domain theory. One result derives them from the existence of sufficiently many bifree algebras (exploiting the universal property Freyd introduced in his notion of algebraic compactness) . Another result shows that, in the presence of a parameterized natural numbers object and an equational lifting monad, any uniform fixedpoint operator is necessarily an iteration operator. 1. Introduction Fixed points play a central role in domain theory. Traditionally, one works with a category such as Cppo, the category of !continuous functions between !complete pointed partial orders. This possesses a leastfixedpoint oper...
Decidability of DPDA equivalence
, 1999
"... A proof of decidability of equivalence between deterministic pushdown automata is presented using a mixture of methods developed in concurrency and language theory. The technique appeals to a tableau proof system for equivalence of configurations of strict deterministic grammars. ..."
Abstract

Cited by 24 (2 self)
 Add to MetaCart
A proof of decidability of equivalence between deterministic pushdown automata is presented using a mixture of methods developed in concurrency and language theory. The technique appeals to a tableau proof system for equivalence of configurations of strict deterministic grammars.
On the Complexity of Bisimulation Problems for Pushdown Automata
 In Proceedings of IFIP TCS’2000, volume 1872 of LNCS
, 2000
"... All bisimulation problems for pushdown automata are at least PSPACEhard. In particular, we show that (1) Weak bisimilarity of pushdown automata and finite automata is PSPACEhard, even for a small fixed finite automaton, (2) Strong bisimilarity of pushdown automata and finite automata is PSPACEhar ..."
Abstract

Cited by 18 (7 self)
 Add to MetaCart
All bisimulation problems for pushdown automata are at least PSPACEhard. In particular, we show that (1) Weak bisimilarity of pushdown automata and finite automata is PSPACEhard, even for a small fixed finite automaton, (2) Strong bisimilarity of pushdown automata and finite automata is PSPACEhard, but polynomial for every fixed finite automaton, (3) Regularity (finiteness) of pushdown automata w.r.t. weak and strong bisimilarity is PSPACEhard.
Decidability of Bisimilarity for OneCounter Processes
, 1997
"... It is shown that bisimulation equivalence is decidable for the processes generated by (nondeterministic) pushdown automata where the pushdown behaves like a counter. Also finiteness up to bisimilarity is shown to be decidable for the mentioned processes. ..."
Abstract

Cited by 15 (1 self)
 Add to MetaCart
It is shown that bisimulation equivalence is decidable for the processes generated by (nondeterministic) pushdown automata where the pushdown behaves like a counter. Also finiteness up to bisimilarity is shown to be decidable for the mentioned processes.
Deciding DPDA Equivalence is Primitive Recursive
 IN PROCEEDINGS 29TH COLLOQIUM ON AUTOMATA, LANGUAGES AND PROGRAMMING, NUMBER 2380 IN LECTURE NOTES IN COMPUTER SCIENCE
, 2001
"... this paper I describe a simpler decision procedure that is determinisitic and that avoids the decomposition mechanism for termination (the rule CUT in [14] and the transformation TC in [12]). Instead, there is a new and simpler analysis of termination, centred on a new combinatorial result, "th ..."
Abstract

Cited by 15 (0 self)
 Add to MetaCart
this paper I describe a simpler decision procedure that is determinisitic and that avoids the decomposition mechanism for termination (the rule CUT in [14] and the transformation TC in [12]). Instead, there is a new and simpler analysis of termination, centred on a new combinatorial result, "the extension theorem". One consequence is that the syntax of the starting process calculus is not extended. Another consequence is a primitive recursive upper bound on the complexity of the procedure. Section 2 introduces the DPDA problem as a bisimulation equivalence problem. Section 3 describes some features of the process calculus in more detail. Finally, Section 4 introduces the deterministic tableau proof decision procedure
Programming With Types
 CORNELL UNIVERSITY
, 2002
"... Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection m ..."
Abstract

Cited by 11 (1 self)
 Add to MetaCart
Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection mechanisms so they may discover and interact with program interfaces dynamically. Runtime type analysis is also crucial for large, distributed systems that must be dynamically extended, because it allows those systems to check program invariants when new code and new forms of data are added. Finally, many generic userlevel algorithms for iteration, pattern matching, and unification can be defined through type analysis mechanisms. However, existing frameworks for runtime type analysis were designed for simple type systems. They do not scale well to the sophisticated type systems of modern and nextgeneration programming languages that include complex constructs such as firstclass abstract types, recursive types, objects, and type parameterization. In addition, facilities to support type analysis often require complicated