Brainfuck: Revizyonlar arasındaki fark
[kontrol edilmemiş revizyon] | [kontrol edilmemiş revizyon] |
İçerik silindi İçerik eklendi
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) {
|
] |
}
|
Yazılım ile ilgili bu madde taslak seviyesindedir. Madde içeriğini genişleterek Vikipedi'ye katkı sağlayabilirsiniz. |