Brainfuck

Daripada Wikipedia, ensiklopedia bebas.
Lompat ke: pandu arah, cari

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]