Advertisement

Evolving Graph-Structures and Their Implicit Computational Complexity

  • Daniel Leivant
  • Jean-Yves Marion
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7966)

Abstract

Dynamic data-structures are ubiquitous in programming, and they use extensively underlying directed multi-graph structures, such as labeled trees, DAGs, and objects. This paper adapts well-established static analysis methods, namely data ramification and language-based information flow security, to programs over such graph structures. Our programs support the creation, deletion, and updates of both vertices and edges, and are related to pointer machines. The main result states that a function over graph-structures is computable in polynomial time if it is computed by a terminating program whose graph manipulation is ramified, provided all edges that are both created and read in a loop have the same label.

Keywords

Polynomial Time Graph Structure Structural Induction Abstract State Machine Imperative Program 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Bellantoni, S., Cook, S.A.: A new recursion-theoretic characterization of the poly-time functions. Computational Complexity 2, 97–110 (1992)MathSciNetzbMATHCrossRefGoogle Scholar
  2. 2.
    Gurevich, Y.: Sequential abstract state machines capture sequential algorithms. ACM Transactions on Computational Logic 1(1), 77–111 (2000)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Hartmann, L., Jones, N.D., Simonsen, J.G., Vrist, S.B.: Programming in biomolecular computation: Programs, self-interpretation and visualisation. Sci. Ann. Comp. Sci. 21(1), 73–106 (2011)MathSciNetGoogle Scholar
  4. 4.
    Hofmann, M., Schöpp, U.: Pure pointer programs with iteration. ACM Trans. Comput. Log. 11(4) (2010)Google Scholar
  5. 5.
    Jones, N.D.: Logspace and ptime characterized by programming languages. Theor. Comput. Sci. 228(1-2), 151–174 (1999)zbMATHCrossRefGoogle Scholar
  6. 6.
    Kolmogorov, A.N., Uspensky, V.: On the definition of an algorithm. Uspekhi Mat. Naut. 13(4) (1958)Google Scholar
  7. 7.
    Leivant, D.: Predicative recurrence and computational complexity I: Word recurrence and poly-time. In: Feasible Mathematics II. Birkhauser-Boston (1994)Google Scholar
  8. 8.
    Marion, J.-Y.: A type system for complexity flow analysis. In: LICS (2011)Google Scholar
  9. 9.
    Sabelfeld, A., Sands, D.: Declassification: dimensions and principles. J. Comput. Secur. 17, 517–548 (2009)Google Scholar
  10. 10.
    Schönhage, A.: Storage modification machines. SIAM J. Comp. 9(3), 490–508 (1980)zbMATHCrossRefGoogle Scholar
  11. 11.
    Tarjan, R.E.: Reference machines require non-linear time to maintain disjoint sets. In: STOC 1977, pp. 18–29. ACM (1977)Google Scholar
  12. 12.
    Volpano, D., Irvine, C., Smith, G.: A sound type system for secure flow analysis. Journal of Computer Security 4(2/3), 167–188 (1996)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Daniel Leivant
    • 1
  • Jean-Yves Marion
    • 2
  1. 1.Indiana UniversityUSA
  2. 2.LORIAUniversité de LorraineFrance

Personalised recommendations