İçeriğe atla

Malbolge

Malbolge
Malbolge'de bir cat programı
ParadigmasıEsoteric, imperative, scalar, value-level
İlk çıkışı1998
TasarımcıBen Olmstead[1]
GeliştiriciBen Olmstead[1]
EtkilendikleriBrainfuck, INTERCAL (Tri-INTERCAL), Befunge
EtkiledikleriDis, Malbolge Unshackled
Olağan dosya uzantıları.mal, .mb

Malbolge (/mælˈbl/), Ben Olmstead tarafından 1998'de icat edilmiş kamu malı bir ezoterik programlama dilidir. İsmini Dante'nin Inferno adlı eserindeki Malebolge'den almıştır. Malbolge, özel olarak, sezgiye aykırı bir 'çılgın işlem', üç tabanlı aritmetik ve kendi kendini değiştiren kod yoluyla kullanılması imkansıza yakın olacak şekilde tasarlanmıştır.[2] Daha önceki zorlayıcı ezoterik dillerin (Brainfuck ve Befunge gibi) zorluğu üzerine inşa edilmiştir, ancak bilgisayar bilimi ve şifrelemenin karmaşık tarihlerinden yararlanarak bu yönü aşırı derecede abartmaktadır. Bu tasarıma rağmen kullanışlı Malbolge programları yazmak mümkündür.

Malbolge'de Programlama

Malbolge ilk ortaya çıktığında anlaşılması oldukça zordu ve ilk Malbolge programının ortaya çıkması iki yıl sürmüştü. Yazarın kendisi hiçbir zaman bir Malbolge programı yazmamıştır.[2] İlk program bir insan tarafından yazılmadı; Andrew Cooke tarafından tasarlanan ve Lisp'te uygulanan bir ışın arama algoritması tarafından oluşturuldu.[3]

Daha sonra Lou Scheffer, Malbolge'un kriptanalizini yayınladı ve girdisini çıktısına kopyalamak için bir program sağladı.[4] Ayrıca orijinal sitenin işleyişi durduktan sonra orijinal yorumlayıcıyı ve spesifikasyonu sakladı ve Malbolge'de program yazmanın genel bir stratejisinin yanı sıra Turing'in bütünlüğü hakkında bazı düşünceler de sundu.[5]

Olmstead, Malbolge'nin doğrusal sınırlı bir otomat olduğuna inanıyordu. Malbolge'de mantıklı döngülerin uygulanıp uygulanamayacağına dair bir tartışma var; ilk bitmeyen döngünün tanıtılması uzun yıllar aldı. Önemsiz olmayan döngüler ve koşullarla ilgilenen doğru bir 99 Bottles of Beer programı yedi yıl boyunca duyurulmadı; İlk doğru olanı 2005'te Hisashi Iizawa'ya aitti.[6]

Kaynakça

  1. ^ a b "Malbolge - Esolang". 27 Ağustos 2022 tarihinde kaynağından arşivlendi. Erişim tarihi: 27 Ağustos 2022. 
  2. ^ a b Temkin, Daniel (3 Kasım 2014). "Interview with Ben Olmstead". esoteric.codes. 20 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 7 Ocak 2021. 
  3. ^ "andrew cooke: malbolge "hello world"". web.archive.org. 6 Aralık 2019. 6 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2023. 
  4. ^ "Programming in Malbolge". www.lscheffer.com. 11 Haziran 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2023. 
  5. ^ http://progopedia.com/user/Nickolas. "Programming language Malbolge". progopedia.com (İngilizce). 9 Haziran 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2023. 
  6. ^ "99 Bottles of Beer | Language Malbolge". web.archive.org. 14 Mayıs 2020. 14 Mayıs 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 15 Aralık 2023. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Programlama dili</span>

Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını istediğini anlatmasının tektipleştirilmiş yoludur. Programlama dilleri, yazılımcının bilgisayara hangi veri üzerinde işlem yapacağını, verinin nasıl depolanıp iletileceğini, hangi koşullarda hangi işlemlerin yapılacağını tam olarak anlatmasını sağlar.

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

Kenneth Lane Thompson Amerikalı bir bilgisayar bilimcisi.Thompson, kariyerinin büyük bir bölümünde orijinal Unix işletim sistemini tasarlayıp uyguladığı Bell Labs'ta çalıştı. Ayrıca C programlama dilinin doğrudan selefi olan B programlama dilini de icat etti. Bununla beraber Plan 9 işletim sisteminin yaratıcılarından ve ilk geliştiricilerinden biriydi. Thompson, 2006'dan beri Go programlama dilini birlikte icat ettiği Google'da çalışmaktadır.

Python, nesne yönelimli, yorumlamalı, birimsel (modüler) ve etkileşimli yüksek seviyeli bir programlama dilidir.

<span class="mw-page-title-main">İngilizce</span> Batı Cermen dili

