Pure Pointer Programs with Iteration
Many logspace algorithms are naturally described as programs that operate on a structured input (e.g. a graph), that store in memory only a constant number of pointers (e.g. to graph nodes) and that do not use pointer arithmetic. Such “pure pointer algorithms” thus are a useful abstraction for studying the nature of logspace-computation.
In this paper we introduce a formal class purple of pure pointer programs and study them on locally ordered graphs. Existing classes of pointer algorithms, such as Jumping Automata on Graphs (jags) or Deterministic Transitive Closure (dtc) logic, often exclude simple programs. purple subsumes these classes and allows for a natural representation of many graph algorithms that access the input graph by a constant number of pure pointers. It does so by providing a primitive for iterating an algorithm over all nodes of the input graph in an unspecified order.
Since pointers are given as an abstract data type rather than as binary digits we expect that logarithmic-size worktapes cannot be encoded using pointers as is done, e.g. in totally-ordered dtc logic. We show that this is indeed the case by proving that the property “the number of nodes is a power of two,” which is in logspace, is not representable in purple.
Unable to display preview. Download preview PDF.
- 7.Gonthier, G.: A computer-checked proof of the four-colour theorem, http://research.microsoft.com/~gonthier
- 10.Johannsen, J.: Satisfiability problems complete for deterministic logarithmic space. In: Diekert, V., Habib, M. (eds.) STACS 2004. LNCS, vol. 2996, pp. 317–325. Springer, Heidelberg (2004)Google Scholar
- 12.Pitts, A.M., Stark, I.D.B.: Observable properties of higher order functions that dynamically create local names, or: What’s new? In: Borzyszkowski, A.M., Sokolowski, S. (eds.) MFCS 1993. LNCS, vol. 711, pp. 122–141. Springer, Heidelberg (1993)Google Scholar
- 13.Reingold, O.: Undirected st-connectivity in log-space. In: STOC, pp. 376–385 (2005)Google Scholar