Title: What is self-reference and why does it matter?


What is self-reference?

I've been working on this little project for the past week while home for winter break. I was talking with my mom about what I am working on. She doesn't have any background in computer science and just knows how to check her email and the basics so it took me a while to think of how to explain it to her. I decided to tell her, imagine that you are writing a list of instructions for how to write the instructions themselves. In other words, the people read what you wrote and step by step create a copy of the instructions that they are reading. She seemed to understand and then went on to tell me about how a few times for work she's had to write instructions on how to write instructions.

What are Quines?

A computer program is created by a programmer who writes the program's source code. A source code is similar to a list of step by step instructions. A quine is a computer program that outputs its own source code. In other words, a quine is sort of like a list of instructions for writing the instructions themselves.

Why does self-reference matter?

Self-reference is an important concept for humans. It is a valuable experience to think about who oneself is and what you've done so far. Such reflection allows one to effectively evaluate what to do next. Also, it is important for society to evaluate itself. Such evaluation is essential for organization and allocation of resources.

If nothing else, humans DNA sequencing themselves is considered valuable by some and seems oddly similar to the idea of computer programs printing their own source code.

How is it relevant to Computer Science?

I thought long and hard, and the best answer I could come up with is: Recursion.

More specifically, recursive programming, recursive definition, and primitive recursive functions.



Go to: What does self-reference have to do with recursion?

Back to Programs