Bilgisayar biliminde gayb mümkün mü?
Undefined Behavior nedir?
Undefined behavior -kısaltırsak (UB)- runtime'da programın nasıl davranacağını Allah'dan celle celaluh başka kimsenin bilmeyeceği; programcıların kesinlikle kesinlikle kaçınması gereken durumlardır. UB'de derleyiclerin belirli bir şekilde kod üreteceği kesin değildir. Peki neden UB vardır? Neden derleyiciler buna izin verir?
Çünkü C ve C++ derleyicileri kodu optimize eden derleyicilerdir. Yani yazılan kaynak kodu yeniden düzenlerler. Bu öyle ki derleyicinin dili olsa, kodu yazan programcıya bu kodu senin yazdığını mı zannediyorsun diye sorsa cevap veremez; o kadar. Öyle durumlar var ki insan aklının ötesinde optimizasyon yapıyor derleyiciler dersek yanılmayız sanırım.
Bir de unspecified behavior vardır. Bu UB'den farklı olup derleyicinin nasıl kod üreteceği konusunda herhangi bir bağlayıcılığı yoktur. Örneğin;
x = f1() +(f2()*5); atamasında ilk önce hangi fonksiyonun çağıralacağı sorulsa cevabı bilinmezdir. Ama bu durum programcının başına bela açmayacağı yönüyle UB'den farklıdır.
const char* p1 = "oytun";
const char* p2 = "oytun";
if(p1 ==p2){
} UB'ye örnektir ve kod programcının beklentisine uygun olarak çalışabilir ki bu en tehlikeli durumdur.
Unspecified behavior'da derleyici tarafından her zaman aynı kod üretilcek diyemeyiz.
Son olarak implementation defined behavior vardır. Unspecified behavior'ın alt kategorisidir. Farkları; implementation defined durumunu derleyiciler dökümante etmek zorundadır; bu da demektir ki derleyici hep aynı yolu seçerek derleme yapar.
Tüm yazdıklarım neticesinde tekrarlamak istediğim sorular şunlardır: neden gayb var? neden gaybın var olduğunu biliyoruz ama gaybı Allah'dan celle celaluh başkası bilemez?[1]
Aslında maddi destek istememizin nedeni çok basit: Çünkü Evrim Ağacı, bizim tek mesleğimiz, tek gelir kaynağımız. Birçoklarının aksine bizler, sosyal medyada gördüğünüz makale ve videolarımızı hobi olarak, mesleğimizden arta kalan zamanlarda yapmıyoruz. Dolayısıyla bu işi sürdürebilmek için gelir elde etmemiz gerekiyor.
Bunda elbette ki hiçbir sakınca yok; kimin, ne şartlar altında yayın yapmayı seçtiği büyük oranda bir tercih meselesi. Ne var ki biz, eğer ana mesleklerimizi icra edecek olursak (yani kendi mesleğimiz doğrultusunda bir iş sahibi olursak) Evrim Ağacı'na zaman ayıramayacağımızı, ayakta tutamayacağımızı biliyoruz. Çünkü az sonra detaylarını vereceğimiz üzere, Evrim Ağacı sosyal medyada denk geldiğiniz makale ve videolardan çok daha büyük, kapsamlı ve aşırı zaman alan bir bilim platformu projesi. Bu nedenle bizler, meslek olarak Evrim Ağacı'nı seçtik.
Eğer hem Evrim Ağacı'ndan hayatımızı idame ettirecek, mesleklerimizi bırakmayı en azından kısmen meşrulaştıracak ve mantıklı kılacak kadar bir gelir kaynağı elde edemezsek, mecburen Evrim Ağacı'nı bırakıp, kendi mesleklerimize döneceğiz. Ama bunu istemiyoruz ve bu nedenle didiniyoruz.
Bir tanımla katkıda bulunmam gerek diye düşünüyorum yazdıklarımı okuyacak sizlere:
Gayb: Arapça’da “gizli kalmak, gizlenmek, görünmemek, uzaklaşmak, gözden kaybolmak” anlamında masdar ve “gizlenen, hazırda olmayan bulunmayan şey” mânasında isim veya sıfat olarak kullanılır (Lisânü’l-ʿArab, “ġyb” md.; Fîrûzâbâdî, el-Ḳāmûsü’l-muḥîṭ, “ġyb” md.).
- 2
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- ^ ACM Other conferences. Undefined Behavior | Proceedings Of The Asia-Pacific Workshop On Systems. Alındığı Tarih: 27 Ağustos 2022. Alındığı Yer: ACM Other conferences | Arşiv Bağlantısı
Evrim Ağacı'na her ay sadece 1 kahve ısmarlayarak destek olmak ister misiniz?
Şu iki siteden birini kullanarak şimdi destek olabilirsiniz:
kreosus.com/evrimagaci | patreon.com/evrimagaci
Çıktı Bilgisi: Bu sayfa, Evrim Ağacı yazdırma aracı kullanılarak 12/09/2024 08:35:33 tarihinde oluşturulmuştur. Evrim Ağacı'ndaki içeriklerin tamamı, birden fazla editör tarafından, durmaksızın elden geçirilmekte, güncellenmekte ve geliştirilmektedir. Dolayısıyla bu çıktının alındığı tarihten sonra yapılan güncellemeleri görmek ve bu içeriğin en güncel halini okumak için lütfen şu adrese gidiniz: https://evrimagaci.org/s/12305
İçerik Kullanım İzinleri: Evrim Ağacı'ndaki yazılı içerikler orijinallerine hiçbir şekilde dokunulmadığı müddetçe izin alınmaksızın paylaşılabilir, kopyalanabilir, yapıştırılabilir, çoğaltılabilir, basılabilir, dağıtılabilir, yayılabilir, alıntılanabilir. Ancak bu içeriklerin hiçbiri izin alınmaksızın değiştirilemez ve değiştirilmiş halleri Evrim Ağacı'na aitmiş gibi sunulamaz. Benzer şekilde, içeriklerin hiçbiri, söz konusu içeriğin açıkça belirtilmiş yazarlarından ve Evrim Ağacı'ndan başkasına aitmiş gibi sunulamaz. Bu sayfa izin alınmaksızın düzenlenemez, Evrim Ağacı logosu, yazar/editör bilgileri ve içeriğin diğer kısımları izin alınmaksızın değiştirilemez veya kaldırılamaz.