Alan Turing’in ana fikirlerini—algoritmalar, kararsızlık ve kod çözme—keşfedin; bunların modern bilişim, güvenlik ve makine zekâsını nasıl şekillendirdiğini öğrenin.

Bir telefon veya dizüstü bilgisayarla yaptığınız çoğu şey—web araması, mesaj gönderme, hesapların açılması, bir asistandan yardım isteme—Alan Turing'in netleştirdiği sorulara dayanır: Hesaplama nedir? Prensipte bir bilgisayar neler yapabilir? Ve sınırlamalar nerede?
Turing bugün önemli çünkü sadece akıllıca teknikler icat etmedi; oyunun kurallarını çerçeveledi. Modern yazılım mühendisliği, siber güvenlik ve yapay zeka araştırmaları, insanlar adını anmasa bile bu kuralların mirasçısıdır.
İlki hesaplama: Turing'in basit bilgisayar modeli ("Turing makinesi"), programlar, veriler ve algoritmalar hakkında konuşmak için temiz bir yol sunar. Bu sayede çok farklı cihazları—dizüstü bilgisayarlar, sunucular, akıllı telefonlar—aynı temel fikrin farklı versiyonları olarak karşılaştırmak mümkündür: talimatları çalıştıran genel amaçlı makineler.
İkincisi güvenlik: II. Dünya Savaşı sırasında Turing, kod çözmeyi sistematik, mühendislik odaklı bir disipline dönüştürmeye yardımcı oldu. Bu zihniyet, modern kriptografi ve güvenlik çalışmalarında yankılanır; başarı, saldırganların neler hesaplayabileceğini ve bunun ne kadar pahalı olduğunu anlamaya bağlıdır.
Üçüncüsü makine zekâsı: Turing dışarıdan bakarak zekâyı nasıl tanıyacağımızı pratik bir soru olarak sordu: Dışarıdan akıllı davranışı nasıl ayırt ederiz? Onun “Turing Testi” hâlâ bir referans noktasıdır; sınırlamalarına rağmen tartışmalarda sıkça kullanılır.
Bu rehber matematiği hafif tutup sezgiyi öne çıkarır. Temel tema basit: bilgisayarlar inanılmaz güçlü ama sihirli değiller. Bazı problemler hiçbir program tarafından çözülemez; daha birçok problem ise gerçek hayatta kullanılamayacak kadar pahalıdır. Bu sınırları anlamak, teknoloji iddialarını değerlendirmenize ve işe uygun araçları seçmenize yardımcı olur.
Alan Turing (1912–1954) genellikle çarpıcı hikâyelerle tanıtılır, ama onu anlamanın en yararlı yolu yaptığı iş ve kanıtladıklarıdır. Hesaplanabilecek şeylerle ilgili soruları kesin problemler olarak ele alan ve yanıtları gerçek makinelerle ilişkilendiren bir matematikçiydi.
1936 tarihli makalesi On Computable Numbers, kalıcı iki şey yaptı: hesaplama için soyut bir model tanımladı (bugün Turing makinesi olarak anılır) ve bazı programlarla ilgili soruların genel olarak çözülemeyeceğini gösterdi. Bu bilim kurgu değildi; mantık ve hesaplama sınırları üzerine dikkatli bir argümandı.
II. Dünya Savaşı sırasında Turing, kriptanaliz üzerinde çalıştı—şifrelenmiş mesajları çözmenin yollarını buldu. Popüler anlatımlar bazen onun Enigma'yı “tek başına” kırdığı veya “bilgisayarı” bir gecede icat ettiği izlenimi verir. Gerçek daha ilginçtir: büyük bir çabanın kilit bir katkılayıcısıydı; yöntemler tasarladı ve matematiksel içgörüyü tekrarlanabilir, operasyonel işe dönüştüren elektro-mekanik araçların şekillenmesine yardımcı oldu.
Turing'in gücü kanıtlarla uygulama arasında geçiş yapabilmesindeydi. Kağıt üzerinde idealize edilmiş bir makine hakkında düşünebilir, sonra gerçek bir sistemi daha hızlı ve güvenilir kılacak prosedürler ve donanım kısıtları tasarlamaya yardım edebilirdi. Bu karışım—formal düşünce artı pratik uygulama—modern bilgisayar biliminin bir şablonudur.
Turing'in fikirleri birçok alanda yankılanır: modern bilgisayar biliminin temelleri (hesaplanabilirlik ve kararlılık), erken güvenlik düşüncesi (sistematik kriptoanaliz) ve sonraki dönemdeki makine zekâsı tartışmaları. Sonuçlarına katılmasalar bile insanlar genellikle onun tanımladığı çerçeveyi kullanır.
Bir algoritma, sonuç elde etmek için takip edilecek açık adımlar dizisidir. Otomatik olarak "matematiksel" veya sadece bilgisayarla ilgili olması gerekmez—sadece tutarlı şekilde uygulanabilen bir yöntemdir.
Çay demlemek için basit bir tarif düşünün:
Bu bir algoritmadır: belirsizliği olmayan, sıralı adımlar ve öngörülebilir bir sonuç.
Erken makineler çoğunlukla tek amaçlıydı: bir işi iyi yapmak üzere tasarlanmış—dokuma desenleri üretmek, belirli tablolar hesaplamak veya belirli bir şifreleme/çözme işi yapmak gibi. Farklı bir iş istendiğinde genellikle farklı bir makine gerekir ya da büyük bir yeniden yapılandırma.
Bir genel amaçlı bilgisayar farklıdır. O, verdiğiniz talimatlara bağlı olarak birçok farklı algoritmayı çalıştırmak üzere tasarlanmıştır. Fiziksel donanım aynı kalır; değişen programdır.
Yazılımın özü, algoritmaları bir makinenin kesin olarak yürütebileceği şekilde yazmanın yoludur. "3–5 dakika bekle" yerine bir program "240 saniye bekle" diyebilir. "Şeker istersen" yerine "kullanıcı şeker seçtiyse bir çay kaşığı ekle" deyip koşulları netleştirir.
Bu dönüşüm—talimatları bir makinenin saklayıp okuyup çalıştırabileceği bir şey olarak görmek—modern hesaplamanın zeminini hazırladı: bir cihaz, sayısız görev, hepsi algoritmalar tarafından yönetiliyor.
Genel amaçlı fikir bugünün vibe-coding araçlarında görülebilir: her adımı elle yazmak yerine hedefi tarif edersiniz ve sistem bu tanımı çalıştırılabilir yazılıma dönüştürür.
Örneğin, Koder.ai, bir sohbet arayüzü aracılığıyla web, backend ve mobil uygulamalar oluşturmanıza; sonra kaynak kodu dışa aktarmanıza, dağıtmanıza ve barındırmanıza izin verir. İçeride Turing'in çerçevesine geri döner: sistem eninde sonunda çalışması gereken programlar (algoritmalar + veri + kontrol akışı) üretiyor ve bunlar zaman, bellek, güvenlik ve doğruluk gibi gerçek kısıtlar içinde yürütülmek zorunda.
Turing makinesi en iyi bir düşünce deneyi olarak anlaşılır: adım adım neyin "hesaplama" olduğunu yakalamak için kasıtlı olarak basit bir "hayali bilgisayar". Turing bununla bu cihazı inşa etmeye çalışmıyordu; hesaplama tanımını ispat yapmaya yetecek kadar kesin hale getirmek istiyordu.
Sonsuz uzunlukta bir kağıt şeridi (bant) ve karelere bölünmüş olduğunu hayal edin. Her kare boş, 0 veya 1 gibi bir sembol tutabilir. Bir okuma kafası aynı anda bir karenin üzerinde durur.
Küçük bir talimat kartı olduğunu düşünün: kafaya ne yapması gerektiğini söyler. Makine her zaman küçük bir durum kümesinden birinde çalışır (ör. bir sonraki rakamı arıyor veya tamamlandı gibi modlar).
Her (geçerli durum + mevcut bant sembolü) kombinasyonu için bir kural vardır:
Hepsi bu—ama doğru kurallarla makine tanıyacağımız herhangi bir algoritmayı gerçekleştirebilir.
Turing makinesi, hesaplamanın net bir tanımını sağlar: sonlu bir mekanik kural kümesi ve bir bellek alanı üzerinde işlem. Bu bir matematiksel modeldir, donanım plancı değil.
Model bu kadar minimal olduğu için kanıtlar için güçlüdür: eğer bu idealize makine bile bir şeyi hesaplayamıyorsa, sıradan bilgisayarlar da hesaplayamaz.
Günümüz programları bant ve kafa gibi görünmeyebilir, fakat eşleme basittir: bellek veri tutar, kontrol akışı durumu değiştirir ve talimatlar sembolleri dönüştürür. Hatta veritabanlarındaki "stored procedure"lar da aynı kalıbı izler: veriyi okuyan, güncelleyen ve tanımlı adımlardan geçen sabit kurallar—hesaplama tekrarlanabilir, kural tabanlı bir süreçtir.
Programlarla ilgili bazı sorular mekanik bir cevap gibi görünür. Turing, önemli bir sınıf soru için bu umudun imkânsız olduğunu gösterdi—neden? Çünkü genel bir yöntem olarak cevabın var olması mantıksal olarak imkânsızdı.
Bir problem karar verilebilir ise her girdi için her zaman biten ve doğru evet/hayır cevabı veren bir prosedür (algoritma) vardır.
Bir problem karar verilemez ise hiçbir algoritma tüm durumlar için böyle bir yöntem sağlayamaz. Bazı durumları çözebilirsiniz ama tek bir "her zaman doğru, her zaman sonlanan" karar verici inşa edemezsiniz.
Durma problemi sorar:
Herhangi bir program ve girdisi verildiğinde, programın sonunda durup durmayacağını her zaman belirleyebilir miyiz?
Turing cevabın hayır olduğunu gösterdi. Herhangi bir programı ve girdiyi alıp durma durumunu her zaman doğru tahmin eden evrensel bir kontrolcü yoktur.
Bundan sonra "tüm programlar için sonlanmayı tahmin etmek" imkânsızsa, birçok makul görünen "mükemmel analiz" aracının da imkânsız olacağını anlarsınız.
Evrensel bir hata algılayıcı demek: herhangi bir programa bakıp bu programda belirli bir hata olup olmadığını güvenilir şekilde söyleyebilen bir araç. Ancak birçok hata türü "bu program belirli bir duruma hiç girer mi?" sorusuna dönüştürülebilir—ve bu sorular durma problemini kodlayabilir.
Bu yüzden gerçek araçlar ödün verir: eksik olabilirler (bazı hataları kaçırır), bazen yanlış uyarı verirler ya da yalnızca sınırlı program türleri için çalışırlar.
Özellik olarak alın: "Bu program hiçbir zaman sonsuz döngüye girmez." Eğer bir araç bunu tüm programlar için mükemmel şekilde doğrulayabiliyorsa, durma problemini de çözmüş olurdu. Oysa bu karar verilemez olduğu için genel bir doğrulama mevcut değildir.
Bu yüzden linters, tür denetleyiciler ve statik analiz araçları değerlidir—ama sihirli değillerdir.
Turing'den sonra çıkan temel derslerden biri: "hesaplanabilir" demek "işe yarar" demek değildir. Bazı görevler prensipte mümkündür—bir program sonunda bitip çözümü verecektir—ama yine de gerçekçi değildir çünkü program çok uzun sürecek veya çok bellek tüketecek.
Her kombinasyonu deneyerek bir bulmacayı çözen bir program hayal edin. Bir şekilde çalışacaktır ama kombinasyon sayısı bilgisayarların gelişme hızından daha hızlı artarsa, "sonunda" evrenin yaşından daha uzun bir süre olabilir.
Bu, hesaplamanın sınırlarının pratik yüzüdür: bir çözümün var olup olmadığı değil, onun gerçek dünya kısıtları içinde sığıp sığmadığı önemlidir.
Her program kaynak tüketir:
Kağıt üzerinde küçük görünen bir fark gerçekte çok büyük olabilir. Girdi iki katına çıktığında işi iki katına çıkaran bir yöntem yönetilebilir kalabilir; işi kareleyen bir yöntem ise hızla kullanılamaz hale gelir.
Bilgisayar bilimciler problemleri gereksinimlerinin nasıl büyüdüğüne göre gruplar. Ağır matematik olmadan fikir basit:
Bu gruplamalar genellikle çözebileceğimiz problemleri verimli şekilde çözenlerle çözemeyeceğimiz problemleri ayıran karmaşıklık sınıfları olarak tartışılır.
Kriptografide zorluk genellikle bir özellik olarak kullanılır. Birçok güvenlik sistemi bir yönde yapmak için kolay ama anahtar olmadan geri almak için son derece pahalı olan görevlere dayanır.
Dolayısıyla karmaşıklık sınırları neyi hızla hesaplayabileceğimizi kısıtlar—ama aynı zamanda modern güvenliğin neden çalıştığını da açıklar.
Kriptoanaliz, şifrelenmiş mesajları anahtar bilmeden anlamaya çalışmaktır. II. Dünya Savaşı sırasında bu iş hayati öneme sahipti: şifreli iletişim planlar, emirler ve istihbarat taşıyordu; elle çözümlemek çok yavaş kalıyordu.
Mesajları zamanında okuyamıyorsanız üzerine hareket edemezsiniz—bu yüzden hız ve tekrarlanabilirlik zekâ kadar önemli oldu.
İyi şifreler mesajları rastgele gürültü gibi göstermeye çalışır. Kriptoanaliz, gerçeğin nasıl sızdığını arar: dildeki kalıplar, tekrar eden formatlar, öngörülebilir başlıklar veya insanların sistemleri kullanmadaki alışkanlıkları. Her mesajı tek seferlik bir bilmece olarak görmek yerine, kod çözücüler yakalamayı bir veri problemi olarak ele aldı.
Pratik yaklaşım üç bileşeni birleştirir:
İşte burada erken bilgisayar bilimi düşüncesi devreye girer: problemi kesinleştir, adımlara indir ve bu adımları insanlardan daha hızlı yürütebilen sistemler kur.
Modern güvenlik halen aynı zihniyetten başlar: zeki, ısrarcı ve kısıtlar içinde çalışan bir düşman olduğunu varsayın. Savunucular bazı varsayımlar yapar (gizlilik, anahtar yönetimi, kullanıcı davranışı, cihaz bütünlüğü); saldırgan en zayıfını arar.
Ayrıca bu bir ödünleşme dünyasıdır. Daha güçlü şifreleme kullanıcılar için karmaşıklığı artırabilir. Daha fazla izleme gizlilik endişeleri doğurabilir. Daha hızlı tespit daha fazla yanlış alarm getirebilir. Turing'in çağı bize kalıcı bir ders verir: güvenlik yalnızca "en iyi algoritmalar" değil; sistemler, teşvikler ve gerçek insanların kullanımı hakkında düşünmektir.
Turing, mesajların hayat-kurtaran olduğu bir dönemde çalıştı—ve bu baskı modern güvenlik hedefleriyle doğrudan eşleşir.
Güvenlik genellikle birkaç basit fikre dayanır:
Turing'in dönemi, bunların nadiren “bedava” elde edildiğini gösterdi. Tasarım yapmalı ve baskı altında test etmelisiniz.
Modern kriptografi matematiksel zorluk üzerine kuruludur: bir yönde yapmak kolay, anahtarsız geri dönmek çok zor (ör. büyük sayıların çarpanlara ayrılması). Bu "matematik kilidi"dir.
Ama gerçek zayıf nokta çoğu zaman "anahtar"dır. Anahtar yönetimi güvenli anahtar oluşturma, kopyalanamayacak şekilde saklama, gerektiğinde döndürme ve sızıntı durumunda hızlı iptal etmeyi içerir.
Parlak algoritmalar bir sızdırılmış anahtar, yeniden kullanılan şifre veya yamalanmamış bir sunucu tarafından altüst edilebilir.
Saldırganlar uyum sağlar. Güvenlik genellikle mükemmellik değil—riski azaltma ile ilgilidir: saldırıları pahalı, tespit edilebilir ve hasarı sınırlı kılmak.
Günümüzde saldırganlar bir zamanlar uzman ekiplerin gerektirdiği işleri otomatikleştirir: parola deneme, oltalama, milyonlarca sistemi tarama. İnternet ölçeğinde küçük hatalar büyük olaylara dönüşür—yanlış yapılandırılmış bulut depolama, kopyalanmış kimlik bilgileri veya bir çalışanın yanlış linke tıklaması gibi.
Dayanılmaz ders pratiktir: iyi matematiği disiplinli operasyonlarla eşleştirin ve sistemin sürekli saldırıya uğrayacağını varsayın.
Bir bilgisayarın "neler yapabileceği" hakkında konuşurken genellikle hayal edilebilecek her şeyi kastetmeyiz. Church–Turing tezi pratik bir kuraldır: bir görev hesaplanabilirse, doğru cevabı veren ve adım adım uygulanabilir bir prosedür (algoritma) vardır ve bu prosedür bir Turing makinesi tarafından yürütülebilir.
Adına rağmen, bu normal anlamda ispatlanabilecek bir şey değildir—çünkü resmi bir modeli (Turing makinesi gibi) gayri resmi bir fikirle ("herhangi bir etkili hesaplama yöntemi") ilişkilendirir. Bunun yerine, her yeni makine modeli (programlama dilleri, devre modelleri, hücresel otomatalar, modern CPU'lar) önerildiğinde genellikle aynı hesaplanabilir problemlere karşılık geldiği gözlemiyle desteklenen bir iddiadır.
Tez, farklı bilgisayarları ve dilleri detaylarda kaybolmadan karşılaştırmamıza izin verir. İki sistem "Turing-tam" ise, yeterli zaman ve bellek verildiğinde aynı tür fonksiyonları hesaplayabilirler.
Bu yüzden telefonunuz, dizüstü bilgisayarınız ve bir bulut sunucusu hız, maliyet ve ölçek dışında temel olarak çözdükleri problemler açısından farklı değildir.
Church–Turing bize her sorunun algoritmik çözümü olduğunu vaat etmez. Bazı problemler hesaplanamaz (ör. durma problemi). Ve bir şey hesaplanabiliyorsa bile o kadar yavaş olabilir ki pratikte işe yaramaz—bu, karmaşıklık teorisinin konusudur.
Turing, "Makineler düşünebilir mi?" sorusunun muğlâk olduğunu fark etti. "Düşünmek" duygu, anlayış, yaratıcılık, öz-farkındalık veya sadece iyi cevaplar üretmek anlamına gelebilir. Tanımı üzerinde anlaşmazlık varsa, net bir test de olamaz.
Turing, belirsiz soruyu daha pratik bir şeye çevirdi: bir makine konuşmada akıllı davranış sergileyebilir mi?
Klasik düzende, bir insan hakem gizli iki katılımcıyla yazışır: biri insan, diğeri makine. Hakem istediği soruları sorar ve sonunda hangisinin makine olduğunu belirlemeye çalışır. Hakem güvenilir şekilde ayırt edemezse makine testi geçmiş sayılır.
Bu, zekâyı "kanıtlamak"tan çok belirli bir etkileşimde ayırt edilemez performans hedefi koymaktır.
Turing Testi sınırlı bir davranışı ölçer:
Günümüzde sohbet botları kısa diyaloglarda insan gibi gelebiliyor; bu Turing'in fikrini yeniden güncel kılıyor. Ancak değerlendirme tuzakları da var: benchmark'lar üslup ve test formatlarına göre "oynanabilir" ve iyi sohbet eden bir sistem doğruluk, uzun vadeli akıl yürütme veya tutarlılıkta başarısız olabilir.
Süregelen ders, konuşmanın nihai zekâ ölçütü olmadığı; dikkatli, şeffaf testlere ihtiyaç olduğudur ve her testin gerçekten ne ölçtüğünü dürüstçe söylemeliyiz.
AI sistemleri uçsuz bucaksız görünse de hâlâ programlar üzerinde çalışırlar—dolayısıyla Turing'in çizdiği aynı sınırları miras alırlar. Bu sınırlar, neyin gerçekçi olduğu, neyin pahalı olduğu ve neyin prensipte imkânsız olduğu konusunda karar verir.
Birçok AI görevi hesaplanabilir ama pahalıdır: bir modeli eğitmek, cevabı aramak veya bir planı optimize etmek büyük zaman ve enerji gerektirebilir. Daha fazla veri ve hızlı donanım bazen çok yardımcı olur.
Bazı hedefler ise daha derin engellere çarpar. Bazı sorular herhangi bir genel prosedürle tüm durumlar için cevaplanamaz (karar verilemezlik ruhunda). Örneğin, "bu rastgele sistemin hiçbir zaman başarısız olmayacağını kanıtla" gibi hedefler geniş sınıflar için tam otomatikleştirilmiş şekilde çözülemez.
Bir problem hesaplanabilir olsa bile çözülemez (intractable) olabilir: gereken zaman o kadar hızlı büyür ki "daha fazla veri ekle" işe yaramaz. Bu uzun vadeli planlama, kapsamlı doğrulama ve bazı en kötü durum akıl yürütmeleri için geçerlidir.
AI yaklaşık veya tahmin yoluyla çalışabilir ama garantiler pahalılaşır.
Mükemmel garantiler sınırlı olduğu için değerlendirme belirsizliği yönetmekle ilgilidir: hata oranlarını ölçmek, nadir senaryolarda stres testi yapmak ve zaman içinde hata modlarını izlemek. En zor hatalar tipik benchmark'larda görünmeyen kenar durumlarda yaşar.
Sınırlar güvenliği de şekillendirir. Kurallarla tüm kötü davranışları "güvenilir şekilde" filtreleyemezsiniz ve her etkileşimi tam olarak doğrulayamazsınız. Prompt injection, veri zehirleme ve suistimal savunmaların katmanlı olmasını gerektirir: izleme, erişim kontrolü, kırmızı takım testleri ve dikkatli sistem tasarımı—tek bir mükemmel teste güvenme yerine.
Turing'in çalışması sıklıkla tarih olarak öğretilir ama onu daha yararlı kılan şey, bilgisayarların neler yapıp yapamayacağı konusunda düşünme için bir "yol haritası" sunmasıdır.
1) Hesaplanabilirlik (prensipte ne mümkün). Turing makinesi hangi problemlerin herhangi bir adım adım prosedürle çözülebileceğini konuşmak için net bir yol verir. Durma problemi burada başlıca sonuçtur: programlarla ilgili bazı sorular genel olarak çözülemez.
2) Karmaşıklık (gerçek zaman ve kaynaklarla ne mümkün). Birçok görev hesaplanabilir ama girdi büyüdükçe zaman, bellek veya enerji patlayabilir. Bu yüzden "küçük örnekte çalışıyor" demek gerçek dünyada işe yarayacağı anlamına gelmez.
3) Güvenlik (sınırlar bizi nasıl koruyabilir). Modern kriptografi pratik sınırlara dayanır: bir sistemi kırmak imkânsız değil ama büyük ölçekte çok pahalıdır. Turing'in kod çözme deneyimi bize saldırganların matematik, mühendislik ve operasyonel kestirmeler kullandığını hatırlatır.
Bir hesaplama problemiyle karşılaştığınızda sırayla üç soru sorun:
Daha derinlemesine merak ediyorsanız, iyi sonraki konular şunlardır:
Hesaplamadaki ilerleme gerçek—daha hızlı donanım, daha iyi algoritmalar, daha güçlü güvenlik araçları. Sınırlar da gerçektir ve onları anlamak pratik bir avantaj sağlar: doğru aracı seçmenize, gerçekçi beklentiler koymanıza ve matematiği görmezden gelen vaatlere aldanmamanıza yardımcı olur.
Bir Turing makinesi, hesaplamanın minimal, soyut bir modelidir: bir bant (bellek), okuma/yazma kafası ve sonlu bir kural kümesi (durumlar). Önemli olan, "bir program"ın prensipte ne yapabileceğini donanımdan veya programlama dilinden bağımsız olarak kesin bir şekilde tartışmamızı sağlamasıdır.
Church–Turing tezi, etkili, adım adım bir yöntemle hesaplanabilecek her şeyin bir Turing makinesi tarafından hesaplanabileceği iddiasıdır. Bu resmi bir teorem değildir; daha çok farklı hesaplama modellerini (CPU'lar, diller, devre modelleri vb.) tek bir “hesaplanabilir” kavramı altında karşılaştırmamıza olanak veren, yılların deneyimiyle desteklenen bir sınırlandırma fikridir.
"Hesaplanabilir" demek, doğru sonucu üretecek bir algoritmanın var olduğu anlamına gelir (sonunda). "Verimli" demekse, girdi büyüdükçe zaman ve bellek gibi kaynakların pratik sınırlar içinde kalmasıdır. Birçok gerçek dünya hatası, bu ikisini karıştırmaktan kaynaklanır—bir şey hesaplanabilir olabilir ama maliyeti patlayınca kullanışsız olur.
Durma problemi, herhangi bir programın ve girdisinin sonunda durup durmayacağını (sonlanıp sonlanmayacağını) herkese karşı doğru şekilde belirleyebilecek evrensel bir algoritma olup olmadığı sorusunu sorar. Turing, böyle bir evrensel belirleyicinin mümkün olmadığını gösterdi. Pratikte bu, keyfi kod için "mükemmel" analiz araçlarının olamayacağı anlamına gelir.
Çünkü birçok hata özelliği, "bu program bir durumda bulunur mu?" sorusuna döndürülebilir—bu da durma problemini kodlayabilir. Bu yüzden gerçek araçlar ya eksik olur (bazı hataları kaçırır), ya bazı durumlarda yanlış uyarı verir (yanlış pozitif), ya da yalnızca belirli diller/pattern'ler için geçerli olacak şekilde sınırlanır. Bu yüzden iyi statik analiz değerli ama sihirli değildir.
Karmaşıklık, kaynak ihtiyaçlarının girdi boyutuyla nasıl büyüdüğünü ifade eder—özellikle zaman ve bellek. Küçük bir büyüme oranı farkı bile ölçeklendikçe her şeyi domine edebilir (ör. iki katlama ile kare alma arasındaki fark). Bu yüzden küçük örneklerde iyi görünen bir yöntem, gerçek veride uygulanamaz hale gelebilir.
Modern kriptografi genellikle anahtarla yapılması kolay ama anahtarsız geri döndürülmesi çok pahalı olan problemlere dayanır. Bu "masraf farkı" bir karmaşıklık varsayımıdır: saldırganlar prensipte hesaplayabilir, ama gerçekçi zaman/bütçe içinde değil. Yani sınırlar yalnızca engel değil, aynı zamanda güvenliğin bir parçasıdır.
Turing'in kod çözme çalışması, kalıcı bir yaklaşım modeli sundu: yapı, istatistik ve otomasyon kombinasyonu.
Modern güvenlik çalışmaları da aynı deseni takip eder—şimdi internet ölçeğinde.
Turing Testi, bir makinenin konuşma yoluyla insan benzeri davranış sergileyip sergilemediğini ölçmeye yönelik davranışsal bir kıstas sunar. Gözlemlenebilir olması bir güçtür, ama anlayış, bilinç veya doğruluk gibi içsel durumları doğrudan ölçmez. İkna edicilik bazen blöf veya kaçınma ile elde edilebilir; bu yüzden bir testin ne ölçtüğünü açıkça anlamak önemlidir.
Yapay zeka sistemleri programlar üzerinde çalıştığı için Turing'in belirlediği hesaplanabilirlik ve karmaşıklık sınırlarını devralırlar. Bu sınırlar, neyin gerçekçi olarak vaat edilebileceğini, neyin pahalı olduğunu ve neyin prensipte imkânsız olduğunu belirler. Bu nedenle AI güvenliği için "her durumda asla başarısız olmaz" gibi mutlak garantiler vermek genellikle mümkün değildir; bunun yerine risk yönetimi, test, izleme ve katmanlı savunmalar gerekir.