Home > Uncategorized > Self Generating Code

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.

  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: