Skip to main content
Log in

Characterizing Programming Systems Allowing Program Self-Reference

  • Published:
Theory of Computing Systems Aims and scope Submit manuscript

Know thyself.

Greek proverb

Abstract

The interest is in characterizing insightfully the power of program self-reference in effective programming systems ( \(\mathsf{epses}\) ), the computability-theoretic analogs of programming languages (for the partial computable functions). In an \(\mathsf{eps}\) in which the constructive form of Kleene’s Recursion Theorem (KRT) holds, it is possible to construct, algorithmically, from an arbitrary algorithmic task, a self-referential program that, in a sense, creates a self-copy and then performs that task on the self-copy. In an \(\mathsf{eps}\) in which the not-necessarily-constructive form of Kleene’s Recursion Theorem (krt) holds, such self-referential programs exist, but cannot, in general, be found algorithmically.

In an earlier effort, Royer proved that there is no collection of recursive denotational control structures whose implementability characterizes the \(\mathsf{epses}\) in which KRT holds. One main result herein, proven by a finite injury priority argument, is that the \(\mathsf{epses}\) in which krt holds are, similarly, not characterized by the implementability of some collection of recursive denotational control structures.

On the positive side, however, a characterization of such \(\mathsf{epses}\) of a rather different sort is shown herein. Though, perhaps not the insightful characterization sought after, this surprising result reveals that a hidden and inherent constructivity is always present in krt.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Adami, C.: What do robots dream of? Science 314, 1093–1094 (2006)

    Article  Google Scholar 

  2. Blum, M.: A machine independent theory of the complexity of recursive functions. J. ACM 14, 322–336 (1967)

    Article  MATH  MathSciNet  Google Scholar 

  3. Bongard, J., Zykov, V., Lipson, H.: Resilient machines through continuous self-modeling. Science 314, 1118–1121 (2006)

    Article  Google Scholar 

  4. Case, J.: Effectivizing inseparability. Z. Math. Log. Grundlagen Math. 37, 97–111 (1991). Missing set complement signs in definitions in journal version corrected in version at http://www.cis.udel.edu/~case/papers/mkdelta.ps

    Article  MATH  MathSciNet  Google Scholar 

  5. Case, J.: Infinitary self-reference in learning theory. J. Exp. Theor. Artif. Intell. 6, 3–16 (1994)

    Article  MATH  Google Scholar 

  6. Case, J., Moelius III, S.E.: Characterizing programming systems allowing program self-reference. In: Computation and Logic in the Real World—Third Conference of Computability in Europe (CiE 2007). Lecture Notes in Computer Science, vol. 4497, pp. 125–134. Springer, Berlin (2007)

    Google Scholar 

  7. Case, J., Moelius III, S.E.: Properties complementary to program self-reference. In: 32nd International Symposium on Mathematical Foundations of Computer Science (MFCS’07). Lecture Notes in Computer Science, vol. 4708, pp. 253–263. Springer, Berlin (2007)

    Chapter  Google Scholar 

  8. Case, J., Jain, S., Suraj, M.: Control structures in hypothesis spaces: The influence on learning. Theor. Comput. Sci. 270(1–2), 287–308 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  9. Conduit, R.: To sleep, perchance to dream. Science 315(5816), 1219–1220 (2007). A letter, including responses from C. Adami and from H. Lipson, V. Zykov, and J. Bongard

    Article  Google Scholar 

  10. Freivalds, R., Kinber, E., Wiehagen, R.: Inductive inference and computable one-one numberings. Z. Math. Log. Grundlagen Math. 28, 463–479 (1982)

    Article  MATH  MathSciNet  Google Scholar 

  11. Friedman, H.: [FOM] 305: Proofs of Godel’s Second. Communication to the Foundations of Mathematics electronic mailing list (21 December 2006)

  12. Goncharov, S., Sorbi, A.: Generalized computable numberings and non-trivial Rogers semilattices. Algebra Log. 36, 359–369 (1997)

    Article  MathSciNet  Google Scholar 

  13. Jain, S., Nessel, J.: Some independence results for control structures in complete numberings. J. Symb. Log. 66(1), 357–382 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  14. Kozen, D.: Indexings of subrecursive classes. Theor. Comput. Sci. 11, 277–301 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  15. Machtey, M., Young, P.: An Introduction to the General Theory of Algorithms. North-Holland, New York (1978)

    MATH  Google Scholar 

  16. Manna, Z.: Mathematical Theory of Computation. McGraw-Hill, New York (1974). Reprinted: Dover (2003)

    MATH  Google Scholar 

  17. Manna, Z., Vuillemin, J.: Fixpoint approach to the theory of computation. Commun. ACM 15(7), 528–536 (1972)

    Article  MATH  MathSciNet  Google Scholar 

  18. Mendelson, E.: Introduction to Mathematical Logic, 4th. edn. Chapman & Hall, London (1997)

    MATH  Google Scholar 

  19. Riccardi, G.: The independence of control structures in abstract programming systems. Ph.D. thesis, SUNY Buffalo (1980)

  20. Riccardi, G.: The independence of control structures in abstract programming systems. J. Comput. Syst. Sci. 22, 107–143 (1981)

    Article  MATH  MathSciNet  Google Scholar 

  21. Rogers, H.: Gödel numberings of partial recursive functions. J. Symb. Log. 23, 331–341 (1958)

    Article  Google Scholar 

  22. Rogers, H.: Theory of Recursive Functions and Effective Computability. McGraw-Hill, New York (1967). Reprinted: MIT Press (1987)

    MATH  Google Scholar 

  23. Royer, J.: A Connotational Theory of Program Structure. Lecture Notes in Computer Science, vol. 273. Springer, Berlin (1987)

    MATH  Google Scholar 

  24. Royer, J., Case, J.: Subrecursive Programming Systems: Complexity and Succinctness. Progress in Theoretical Computer Science. Birkhäuser, Boston (1994)

    MATH  Google Scholar 

  25. Smith, B.: Reflection and semantics in a procedural language. Technical report MIT-TR-272, MIT Laboratory for Computer Science (1982)

  26. Smorynski, C.: Fifty years of self-reference in arithmetic. Notre Dame J. Formal Log. 22(4), 357–374 (1981)

    Article  MATH  MathSciNet  Google Scholar 

  27. Winskel, G.: The Formal Semantics of Programming Languages: An Introduction. Foundations of Computing Series. MIT Press, Cambridge (1993)

    MATH  Google Scholar 

  28. Zeugmann, T., Lange, S.: A guided tour across the boundaries of learning recursive languages. In: Jantke, K.P., Lange, S. (eds.) Algorithmic Learning for Knowledge-Based Systems. Lecture Notes in Artificial Intelligence, vol. 961, pp. 190–258. Springer, Berlin (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to John Case.

Additional information

This paper is an expanded version of [6]. This paper received support from NSF Grant CCR-0208616.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Case, J., Moelius, S.E. Characterizing Programming Systems Allowing Program Self-Reference. Theory Comput Syst 45, 756–772 (2009). https://doi.org/10.1007/s00224-009-9168-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00224-009-9168-8

Keywords

Navigation