Thursday 11 March 2010

Tugas II3062-10 Self-generating Code

Ada tugas lagi:

1. Tugas Anda adalah membuat self-generating code seperti yang ada di paper Ken Thompson, Reflections on Trusting Trust. Bahasa pemrograman bebas.



Self-generating code yang dibuat di sini adalah kode program yang jika dieksekusi akan menghasilkan output berupa kode program itu sendiri. Pada tugas ini, bahasa yang digunakan adalah bahasa Java. Source code program yang ditulis (sudah dirapikan) adalah sebagai berikut (lihat gambar):
Kemudian hasilnya dicompile dan dieksekusi. Output yang dihasilkan pada comand-prompt adalah sebagai berikut (lihat gambar):
Dapat dilihat bahwa output program sama dengan source code di atas.
Penjelasannya adalah sebagai berikut:
  • Bagian static String s; pada kode program merupakan variabel yang berisi representasi text kode program.  dimana terdapat beberapa pengaksesan variabel c dan s oleh method println().
  • Bagian System.out.println(s + c + s + c + ';' + '}'); merupakan "pemanggilan" terhadap variabel s,c,karakter ';' dan '}'. Angka 34 yang di-assign pada variabel c merupakan kode ASCII untuk tanda kutip '“'. Variabel s dan c kemudian "dipanggil" oleh method println() sehingga didapatlah output program sama dengan sourcenya.

No comments:

Post a Comment