Pengantar Bahasa Pemrograman Brainfuck

 


                                                                          
 Apa Sih Brainfuck Itu?.........

Hemm..agak aneh ya .tapi memang demikian nama nya Brainfuck perogram language.Brainfuck adalah salah satu bahasa pemrograman yang diciptakan oleh urban muller pada tahun 1993, dengan tujuan diimplementasi pada compiler yang kecil.


A. Mengenal Sejarah Brainfuck

In 1992, urban Muller, a swiss physics student. took over a small online archive for Amiga foftware .[2] The archive grew more popular, and was soon mirrored around the world. Today, it is the world's largest Amiga archive, known as Aminet. Program brainfuck adalah urutan perintah ini, mungkin diselingi dengan karakter lain (yang diabaikan). Perintah dieksekusi secara berurutan, dengan beberapa pengecualian: penunjuk instruksi dimulai pada perintah pertama, dan setiap perintah yang ditunjuknya dieksekusi, setelah itu biasanya bergerak maju ke perintah berikutnya. Program berakhir ketika penunjuk instruksi bergerak melewati perintah terakhir menggunakan Brainfuck menggunakan model mesin sederhana yang terdiri dari program dan penunjuk instruksi, serta array satu dimensi dari setidaknya 30.000 sel byte yang diinisialisasi ke nol; pointer data bergerak (diinisialisasi untuk menunjuk ke byte paling kiri dari array); dan dua aliran byte untuk input dan output (paling sering dihubungkan ke keyboard dan monitor masing-masing, dan menggunakan pengkodean karakter ASCII

P′′: Brainfuck "parent language"

Kecuali untuk dua pilihan I/O, Kecuali Brainfuck adalah Variasi kecil dari bahasa pemrograman formal P"kecuali Brainfuck adalah fariasi kecil dari yang di buat oleh Corrado Bohm pada tahun 1964,yang secara yang secara eksplisit didasarkan pada mesin turing. Faktanya , menggunakan enam simbol yang yang setara dengan masing-masing perintah Brainfuck Faktanya  +, -, <, >, [, ], Bohm menyediakan program eksplisit untuk masing-masing fungsi dasar yang bersama-sama berfungsi untuk menghitung any computable function. so the firs"Brainfuck"programs apper in Bohm's 1964 paper - and they were sufficient to prove turing complenteness program ini mengkodekan inputnya dengan cipher.untuk melakukan ini ,ia harus memetakan karakter ke Nz.dan sebalik nya juga ia harus memetakan semua karakter lain untuk didi sendiri meraka sendiri,ia mambaca karakter satu persatu dan mengeluarkan ekuivalennya yang dienkripsi
sampai ia membaaca EOF(diisini diasumsikan depresentasikan sebagai -1"tidak ada perubahana") pada titik mana program berakhirsampai ia membaca EOF (di sini diasumsikan direpresentasikan sebagai -1 atau "tidak ada perubahan.  
                       

B. Mengenal Desain Bahasa Brainfuck

Bahasa ini terdiri dari delapan perintah yang tercantum dibawah ini .. program Brainfuck adalah urutan perintah ini, mungkin diselingi dengan karakter lain (yang di abaikan ) perintah dieksekusi secara berurutan , dengan beberapa pengecualian penunjuk intruksi dimulai pada perintah pertama setelah itu biasanya bergerak maju ke perintah berikutnya. Program berakhir ketika penunjuk instruksi bergerak melewati perintah terakhir. Bahasa brainfuck menggunakan model mesin sederhana yang terdiri dari program dan penunjuk instruksi, serta array satu dimensi dari setidaknya 30.000 sel byte yang diinisialisasi ke nol; pointer data bergerak (diinisialisasi untuk menunjuk ke byte paling kiri dari array); dan dua aliran byte untuk input dan output (paling sering dihubungkan ke keyboard dan monitor masing-masing, dan menggunakan pengkodean karakter ASCII.
 

C. Bahasa ini terdiri dari dari

> increment the pointer
< Decrement the pointer.
 + increment the byte at the pointer.
_ Decrement the byte at the pointer.
. Output the byte at the pointer.
, Input a byte and store it in the byte at the pointer.
[ Jump forward past the matching ] if the byte at the pointer is zero.
] Jump backward to the matching [ Unless the byte at the ponter is zero.
The semantics of the Brainfuck commands can also be seccinctly expressed in terms of c, as follows ( assuming that p has been previously defined as a char*)
> becomes ++p;
< becomes --p;
+ becomes ++*p;
- becomes --*p;
. becomes putchar(*p);
, becomes *p=getchar();
[ becomes while (*p) { 
] becomes }

D. Mengenal Karakter Brainfuck

Karakter Berarti > Tingkatkan penunjuk data (untuk menunjuk ke sel berikutnya di sebelah kanan). < Kurangi penunjuk data (untuk menunjuk ke sel berikutnya di sebelah kiri). + Menaikkan (meningkatkan satu) byte pada penunjuk data. - Kurangi (kurangi satu) byte pada penunjuk data. . Keluarkan byte pada penunjuk data. , Terima satu byte input, simpan nilainya dalam byte pada penunjuk data. [ Jika byte di data pointer adalah nol, maka bukannya memindahkan instruksi pointer ke depan untuk perintah selanjutnya, melompat itu maju ke perintah setelah pencocokan ] perintah. ] Jika byte pada penunjuk data bukan nol, maka alih-alih memindahkan penunjuk instruksi ke depan ke perintah berikutnya, lompat kembali ke perintah setelah perintah yang cocok.

(Atau) perintah dapat diterjemahkan sebagai lompatan tanpa syarat ke [ perintah yang sesuai , atau sebaliknya; program akan berperilaku sama tetapi akan berjalan lebih lambat, karena pencarian ganda yang tidak perlu.] [ dan ] cocok seperti yang biasanya dilakukan tanda kurung: masing-masing [ cocok dengan tepat satu ] dan sebaliknya, yang [ datang lebih dulu, dan tidak ada yang tidak cocok [ atau di ] antara keduanya. Program brainfuck dapat diterjemahkan ke dalam C menggunakan substitusi berikut, dengan asumsi ptr bertipe char* dan telah diinisialisasi untuk menunjuk ke array byte nol.

Contoh Brainfuck



Kesimpulan Dari Brainfuck

Bahasa ini terdiri dari delapan perintah , tercantum di bawah ini. Program brainfuck adalah urutan perintah ini, mungkin diselingi dengan karakter lain (yang diabaikan). Perintah dieksekusi secara berurutan, dengan beberapa pengecualian: penunjuk instruksi dimulai pada perintah pertama, dan setiap perintah yang ditunjuknya dieksekusi, 
Brainfuck adalah contoh dari apa yang disebut Tarpit Turing : Dapat digunakan untuk menulis program apa pun , tetapi tidak praktis untuk melakukannya, karena Brainfuck menyediakan begitu sedikit abstraksi sehingga program menjadi sangat panjang atau rumit.

Penulis Cindy Lusiana Nurzahwa( Mahasiswi Prodi Sistem Informasi Kelas 1E FST UIN Sultan Thaha Saifudin Jambi)


-  Sumber Reverensi

Dikutip dari

Post a Comment

Lebih baru Lebih lama