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 | sunting sumber]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 | sunting sumber]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 | sunting sumber]- (Inggeris) Brainfuck di Esolang Diarkibkan 2007-08-16 di Wayback Machine
- (Inggeris) Brainfuck di Curlie
- (Inggeris) Brainfuck computer language.