Investor's wiki

Turing Tamamlandı

Turing Tamamlandı

Turing Complete, gerekli talimatlarla birlikte yeterli zaman ve bellek verildiğinde, ne kadar karmaşık olursa olsun herhangi bir hesaplama problemini çözebilen bir makineyi ifade eder. Terim normalde modern programlama dillerini tanımlamak için kullanılır, çünkü çoğu Turing Complete (C++, Python, JavaScript, vb.).

Turing Makinesi Nedir?

Günümüz bilgisayarlarından önce Alan Turing, günün birinde herhangi bir sorunu çözebilecek bir makine olacağını varsayıyordu. Bu makine Turing Makinesi olarak tanındı.

Alan, makinesini, üzerinde ikili kod (1'ler ve 0'lar) biçiminde yazılmış bilgilerin bulunduğu uzun bir bant parçası olarak hayal etti. Makinede ayrıca, şerit boyunca hareket eden ve her kareyi tek tek okuyan bir okuma/yazma kafası olacaktır. Kod, makineye bir hesaplama sorunu soracak ve bant, bir çözüme ulaşmak için gerektiği kadar uzun olacaktır.

Kafa bant boyunca hareket ederken, makine nasıl tepki vereceğini yöneten basit talimatları takip eder. Kaseti okur, talimatları takip eder ve ilerledikçe yeni bir kod yazmak için belirli bir eylem gerçekleştirir. Bu yeni kod kalıbı, sorunun cevabıdır. Turing'in varsayımsal makinesi, kodda ifade edilebilecek (ve hesaplanabilir bir cevabı olan) herhangi bir hesaplama problemine cevap verebilir.

Bir cihaz veya programlama dili, herhangi bir programı çalıştırarak veya Turing Makinesinin çalıştırabileceği veya çözebileceği herhangi bir sorunu çözerek bir Turing Makinesini çoğaltabildiğinde, Turing Complete olarak kabul edilir. Öte yandan, bir cihaz veya programlama dili bunu yapamıyorsa, o zaman Turing Eksik olduğu söylenir.

Basit bir hesap makinesi, yalnızca birkaç tür hesaplama yapabildiğinden Turing Incomplete sistemine bir örnektir. Buna karşılık, programlanabilir bir bilimsel hesap makinesi (her türlü hesaplamayı yapabilen) bir Turing Makinesi olarak düşünülebilir.

Blockchain ve Turing Eksiksizliği

Blok zinciri teknolojisinin bazı uygulamaları Turing Complete iken, diğerleri Turing Incomplete'dir. Bu, uygulanan komut dosyası teknolojisine göre değişir. Örneğin, Bitcoin'de kullanılan betik dili, amacına hizmet ettiği ve artan karmaşıklığın potansiyel olarak sorunlara yol açacağı için kasıtlı olarak Turing Incomplete olarak tasarlanmıştır. Geliştiriciler, basit tutarak, kullanıldığı sınırlı sayıda durumda nasıl tepki vereceğini yüksek doğrulukla tahmin edebilirler.

Ethereum ise Turing Complete blok zinciri olarak inşa edilmiştir. Bu önemlidir çünkü akıllı sözleşmeleri oluşturan anlaşmaları anlaması gerekir. Turing Complete olarak Ethereum, henüz düşünülmemiş olsa bile gelecekteki herhangi bir anlaşmayı anlama ve uygulama yeteneğine sahiptir. Başka bir deyişle, Ethereum'un Turing Eksiksizliği, doğru talimatlara, yeterli zamana ve işlem gücüne sahip olduğu sürece, neredeyse her görevi gerçekleştirmek için kod tabanını kullanabileceği anlamına gelir.