Perhatikan: Saya bersedia memberikan hadiah untuk setiap jawaban yang menurut saya menarik.
Tantangan Anda adalah merancang komputer set instruksi (TIS) yang lengkap-Turing :
OISC adalah mesin abstrak yang hanya menggunakan satu instruksi - menghindari kebutuhan untuk opcode bahasa mesin. Dengan pilihan yang bijaksana untuk instruksi tunggal dan sumber daya yang diberikan tak terbatas, OISC mampu menjadi komputer universal dengan cara yang sama seperti komputer tradisional yang memiliki banyak instruksi.
Berikut adalah beberapa contoh perintah tunggal yang membuat TIS-lengkap OISC.
Aturan:
Anda harus memberikan interpretasi atau bukti daripadanya
Anda harus menyediakan juru bahasa untuk bahasa Anda. Penerjemah ini hanya boleh dibatasi oleh memori / waktu (mis. Tidak boleh memiliki batasan yang dikenakan pengguna) Jika Anda tidak menyediakan juru bahasa untuk bahasa Anda (untuk alasan apa pun selain kemalasan), Anda harus membuktikan bahwa mungkin saja satu untuk ditulis. Seorang juru bahasa harus dimungkinkan .
Anda harus membuktikan kelengkapan Turing-nya
Anda harus menyertakan bukti resmi bahwa bahasa Anda Turing-lengkap. Cara sederhana untuk melakukan ini adalah dengan membuktikan bahwa itu dapat menafsirkan atau memiliki perilaku yang sama dengan bahasa Turing-lengkap lainnya. Bahasa yang paling dasar untuk ditafsirkan adalah Brainf ** k .
Misalnya, bahasa normal yang memiliki semua perintah yang sama dengan Brainf ** k (dan kurangnya batasan memori yang dipaksakan oleh pengguna) adalah Turing-complete karena apa pun yang dapat diimplementasikan dalam Brainf ** k dapat diimplementasikan dalam bahasa .
Berikut adalah daftar bahasa Turing-lengkap yang sangat mudah diimplementasikan.
Persyaratan OISC tambahan
OISC ini seharusnya hanya memiliki satu instruksi - itu tidak dapat memiliki banyak instruksi dengan salah satu dari mereka membuatnya Turing-lengkap.
OISC Anda dapat menggunakan sintaksis yang Anda suka. Anda harus menentukan dalam jawaban Anda apa itu instruksi, apa itu data, dan apa itu no-op (mis. Spasi kosong). Jadilah kreatif!
Argumen tidak hanya perlu bilangan bulat. Sebagai contoh, /// adalah contoh indah dari OISC Turing-complete.
Bagaimana dan jika input dan output diambil dan diberikan diserahkan kepada Anda. Sebagian besar OISC menerapkan I / O melalui lokasi memori tertentu, tetapi mungkin ada cara lain untuk melakukannya, dan Anda dianjurkan untuk menemukannya.
Jawaban yang valid harus memberikan beberapa kode contoh dalam OISC Anda, baik dengan memasukkannya dalam pos atau menghubungkan ke tantangan sederhana yang diselesaikan dalam bahasa.
Pemungutan suara
Pemilih, harap diingat untuk tidak membatalkan pengiriman yang membosankan. Contoh:
- Bahasa -setara
- Implementasi OISC yang ada (penjawab, silakan buat sendiri!)
- "OISC" di mana argumen pertama menentukan perintah untuk memanggil ( contoh )
Namun, Anda harus mengambil alih pengiriman yang menarik dan kreatif, seperti:
- OISC didasarkan pada persamaan matematika
- ZISC Turing-complete berdasarkan pada jaringan saraf
- OISC di mana output I / O terjadi dengan cara lain selain lokasi memori tertentu
Kemenangan
Seperti halnya kontes popularitas , jawaban dengan suara terbanyak menang! Semoga berhasil!