The unsolvability of the Equivalence Problem for Λ-Free nondeterministic generalized machines
Journal of the ACM (JACM)
Characterizations of Pushdown Machines in Terms of Time-Bounded Computers
Journal of the ACM (JACM)
Complete problems for deterministic polynomial time
STOC '74 Proceedings of the sixth annual ACM symposium on Theory of computing
Computation: finite and infinite machines
Computation: finite and infinite machines
Formal languages and their relation to automata
Formal languages and their relation to automata
Dichotomization, reachability, and the forbidden subgraph problem(Extended Abstract)
STOC '76 Proceedings of the eighth annual ACM symposium on Theory of computing
A saturation method for the modal μ-calculus over pushdown systems
Information and Computation
Language design and analyzability: a retrospective
Software—Practice & Experience
Hi-index | 0.00 |
It has long been known that most questions of interest about the behavior of programs are recursively undecidable. These questions include whether a program will halt, whether two programs are equivalent, whether one is an optimized form of another, and so on. On the other hand, it is possible to make some or all of these questions decidable by suitably restricting the computational ability of the programming language under consideration. The Loop language of Meyer and Ritchie [MR], for example, has a decidable halting problem, but undecidable equivalence. Restricting the computational ability still further, virtually all of these questions are decidable for finite automata and generalized sequential machines (except that Griffiths [Gri] has shown equivalence undecidable for nondeterministic gsms).A natural question to ask is how hard it is to solve these problems for programming languages for which they are decidable, and it is with this area that we are concerned in this paper. In particular we describe a programming language modeled on current higher-level languages which has exactly the computational power of deterministic finite state transducers with final states, and analyze the space and time required to decide various questions of programming interest about the language. We find that questions about halting, equivalence, and optimization are already intractable for this very simple language. We also study extensions to the language such as simple arithmetic capabilities, arrays, and recursive subroutines with both call-by-value and call-by-name parameter passing mechanisms, some of which extend the capabilities of the language and/or increase the complexity of its decidable problems. In one case, that of recursion with call-by-name, the previously decidable questions are seen to become undecidable.