İngilizce (

<span class="mw-page-title-main">Mathematica</span> Hesaplama yazılım programı

Wolfram Mathematica, makine öğrenimi, istatistik, sembolik hesaplama, veri manipülasyonu, ağ analizi, zaman serisi analizine, NLP, optimizasyon, fonksiyonlar ve çeşitli veri türlerinin çizimi, algoritmaların uygulanması, kullanıcı arayüzülerin oluşturulması ve diğer programlama dilinde yazılmış programlarla arayüz oluşturmaya izin veren çeşitli teknik hesaplama alanları için yerleşik kütüphanelere sahip bir yazılım sistemidir. Stephen Wolfram tarafından tasarlanmış ve Champaign, Illinois'deki Wolfram Research tarafından geliştirilmiştir. Wolfram Language, Mathematica'da kullanılan programlama dilidir. Mathematica 1.0, 23 Haziran 1988'de Champaign, Illinois ve Santa Clara, Kaliforniya'da yayınlandı.

<span class="mw-page-title-main">Viki</span> ziyaretçilerin düzenleyebileceği web sitesi türü

Viki, bir iş birliği etrafında toplanan kimselerin web tarayıcı üzerinden yeni sayfalar oluşturmasına, sayfalarda düzenlemeler yapmasına ve bu sayfaları birbirine bağlamasına olanak sağlayan MediaWiki vb. bir yazılım altyapısı kullanan web sitelerinin genel adıdır.

<span class="mw-page-title-main">Digital Research</span>

Digital Research Dr. Gary Kildall tarafından CP/M işletim sistemi ve yan ürünlerinin geliştirilmesi ve pazarlanması için kuruldu. Mikrobilgisayar döneminin ilk büyük yazılım şirketiydi.

Müebbet Muhabbet, Cenk Durmazel ve Erdem Uygan tarafından üniversite yıllarında yapmaya karar verdikleri programlarıdır. İlk olarak özel bir radyoda kendi çabaları ile başlatıp programı daha sonraları daha çok insana ulaştırmayı başardılar, ardından televizyona geçerek işin içine görselik kattılar ve daha çok insanın onları izlemesini sağladılar. Şu anda Kanal 24 televizyonunda programlarına devam etmektedirler. Hafta sonları saat 23 sularında HÖTK adlı programları ile cuma günleri de münazara programlarıyla yayındalar. Program 13 Mart 2017 itibarıyla radyonom.com'da radyo yayın hayatına tekrar başladı.

<span class="mw-page-title-main">Brian Kernighan</span>

Brian Wilson Kernighan, Kanadalı bilgisayar bilimcisidir.

Ruby, nesneye yönelik, dinamik, reflektif ve esnek bir programlama dilidir. Ruby dili, Yukihiro Matsumoto tarafından Japonya'da tasarlanmaya ve geliştirilmeye başlanmıştır.

<span class="mw-page-title-main">Tayca</span>

Tayca ya da Merkez Tay dili, tarihî olarak Siyamca olarak bilinirdi, Merkez Tay halkıyla Çin asıllı Tayların büyük çoğunluğu tarafından konuşulan bir dil. Kra-Dai dil ailesinin Tay dalına ait. Tayland devletinin tek resmî dilidir.

<span class="mw-page-title-main">Go (programlama dili)</span> programlama dili

Go, statik tipli, derlenen, yüksek seviyeli bir programlama dilidir. Robert Griesemer, Rob Pike ve Ken Thompson tarafından Google'da 2007 yılından itibaren geliştirilmeye başlanmıştır. Sözdizimi C'ye benzerdir fakat hafıza erişimi güvenlidir, kullanılmayan hafıza kaynakları sisteme otomatik olarak geri verilir, interface veri tipleri sayesinde yapısal tip sistemini destekler ve eşzamanlı (concurrent) çalışan işlemlerin (process) ortak hafıza kullanabilmelerinin yanında birbiriyle iletişim kurmalarını sağlayan ögelere sahiptir. Eski alan adı golang.org olduğundan sık sık golang ismiyle anılır ama asıl adı Go'dur.

Yazılım tasarımı, bir sorunun yazılım çözümü için, sorun giderme ve planlama aşamasıdır. Yazılımın özellikleri kararlaştırıldıktan sonra yazılım geliştiricileri sorun için bir çözüm geliştirir. Bu aşama mimarisel görünüm kadar, alt düzey algoritma gerçeklemeyi de içerir. Yazılım tasarımı için programlamanın ilk aşaması da diyebiliriz. Programlama işlemine başlamadan önce mutlaka ön çalışma yapmak ve programın nasıl işleyeceğini ortaya koymak gerekir. Programlama makine dili veya yüksek seviyeli bir programlama dili kullanılarak yapılır.

Swift, Apple tarafından iOS ve macOS platformlarına iOS ve Mac uygulamaları geliştirmek için oluşturulan, derlenerek çalışan güçlü ve kullanımı kolay, nesne yönelimli bir programlama dili.

Kotlin, Java sanal makinesi (JVM) üzerinde çalışan ayrıca JavaScript kaynak koduna veya LLVM ile makine koduna derlenebilen, statik tipli bir programlama dilidir. İlk geliştirme Sankt-Peterburg, Rusya merkezli JetBrains programcıları tarafından yapılmıştır. İsmi Kotlin Adası'ndan gelmektedir. Java ile uyumlu sözdizimi olmasa da, Kotlin Java kodu ile birlikte çalışmak üzere tasarlanmıştır. Kotlin, Apple'ın Swift diline benzemektedir.

Harezm dili veya Harezmce, Soğdca ile yakından ilgili, soyu tükenmiş bir Doğu İran dilidir. Dil, Ceyhun yakınlarında bulunan Harezm bölgesinde konuşulmuştur.

Bilgisayar biliminde, bildirimsel programlama bir programlama paradigmasıdır. —bilgisayar programlarının yapısını ve öğelerini oluşturma stili— bir hesaplamanın mantığını kontrol akışını tanımlamadan ifade eder.