Sabtu, 13 Maret 2010

Self Generating Code

Hello world!!
Pada postingan kali ini saya akan membahas mengenai self generating code.
Apakah self generating code tersebut?
Berdasarkan http://en.wikipedia.org/ self generating code atau yang biasa disebut sebagai Quine, adalah program komputer yang dapat menyalin kode programnya sendiri kemudian menjadikannya sebagai output.
Nama Quine tersebut diambil dari nama penemunya, yaitu Willard Van Orman Quine (19808-2000). Beliau membuat sebuah paradox, yang kemudian dikenal dengan Quine paradox:

"Yields falsehood when preceded by its quotation" yields falsehood when preceded by its quotation.

Quine dapat dibuat dengan menggunakan bahasa pemrograman apapun, selama bahasa tersebut dapat menangani string.
Berikut ini adalah contoh program quine dengan menggunakan bahasa java:
import java.text.*;
class SGC
{ public static void main(String x[])
{ char a[] = {34};
String s[] = new String[2];

s[0]="import java.text.*;class SGC{2}public static void main(String x[]){2}char a[]={2}34};String s[]=new String[2];s[0]={1}{0}{1};s[1]=new String(a);System.out.println(MessageFormat.format(s[0],s));}}";
s[1]=new String(a);
System.out.println(MessageFormat.format(s[0],s));
}
}
Program di atas akan menghasilkan keluaran sebagai berikut:
 
SGC3

Kunci dari program di atas adalah
System.out.println(MessageFormat.format(s[0],s));
dimana program akan menampilkan s[0] ke layar. s[0] sendiri berisi salinan dari kode program.
s[0]={1}{0}{1}
pada s[0] akan menghasilkan keluaran sebagai berikut:
{1} mengeluarkan "
{0} mengeluarkan teks pada s[0]

Jika masih penasaran, silahkan eksplorasi program di atas.
Selamat mencoba..=D

Tidak ada komentar:

Posting Komentar