Self generating code merupakan sebuah program yang akan memproduksi dirinya sendiri (source codenya) apabila program tersebut dijalankan. Membingungkan memang, dan pertanyaannya, apakah hal tersebut mungkin?
Setelah mencari dengan bantuan om google, saya mendapat satu source code yang cukup singkat, namun dapat berjalan dan menghasilkan dirinya sendiri.
Source code yang saya temukan adalah sebagai berikut:
char a[] = “int main(){ printf(b,34,a,34,10,34,b,34,10,10,a,10); }”;
char b[] = “char a[] = %c%s%c;%cchar b[] = %c%s%c;%c%c%s%c”;int main(){ printf(b,34,a,34,10,34,b,34,10,10,a,10); }
Dan setelah di run, output program tersebut adalah sebagai berikut:
Teknik yang digunakan dalam source code di atas untuk memproduksi dirinya sendiri adalah teknik quine. Pada dasarnya teknik ini adalah dengan membagi source menjadi data dan kode pada program. Data digunakan untuk menyimpan teks dalam variabel pada program, dan bagian lainnya adalah kode yang digunakan untuk memprint data tersebut.