Results 1  10
of
13
Simple and efficient purely functional queues and deques
 JOURNAL OF FUNCTIONAL PROGRAMMING
, 1995
"... We present purely functional implementations of queues and doubleended queues (deques) requiring only O(1) time per operation in the worst case. Our algorithms are considerably simpler than previous designs with the same bounds. The inspiration for our approach is the incremental behavior of certai ..."
Abstract

Cited by 25 (6 self)
 Add to MetaCart
We present purely functional implementations of queues and doubleended queues (deques) requiring only O(1) time per operation in the worst case. Our algorithms are considerably simpler than previous designs with the same bounds. The inspiration for our approach is the incremental behavior of certain functions on lazy lists.
Pure versus Impure Lisp
, 1996
"... : The aspect of purity versus impurity that we address involves the absence versus presence of mutation: the use of primitives (RPLACA and RPLACD in Lisp, setcar! and setcdr! in Scheme) that change the state of pairs without creating new pairs. It is well known that cyclic list structures can be c ..."
Abstract

Cited by 17 (0 self)
 Add to MetaCart
: The aspect of purity versus impurity that we address involves the absence versus presence of mutation: the use of primitives (RPLACA and RPLACD in Lisp, setcar! and setcdr! in Scheme) that change the state of pairs without creating new pairs. It is well known that cyclic list structures can be created by impure programs, but not by pure ones. In this sense, impure Lisp is "more powerful" than pure Lisp. If the inputs and outputs of programs are restricted to be sequences of atomic symbols, however, this difference in computability disappears. We shall show that if the temporal sequence of input and output operations must be maintained (that is, if computations must be "online "), then a difference in complexity remains: for a pure program to do what an impure program does in n steps, O(n log n) steps are sufficient, and in some cases\Omega\Gamma n log n) steps are necessary. * This research was partially supported by an NSERC Operating Grant. 1. Introduction The programming la...
Purely Functional, RealTime Deques with Catenation
 Journal of the ACM
, 1999
"... We describe an efficient, purely functional implementation of deques with catenation. In addition to being an intriguing problem in its own right, finding a purely functional implementation of catenable deques is required to add certain sophisticated programming constructs to functional programming ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
We describe an efficient, purely functional implementation of deques with catenation. In addition to being an intriguing problem in its own right, finding a purely functional implementation of catenable deques is required to add certain sophisticated programming constructs to functional programming languages. Our solution has a worstcase running time of O(1) for each push, pop, inject, eject and catenation. The best previously known solution has an O(log k) time bound for the k deque operation. Our solution is not only faster but simpler. A key idea used in our result is an algorithmic technique related to the redundant digital representations used to avoid carry propagation in binary counting.
Two Heads are Better than Two Tapes
, 1994
"... . We show that a Turing machine with two singlehead onedimensional tapes cannot recognize the set f x2x 0 j x 2 f0; 1g and x 0 is a prefix of x g in real time, although it can do so with three tapes, two twodimensional tapes, or one twohead tape, or in linear time with just one tape. In ..."
Abstract

Cited by 10 (6 self)
 Add to MetaCart
. We show that a Turing machine with two singlehead onedimensional tapes cannot recognize the set f x2x 0 j x 2 f0; 1g and x 0 is a prefix of x g in real time, although it can do so with three tapes, two twodimensional tapes, or one twohead tape, or in linear time with just one tape. In particular, this settles the longstanding conjecture that a twohead Turing machine can recognize more languages in real time if its heads are on the same onedimensional tape than if they are on separate onedimensional tapes. 1. Introduction The Turing machines commonly used and studied in computer science have separate tapes for input/output and for storage, so that we can conveniently study both storage as a dynamic resource and the more complex storage structures required for efficient implementation of practical algorithms [HS65]. Early researchers [MRF67] asked specifically whether twohead storage is more powerful if both heads are on the same onedimensional storage tape than if t...
An Improved Overlap Argument For OnLine Multiplication
"... A lower bound of cNlogN is proved for the mean time complexity of an online multitape Turing machine performing the multiplication of Ndigit binary integers. For a more general class of machines which includes some models of randomaccess machines, the corresponding bound is cNlogN/loglogN. These ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
A lower bound of cNlogN is proved for the mean time complexity of an online multitape Turing machine performing the multiplication of Ndigit binary integers. For a more general class of machines which includes some models of randomaccess machines, the corresponding bound is cNlogN/loglogN. These bounds compare favorably with known upper bounds of the form cN(logN) k, and for some classes the upper and lower bounds coincide. The proofs are based on the "overlap" argument due to Cook and Aanderaa.
Machine Models and Linear Time Complexity
 SIGACT News
