BRAINFUCK – bahasa pemrograman atau bercandaan?

Optimizing brainfuck compiler.(sumber :https://www.nayuki.io/ )

Diengcyber.com – Dalam dunia pemrograman pastinya ada bahasa yang sulit dipelajari dan dimengerti oleh manusia.

Bisa saja karena memang tujuan dari bahasa tersebut bukan dibuat untuk dipelajari dan dipahami oleh manusia, tapi ditujukan untuk mesin.

Alasan lain mungkin karena sintaks bahasa tersebut terlihat hanya berisi simbol atau angka-angka random yang tidak jelas.

Atau bahkan bisajadi bahasa tersebut dibuat hanya untuk bercandaan dan hiburan, ataupun tantangan bagi orang-orang.

Contoh bahasa tersebut adalah brainfuck. Brainfuck adalah bahasa pemrograman esoterik yang dibuat pada tahun 1993 oleh Urban Müller, dan terkenal karena minimalitasnya yang ekstrem.

Nama bahasa itu mengacu pada istilah slang brainfuck, yang mengacu pada hal-hal yang begitu rumit atau tidak biasa sehingga melampaui batas pemahaman seseorang.

Overview Bahasa

Brainfuck beroperasi pada larik sel memori, masing-masing awalnya diatur ke nol. (Dalam implementasi aslinya, panjang array adalah 30.000 sel, tetapi ini mungkin bukan bagian dari spesifikasi bahasa; ukuran yang berbeda untuk panjang array dan ukuran sel memberikan varian bahasa yang berbeda). Ada pointer, awalnya menunjuk ke sel memori pertama. Perintahnya adalah:

Brainfuck art.(sumeber: https://coderpad.io/ )

Contoh Program Menggunakan Brainfuck

Program ini menampilan kata Hello World! :

1 +++++ +++               Set Cell #0 to 8

2 [

3     >++++               Add 4 to

Cell #1; this will always set Cell #1

to 4  

4     [                   as the cell

 will be cleared by the loop  

5         >++             Add 4*2 to

Cell #2  

6         >+++            Add 4*3 to

Cell #3  

7         >+++            Add 4*3 to

Cell #4  

8         >+              Add 4 to

Cell #5  

9         <<<<-           Decrement the loop counter in Cell #1

10     ]                   Loop till

Cell #1 is zero

11     >+                  Add 1 to

Cell #2

12     >+                  Add 1 to

Cell #3

13     >-                  Subtract 1 from

Cell #4

14     >>+                 Add 1 to

Cell #6

15     [<]                 Move back to the first zero cell you find; this will

16                         be Cell #1

which was cleared by the previous loop

17     <-                  Decrement the loop Counter in Cell #0

18 ]                       Loop till Cell #0 is zero

19

 20 The result of this is:

21 Cell No :   0   1   2   3   4   5   6

22 Contents:   0   0  72 104  88  32   8

23 Pointer :   ^

24  

25 >>.                     Cell #2 has value 72 which is ‘H’

26 >—.                   Subtract 3 from Cell #3 to get 101 which is ‘e’

27 +++++ ++..+++.          Likewise for ‘llo’ from Cell #3

28 >>.                     Cell #5 is 32 for the space

29 <-.                     Subtract 1 from Cell #4 for 87 to give a ‘W’

30 <.                      Cell #3 was set to ‘o’ from the end of ‘Hello’

31 +++.—– -.—– —.  Cell #3 for ‘rl’ and ‘d’

32 >>+.                    Add 1 to Cell #5 gives us an exclamation point

33 >++.                    And finally a newline from Cell #6

Program yang sama ketika diperkecil menjadi :

++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>

editor : kanh_cilor

Tinggalkan Komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

Scroll to Top
WhatsApp Tanya & Beli Program?