Kendi derleyici Turing-complete ifade edebilecek herhangi bir dil var mı?


12

Tex üzerine bir yorum SE beni şaşırttı . İfade aslında:

X dilinde X için bir derleyici yazabilirsem, X Turing-complete'tur.

Hesaplanabilirlik ve biçimsel diller açısından:

Eğer karar L L , T , E ve M L , daha sonra F L = R, E .MLLTMMLFL=RE

İşte tüm Turing makinası kodlamaların dilini belirtir ve F L makinalar tarafından hesaplanan fonksiyonların kümesini belirtir L .LTMFLL

Bu doğru mu?


yakın, düşün / katılıyorum buna yakın bazı gerçek thm olması gerekir, herhangi bir "önemsiz" veya "yeterince karmaşık" kendi simülatörü ifade TM tam olduğunu ifade eder . bir derleyici genellikle bir simülatörün bir parçasıdır. aslında pek çok TM eksiksizlik kanıtında bulunan bir "tasarım deseni" dir, ancak belki de genelleştirilmemiştir / resmileştirilmemiştir. belki de Bilgisayar Bilimi Sohbeti'nde daha fazla analiz / tartışma konusu olabilir . şüpheli / varsayım "biraz önemsiz / yeterince karmaşık özyinelemeli ve özyinelemeli olarak numaralandırılabilir dil birbiriyle eşleştirilebilir / azaltılabilir" gibi başka ilginç bir şey vardır.
vzn

1
InterpretMe adlı ezoterik bir dil yarattım, bu da kendi tercümanını ifade etmekten başka bir şey yapamaz , bu yüzden kesinlikle Turing tam değil.
Bağlamsız Yazım

İkinci ifadeyi açıklayabilir misiniz? Nedir ? Bu ifade ilkiyle nasıl ilişkilidir? M
reinierpost 17:17

@reinierpost tipik sayısını göstermektedir M bazı (kabul edilebilir) kodlayan verilir. Bu nedenle, L , T K = { M | M  Turing makinesidir } . By F L ı dil tarafından hesaplanan fonksiyonlar kümesi göstermek L Turing makinelerinin. MMLTM={MM is a Turing machine}FLL
Raphael

Talebi ifade için daha iyi bir şekilde olacaktır: "orada TM ise ile M L ve L M = L , daha sonra F L =MMLLM=L .FL=RE
Raphael

Yanıtlar:


13

Aşağıdaki programlama dilinde gösterildiği gibi gayrı resmi ifade doğru değildir. ASCII karakterlerinin herhangi bir dizesi geçerli bir programdır ve her programın anlamı, "Yalnızca girdisinin bir kopyasını çıktısı alan bir program çıktısıdır." Bu nedenle, bu dildeki her program dil için bir derleyicidir, ancak dil Turing-complete değildir.

"Hesaplanabilirlik teorisi sürümünüz" eşdeğer olup olmadığından emin değilim ama aynı zamanda doğru değil. By Kleene'nin ikinci tekrarlama teoremi , herhangi Turing makinelerinin kodlama için kendi kodlama kabul eder ve diğerlerini reddeden bir TM yoktur. 1 Bu makine teklife bir örnektir. Daha somut olarak, bir kodlama seçerek sonuca ulaşabiliriz. Örneğin, "Girişim garip ise, kabul et; aksi halde reddet" ile tanımlanan  makine numarasını tek tek kodlayın ve  Turing makineleri için kendi favori kodlama şemanızda x ile kodlanan makinenin 2 x kodunu kodlayın  .M2xx  dil olduğu  L tarafından kabul  MMLMancak  Turing tamamlanmıyor.FL


1 Kleene'in ikinci özyineleme teoremi , kısmi özyinelemeli işlevlerin sayımı için (yani, programların tamsayı olarak kodlanması için) ve herhangi bir kısmi özyinelemeli işlev  ( Q , x , y ) için bir tam sayı  s , öyle ki φ s  haritalar fonksiyonudur y için Q ( s , y ) . Bu nedenle, özellikle Q = x y ise kabul eden işlev olsun(ϕi)i0Q(x,y)pϕpyQ(p,y)Qx=yve aksi takdirde reddeder. Teoremi olarak, bir tam sayıdır vardır  bu kodları programın φ p ( y ) = Q, ( s , y ) . Yani, ϕ p kendi p kodlamasını kabul eder ve  diğer tüm girdileri reddeder.pϕp(y)=Q(p,y)ϕpp


1
Hangi dilde her program o dil için bir derleyici? Her program, o dilde bir program giren ve o dilde farklı bir program çıkaran bir programdır, evet, ancak tırnaklar genellikle derleyici sayılmaz.
user253751

1
Ben @immibis bir nokta var düşünüyorum: derleyici olan c ( P ) = { x r e t u r n P } dildeki tüm programlar ise P ( x ) = P , böylece c dilinde açıkça değil . Bir şey mi kaçırıyorum? cc(P)={xreturn P}P(x)=Pc
Raphael

1
@immibis (haklı olarak) haklı olduğunu düşünüyorum. Yazmak istediğim, her programın anlambiliminin sadece "girdinizi çıktısı" olduğudur. Bu, muhtemelen ilk başta söylemek istediğim şey olduğunu yazdığım şeye yeterince yakın görünüyor. Ya da belki de yanlış cevabımdan doğru cevaba kadar olan düzenleme mesafesinin çok küçük olduğu için çok şanslıydım. :-)
David Richerby

1
Şimdi yanıt "girdisini yok sayar ve girdisinin bir kopyasını çıkarır" der - ikisini birden yapamazsınız.
user253751

@immibis Tekrar gireceğim .
David Richerby
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.