Adding Nesting Structure to Words

  • Rajeev Alur
  • P. Madhusudan
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4036)

Abstract

We propose nested words to capture models where there is both a natural linear sequencing of positions and a hierarchically nested matching of positions. Such dual structure exists for executions of structured programs where there is a natural well-nested correspondence among entries to and exits from program components such as functions and procedures, and for XML documents where each open-tag is matched with a closing tag in a well-nested manner.

We define and study finite-state automata as acceptors of nested words. A nested-word automaton is similar to a classical finite-state word automaton, and reads the input from left to right according to the linear sequence. However, at a position with two predecessors, one due to linear sequencing and one due to a hierarchical nesting edge, the next state depends on states of the run at both these predecessors. The resulting class of regular languages of nested words has all the appealing theoretical properties that the class of classical regular word languages enjoys: deterministic nested word automata are as expressive as their nondeterministic counterparts; the class is closed under operations such as union, intersection, complementation, concatenation, and Kleene-*; decision problems such as membership, emptiness, language inclusion, and language equivalence are all decidable; definability in monadic second order logic of nested words corresponds exactly to finite-state recognizability; and finiteness of the congruence induced by a language of nested words is a necessary and sufficient condition for regularity.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alur, R., Benedikt, M., Etessami, K., Godefroid, P., Reps, T., Yannakakis, M.: Analysis of recursive state machines. ACM Transactions on Programming Languages and Systems 27(4), 786–818 (2005)CrossRefGoogle Scholar
  2. 2.
    Alur, R., Chaudhuri, S., Madhusudan, P.: Automata on nested trees (under submission, 2006)Google Scholar
  3. 3.
    Alur, R., Chaudhuri, S., Madhusudan, P.: A fixpoint calculus for local and global program flows. In: ACM POPL, pp. 153–165 (2006)Google Scholar
  4. 4.
    Alur, R., Etessami, K., Madhusudan, P.: A temporal logic of nested calls and returns. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 467–481. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  5. 5.
    Alur, R., Kumar, V., Madhusudan, P., Viswanathan, M.: Congruences for visibly pushdown languages. In: Caires, L., Italiano, G.F., Monteiro, L., Palamidessi, C., Yung, M. (eds.) ICALP 2005. LNCS, vol. 3580, pp. 1102–1114. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Alur, R., Madhusudan, P.: Visibly pushdown languages. In: ACM STOC, pp. 202–211 (2004)Google Scholar
  7. 7.
    Ball, T., Majumdar, R., Millstein, T.D., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: AACM PLDI, pp. 203–213 (2001)Google Scholar
  8. 8.
    Ball, T., Rajamani, S.: Bebop: A symbolic model checker for boolean programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 113–130. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    Dymond, P.: Input-driven languages are in log n depth. Inf. Process. Lett. 26(5), 247–250 (1988)CrossRefMathSciNetGoogle Scholar
  10. 10.
    Henzinger, T.A., Jhala, R., Majumdar, R., Necula, G.C., Sutre, G., Weimer, W.: Temporal-safety proofs for systems code. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 526–538. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  11. 11.
    Knuth, D.E.: A characterization of parenthesis languages. Information and Control 11(3), 269–289 (1967)MATHCrossRefGoogle Scholar
  12. 12.
    Kumar, V., Madhusudan, P., Viswanathan, M.: Minimization, learning, and conformance testing of boolean programs (under submission, 2006)Google Scholar
  13. 13.
    Kumar, V., Madhusudan, P., Viswanathan, M.: Visibly pushdown languages for XML. Technical Report UIUCDCS-R-2006-2704, UIUC (2006)Google Scholar
  14. 14.
    Libkin, L.: Logics for unranked trees: An overview. In: Caires, L., Italiano, G.F., Monteiro, L., Palamidessi, C., Yung, M. (eds.) ICALP 2005. LNCS, vol. 3580, pp. 35–50. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  15. 15.
    Löding, C., Madhusudan, P., Serre, O.: Visibly pushdown games. In: Lodaya, K., Mahajan, M. (eds.) FSTTCS 2004. LNCS, vol. 3328, pp. 408–420. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  16. 16.
    McNaughton, R.: Parenthesis grammars. Journal of the ACM 14(3), 490–500 (1967)MATHCrossRefMathSciNetGoogle Scholar
  17. 17.
    Neven, F.: Automata, Logic, and XML. In: Bradfield, J.C. (ed.) CSL 2002 and EACSL 2002. LNCS, vol. 2471, pp. 2–26. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  18. 18.
    Reps, T., Horwitz, S., Sagiv, S.: Precise interprocedural dataflow analysis via graph reachability. In: ACM POPL, pp. 49–61 (1995)Google Scholar
  19. 19.
    Segoufin, L., Vianu, V.: Validating streaming XML documents. In: ACM PODS, pp. 53–64 (2002)Google Scholar
  20. 20.
    Thomas, W.: On logics, tilings, and automata. In: Leach Albert, J., Monien, B., Rodríguez-Artalejo, M. (eds.) ICALP 1991. LNCS, vol. 510, pp. 441–454. Springer, Heidelberg (1991)Google Scholar
  21. 21.
    Vardi, M.Y., Wolper, P.: Reasoning about infinite computations. Information and Computation 115(1), 1–37 (1994)MATHCrossRefMathSciNetGoogle Scholar
  22. 22.
    von Braunmühl, B., Verbeek, R.: Input-driven languages are recognized in log n space. In: Karpinski, M. (ed.) FCT 1983. LNCS, vol. 158, pp. 40–51. Springer, Heidelberg (1983)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Rajeev Alur
    • 1
  • P. Madhusudan
    • 2
  1. 1.University of PennsylvaniaUSA
  2. 2.University of Illinois at Urbana-ChampaignUSA

Personalised recommendations