, 1993
"... wer bounds. Machine models. Suppose that for every machine M 1 in model M 1 running in time t = t(n) there is a machine M 2 in M 2 which computes the same partial function in time g = g(t; n). If g = O(t)+O(n) we say that model M 2 simulates M 1 linearly. If g = O(t) the simulation has constantf ..."
Abstract

Cited by 5 (3 self)
 Add to MetaCart
wer bounds. Machine models. Suppose that for every machine M 1 in model M 1 running in time t = t(n) there is a machine M 2 in M 2 which computes the same partial function in time g = g(t; n). If g = O(t)+O(n) we say that model M 2 simulates M 1 linearly. If g = O(t) the simulation has constantfactor overhead ; if g = O(t log t) it has a factorofO(log t) overhead , and so on. The simulation is online if each step of M 1 i
Linear time and memoryefficient computation
, 1992
"... Abstract. A realistic model of computation called the Block Move (BM) model is developed. The BM regards computation as a sequence of finite transductions in memory, and operations are timed according to a memory cost parameter µ. Unlike previous memorycost models, the BM provides a rich theory of ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Abstract. A realistic model of computation called the Block Move (BM) model is developed. The BM regards computation as a sequence of finite transductions in memory, and operations are timed according to a memory cost parameter µ. Unlike previous memorycost models, the BM provides a rich theory of linear time, and in contrast to what is known for Turing machines, the BM is proved to be highly robust for linear time. Under a wide range of µ parameters, many forms of the BM model, ranging from a fixedwordsize RAM down to a single finite automaton iterating itself on a single tape, are shown to simulate each other up to constant factors in running time. The BM is proved to enjoy efficient universal simulation, and to have a tight deterministic time hierarchy. Relationships among BM and TM time complexity classes are studied. Key words. Computational complexity, theory of computation, machine models, Turing machines, randomaccess machines, simulation, memory hierarchies, finite automata, linear time, caching. AMS/MOS classification: 68Q05,68Q10,68Q15,68Q68.
On TwoTape RealTime Computation and Queues
"... This is a draft version of [J. Computer and System Sciences, 29 (1984) 303  311]. A Turing machine with two storage tapes can not simulate a queue in both realtime and with at least one storage tape head always within o (n) squares from the start square. This fact may be useful for showing that a ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
This is a draft version of [J. Computer and System Sciences, 29 (1984) 303  311]. A Turing machine with two storage tapes can not simulate a queue in both realtime and with at least one storage tape head always within o (n) squares from the start square. This fact may be useful for showing that a twohead tape unit is more powerful in realtime than two onehead tape units, as is commonly conjectured. Keywords & Phrases: multitape Turing machine, multihead Turing machine, realtime computation, two heads versus two tapes, storage retrieval, queue, incompressible string, Kolmogorov complexity Proposed Running Head: TWOTAPE REALTIME COMPUTATION ################## * This work was supported by the Stichting Mathematisch Centrum.    2  1. Introduction. Realtime computation in the world of Turing machine like devices is the analogon to realtime computation in concrete computer systems. To compare the relative computation power of two storage devices a fine distinction can be...
On superlinear lower bounds in complexity theory
 In Proc. 10th Annual IEEE Conference on Structure in Complexity Theory
, 1995
"... This paper first surveys the neartotal lack of superlinear lower bounds in complexity theory, for “natural” computational problems with respect to many models of computation. We note that the dividing line between models where such bounds are known and those where none are known comes when the mode ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
This paper first surveys the neartotal lack of superlinear lower bounds in complexity theory, for “natural” computational problems with respect to many models of computation. We note that the dividing line between models where such bounds are known and those where none are known comes when the model allows nonlocal communication with memory at unit cost. We study a model that imposes a “fair cost ” for nonlocal communication, and obtain modest superlinear lower bounds for some problems via a Kolmogorovcomplexity argument. Then we look to the larger picture of what it will take to prove really striking lower bounds, and pull from ours and others’ work a concept of information vicinity that may offer new tools and modes of analysis to a young field that rather lacks them.
Relative Complexity of Operations on Numeric . . .
, 1980
"... Sets of primitive operations for algebras with numerical and bit string domains are classified according to their computational efficiency. The relative complexity of certain basic operations on such algebras is determined. ..."
Abstract
 Add to MetaCart
Sets of primitive operations for algebras with numerical and bit string domains are classified according to their computational efficiency. The relative complexity of certain basic operations on such algebras is determined.