Brainfuck
Brainfuck ialah sebuah bahasa pengaturcaraan esoterik yang terkenal kerana sifatnya yang mininum. Ia direka semata-mata sebagai cabaran dan hiburan untuk pengaturcara, dan tidak sesuai bagi kegunaan praktikal. Biasanya nama bahasa ini ditapis dalam penulisan, menjadi brainf*ck atau brainfsck, kerana mengandungi perkataan lucah fuck. Nama bahasa ini biasanya tidak menggunakan huruf besar, sungguhpun ia merupakan kata nama khas.
Perintah [sunting]
Lapan perintah bahasa, setiap satu terdiri dari satu aksara, adalah seperti berikut:
| Aksara | Erti |
|---|---|
> |
menganjak penunjuk ke kanan. |
< |
menganjak penunjuk ke kiri. |
+ |
menokok bait di penunjuk. |
- |
menyusut bait di penunjuk. |
. |
mengoutput nilai bait di penunjuk. |
, |
menerima input sebanyak satu bait dan menyimpannya di penunjuk. |
[ |
Cabang kehadapan kepada perintah selepas ] yang sama sekiranya bait di penunjuk adalah sifar. |
] |
Lompat kembali kepada perintah selepas [ yang sama jika bait di penunjuk adalah bukan sifar. |
(Juga, perintah ] boleh diterjemah sebagai lompat tanpa syaratkepada perintah [ yang sama, atau sebaliknya; perisian akan bertindak sama tetapi lebih perlahan.)
Atur cara hello world [sunting]
Atur cara berikut mencetak Hello World! dan baris baru pada skrin:
++++++++++ [>+++++++>++++++++++>+++>+<<<<-] Kitaran awal bagi memeta nilai berguna pada jujukan >++. Mencetak 'H' >+. Mencetak 'e' +++++++. Mencetak 'l' . Mencetak 'l' +++. Mencetak 'o' >++. Mencetak ' ' <<+++++++++++++++. Mencetak 'W' >. Mencetak 'o' +++. Mencetak 'r' ------. Mencetak 'l' --------. Mencetak 'd' >+. Mencetak '!' >. Mencetak aksara baris baru
Untuk mudah difahami, kod ini telah dibahagi kepada banyak baris dan ditambah ulasan. Brainfuck mengabaikan semua aksara kecuali +-<>[],. dengan itu tiada sintaks khas bagi ulasan diperlukan. Kod ini boleh juga ditulis sebagai:
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Pautan luar [sunting]
- (Inggeris) Brainfuck di Esolang
- (Inggeris) Brainfuck di Projek Direktori Terbuka
- (Inggeris) Brainfuck computer language.