Açık, eksiksiz, bir dilin Turing Compete olduğunu kanıtlıyor musunuz?


10

HTML5 + CSS'nin Turing Complete olduğunu "kanıtladığını" iddia eden web siteleri gördüm.

SQL "Turing Complete olduğunu kanıtlamak" iddia web siteleri gördüm.

Turing Complete olmanın ne anlama geldiğini "açıklamayı" iddia eden bir grup web sitesi gördüm.

Yeter!

"Hesaplanabilirlik teorisinde bir uzman tarafından yazılmış) veya haklı bir makaleyi (saygın bir dergide) nerede" "Bu dil XYZ aynı hesaplama gücüne sahip bir hesaplama makinesini tanımlayabilir. Turing Makinesi olarak "?


3
Hiçbir uzman böyle bir makale yazmayacaktır çünkü anlamsız olacaktır.
Andrej Bauer

Ama bunu yapan makaleler var. Yarı-gecikmeye duyarsız devrelerin, inşaat ile bir kanıtı olan Turing-complete olduğunu düşünün .
Dan D.

2
HTML5 + CSS veya SQL veya PHP'nin Turing'in tamamlandığına dair ayrıntılı bir kanıtı olan hakemli bir makale bulabilirseniz şapkamı yiyeceğim.
Andrej Bauer

@andrej bunu deneyin. yeterince yakın? XSLT Sürüm 2.0 Turing-Complete: Tamamen Dönüşüm Tabanlı Bir Kanıt . belki sadece sebzelerini ye: p
vzn

ayrıca bkz. bir dili
turing'i

Yanıtlar:


12

İki sayaçları uygulayabilirsiniz Her dil (yani iki iki keyfi büyük tamsayılar saklayabilir kayıtları) ve bu iki temel talimat etiketlenmiş dizisi ile yapılmış bir program tamamlandı Turing edilir:C1,C2

  • ADD karşı Ci i , GOTO talimat ben j1Cbenbenj
  • SUBTRACT karşı gelen C ı ise C ı > 0 ve GOTO talimat I j ; aksi takdirde ( C i = 0 ise ) GOTO komutu I k1CbenCben>0benjCben=0benk

Sonuç şu şekilde kanıtlanmıştır:

Marvin L. Minsky, "Turing Makinaları Teorisinde Post'un Etiket Sorununun ve Diğer Konuların Tekrarlayan Çözümsüzlüğü" (1961)

Hesaplamalı bir modelin (sizin durumunuzda bir programlama dili + bu dilde yazılmış programları yürüten bir cihaz ) yalnızca sınırsız miktarda belleğe (örn. Boşluk) erişimi destekliyorsa veya depolayabiliyorsa ( bazı biçimlerde) keyfi olarak büyük tamsayılar. Gerçek bir bilgisayardaki bir programlama dili uygulaması, Doğrusal Sınırlı Otomat ile eşdeğerdir .

RAM modelindeki ve RASP modelindeki Wikipedia sayfalarında da birçok referans bulabilirsiniz .

Son olarak, farklı hesaplama modellerinin denkliğine odaklanan güzel bir kitap:

"Hesaplama Modelleri: Hesaplanabilirlik Teorisine Giriş", yazan Maribel Fernandez


"Bir programlama dilinin Turing'i sadece sonsuz belleğe erişimi destekliyorsa tamamlayabileceğini unutmayın" Bu nedenle Turing Complete dilinin bir uygulaması olamaz mı? Bu senin sonucun mu? Yoksa kullandığımız dillerin hepsinin (çoğunun) Turing Complete olduğunu söylemek mi istediniz? Her iki sonuç da şu anda olduğu gibi cevabınızdan geçerlidir.
Bakuriu


@Bakuriu: Gerçekten cümle biraz belirsiz; Sadece bir hesaplama modeli sınırsız bir depolama alanı kullanılmasına izin veriyorsa Turing tamamlandı olarak düşünülebilir. Çoğu programlama dili Turing tamamlanmıştır çünkü (sözdizimi) özelliklerinde değişkenlerin veya işaretçilerin boyutu üzerinde sınırlar yoktur, ancak uygulamaları sınırlıdır; bakınız örneğin C'nin <limit.h>. Dolayısıyla, bir C uygulamasını çalıştıran sınırsız belleğe sahip bir bilgisayarınız olsa bile, dilin parçası olmayan bir "ekstra mekanizma" sağlamadığınız sürece bu belleği kullanamazsınız.
Vor

{w.w|w{0,1}}

3

Hesaplanabilirlik ve karmaşıklık teorisi hakkında en yaygın kullanılan iki ders kitabı:

Michael Sipser: Hesaplama Teorisine Giriş , 2 / e, Cengage, 2005.

John E Hopcroft; Jeffrey D Ullman: Otomata Teorisine Giriş, Diller ve Hesaplama , Addison-Wesley, 1979.

Resmi kanıtlar olmadan hesaplanabilirlik teorisinin teknik detayları üzerinde çalışan güzel insanlar için güzel bir felsefe monografisi de vardır.

Douglas Hoftstadter: Gödel, Escher, Bach , Temel Kitaplar, 1979.

Son olarak, hesaplanabilirliğe en iyi giriş, ünlü bir mantıkçı tarafından bir bulmaca kitabı olabilir:

Raymond Smullyan: Leydi veya Kaplan ve Diğer Mantık Bulmacaları , Penguen, 1983. (Şimdi ucuz bir Dover baskısında, 2009.)

(Liar'ın paradoksuna dayanan bir sürü bulmaca ile başlar ve daha sonra gizemli bir kilitli kutu hakkında Sherlock Holmes tarzı bir bulmaca kisvesi ile kendini referanslı bir ifadenin inşasında çalışır.)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.