Brainfuck - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Komutlar
  • 2 Örnek
    • 2.1 Hello World!
  • 3 Kaynakça

Brainfuck

  • العربية
  • Asturianu
  • Català
  • Čeština
  • Dansk
  • Deutsch
  • English
  • Esperanto
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Suomi
  • Français
  • עברית
  • Magyar
  • Bahasa Indonesia
  • Igbo
  • Íslenska
  • İtaliano
  • 日本語
  • 한국어
  • Lombard
  • Bahasa Melayu
  • Nederlands
  • Norsk bokmål
  • ਪੰਜਾਬੀ
  • Polski
  • Português
  • Română
  • Русский
  • Simple English
  • Slovenčina
  • Slovenščina
  • Српски / srpski
  • Svenska
  • தமிழ்
  • Тоҷикӣ
  • ไทย
  • Українська
  • Oʻzbekcha / ўзбекча
  • Tiếng Việt
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Wikimedia Commons
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi

Brainfuck (İngilizce beyin beceren[1]), 1993 yılında programcı Urban Müller tarafından yaratılmış bir programlama dilidir.[2] 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 (İngilizce: 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 bulunur. (İşaretçi, başlangıçta ilk hücrededir)

Bu programlama dilinin amacı, genel bir dil olmaktan çok programcıları zorlamak ve eğlendirmektir.

Komutlar

[değiştir | kaynağı değiştir]

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) {
] }

Örnek

[değiştir | kaynağı değiştir]

Hello World!

[değiştir | kaynağı değiştir]

Aşağıdaki program ekrana "Hello World!" ve bir yeni satır yazmaktadır:

 
+++++ +++++             sayaca (sıfırıncı hücreye) 10 değerini ata
[                       sıradaki dört hücreye 70/100/30/10 değerlerini atamak için döngü kullan
    > +++++ ++              birinci hücreye 7 ekle
    > +++++ +++++           ikinci hücreye 10 ekle
    > +++                   üçüncü hücreye 3 ekle
    > +                     dördüncü hücreye 1 ekle
    <<<< -                  sayacın (sıfırıncı hücrenin) değerini düşür
]                   
> ++ .                 'H' yaz
> + .                  'e' yaz
+++++ ++ .             'l' yaz
.                      'l' yaz
+++ .                  'o' yaz
> ++ .                 ' ' yaz
<< +++++ +++++ +++++ . 'W' yaz
> .                    'o' yaz
+++ .                  'r' yaz
----- - .              'l' yaz
----- --- .            'd' yaz
> + .                  '!' yaz
> .                    '\n' yaz

Bu kod parçası, okunabilirliği sağlamak için satırlara bölünmüş, boşluklar ve yorumlar eklenmiştir. Brainfuck, sekiz komut karakteri +-<>[],. haricindeki tüm karakterleri yok sayar. Bu nedenle (eklenecek yorum, komut karakterleri içermediği sürece) koda yorum eklemek için özel bir söz dizimine ihtiyaç yoktur. Yukarıdaki kodun fazladan karakterlerden arındırılmış hâli aşağıdaki gibi görünecektir:

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

İlk satır a[0] = 10, dizinin ilk elemanına 0'dan başlayıp 10 kez artırarak ilk değerini atamaktadır. İkinci satırdan başlayan döngü, dizinin diğer elemanlarına değerler atamaktadır: a[1] = 70 ('H' harfinin ASCII kod değeri olan 72'ye yakın bir değer), a[2] = 100 ('e' harfinin ASCII değeri 101'e yakın), a[3] = 30 (boşluk karakterinin ASCII değeri 32'ye yakın) ve a[4] = 10 (yeni satır karakteri). Döngü, işaretçiyi dizi elemanları üzerinde kaydırarak a[0]'ın değeri 10'u sırasıyla 7,10,3 ve 1'le çarpmaktadır. Döngü bittikten sonra a[0], 0'a eşit olur.

Döngüden sonraki ilk satırda > karakteri işaretçiyi dizide bir eleman ilerletmekte, ++ dizi elemanının 70 olan değerini iki artırarak 72 yapmakta ve . karakteri de sonucu ekrana basmaktadır.

Kaynakça

[değiştir | kaynağı değiştir]
  1. ^ A. Matalon, "Humble Pi: A Comedy of Maths Errors" kitabının çevirisinde kafa s*ken tabirini tercih etmiştir. Matt Parker (2021). Pi’si Pi’sine: Gelmiş Geçmiş En Büyük Hesap Hataları. Alain Matalon tarafından çevrildi. Mundi Kitap. ISBN 9786254435133. 
  2. ^ Easter, Brandee (2020-04-02). "Fully Human, Fully Machine: Rhetorics of Digital Disembodiment in Programming". Rhetoric Review (İngilizce). 39 (2): 202–215. doi:10.1080/07350198.2020.1727096. ISSN 0735-0198. 
"https://tr.wikipedia.org/w/index.php?title=Brainfuck&oldid=35731765" sayfasından alınmıştır
Kategori:
  • Programlama dilleri
  • Sayfa en son 16.08, 27 Temmuz 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Brainfuck
Konu ekle