Self Generating Code
Self generating code atau self reproducing program merupakan kode program yang jika dieksekusi akan menampilkan kode program itu sendiri. Self generating code ini pernah dijelaskan oleh Ken Thompson dalam sebuah pidatonya yang berjudul ‘Reflection on Trusting Trust’ saat menerima penghargaan dari ACM. Ken telah mengembangkan sistem operasi UNIX dan bahasa pemrograman B, yang menjadi awal pengembangan bahasa pemrograman C. Dalam pidatonya Ken juga bercerita mengenai pembuatan compiler bahasa C yang dibuat dengan bahasa C sendiri.
Self reproducing program ini juga disebut quine. Pada halaman http://www.nyx.net/~gthompso/quine.htm disebutkan tentang quine. :quine: /kwi:n/ /n./ [from the name of the logician Willard van Orman Quine, via Douglas Hofstadter] A program that generates a copy of its own source text as its complete output. Devising the shortest possible quine in some given programming language is a common hackish amusement.
Berikut ini merupakan contoh quine dalam bahasa C yang sudah banyak dikenal (tentu saja bukan buatan saya).
main(){char*p="main(){char*p=%c%s%c;(void)printf(p,34,p,34,10);}%c"; (void)printf(p,34,p,34,10);}
Output dari program tersebut adalah sebagai berikut.
main(){char*p="main(){char*p=%c%s%c;(void)printf(p,34,p,34,10);}%c"; (void)printf(p,34,p,34,10);}
Terlihat output ketika program dalam bahasa C ini dieksekusi sama persis dengan kode program yang dibuat.

Recent Comments