Brainfuck: Revizyonlar arasındaki fark

Vikipedi, özgür ansiklopedi
[kontrol edilmemiş revizyon][kontrol edilmemiş revizyon]
İçerik silindi İçerik eklendi
TXiKiBoT (mesaj | katkılar)
k Bot değişikliği Ekleniyor: vi:Brainfuck
Khutuck Bot (mesaj | katkılar)
k Bot: Kozmetik değişiklikler
58. satır: 58. satır:


{{Yazılım-taslak}}
{{Yazılım-taslak}}

[[Kategori:Programlama dilleri]]
[[Kategori:Programlama dilleri]]



Sayfanın 00.12, 15 Ağustos 2010 tarihindeki hâli

Brainfuck 1993 yılında programcı Urban Müller tarafından yaratılmış bir programlama dilidir. Yaratılma amacı mümkün olan en küçük boyutlu derleyiciyi üretmektir. Bilinen bazı derleyicileri 200 bayttan küçüktür .Sadece sekiz komutu bulunmakla birlikte Turing-bütün (Turing-complete) bir dil olduğundan teorik olarak herhangi bir algoritma bu dilde yazılıp işletilebilir.

Brainfuck dili çok basit bir makine modeli ile çalışır,bu modelde her birinin başlangıçtaki değeri 0 olan 30000 hücre ve bu hücreler arasında hareket edebilen bir işaretçi(pointer) bulunur(işaretçi,başlangıçta ilk hücrededir).

Komutlar

Her biri sadece tek karakterden oluşan komutları şunlardır;

Komut Anlamı
> işaretçiyi bir sonraki hücreye kaydır.
< işaretçiyi bir önceki hücreye kaydır.
+ işaretçinin bulunduğu hücredeki baytı 1 arttır.
- işaretçinin bulunduğu hücredeki baytı 1 azalt.
. işaretçinin bulunduğu hücredeki baytı standart çıktı birimine yaz.
, standart girdi biriminden bir baytlık girdi al ve bunu işaretçinin bulunduğu hücreye yaz.
[ eğer işaretçinin bulunduğu hücrenin değeri sıfırsa, ] karakterinden sonraki komuta atla.
] eğer işaretçinin bulunduğu hücrenin değeri sıfır değilse, önceki [ karakterinden bir sonraki komuta atla.

ayrıca bu komutların C programlama dilindeki karşılıkları şöyle gösterilebilir;

komut C karşılığı
> ++ptr;
< --ptr;
+ ++(*ptr);
- --(*ptr);
. putchar(*ptr);
, *ptr=getchar();
[ while (*ptr) {
] }