Introducing Quine-Relay

The task of this assignment was to create a self-replicating java program that would continually write Gabe Huinker in a file.

~

The purpose of this task was to understand the Ken Thompson paper Reflections of trusting the trust, and how a self-replicating program can be used to create a theoretically invisible security flaw in the compiler. The program would be started by a provided runner.sh file and would begin compiling, print one character of "Gabe Huinker" and then rewrite itself into the new Ouroboros.java file. Because eventually after printing all characters in "Gabe Huinker" the program will be how it was at the beginning of execution, the program is considered an Ouroboros program.