2009-03-29 18 views
12

MATLAB'ın Turing complete olup olmadığını merak ediyorum = = sayısal olarak evrensel, yani "herhangi bir tek bantlı Turing makinesini simüle etmek için kullanılabilirse")?MATLAB'ın Turing'in tamam mı (hesaplama evrensel) olup olmadığını merak ediyorum?

+0

Sorgumu gerçekten ne demek istediğimi iletmek için geri aldım. –

+1

Matlab'da kendiniz için kanıtlamak için neden bir Turing makinesini kullanmıyorsunuz? – nibot

+0

Gerçek bir Turing makinesinin sonsuz bir bant gerektirdiğini unutmayın, bu yüzden kesinlikle konuşmak gerekirse, herhangi bir dil keyfi olarak büyük miktarda bellek aldığımız sürece sadece "Turing complete" olabilir. – nibot

cevap

38

Turing'in tam olması, gerçek dünya dilleri için oldukça düşük bir çubuktur. Wikipedia (vurgu mayın) göre:

şey tam Turing olduğunu göstermek için, bazı Turing tüm sistemi taklit etmek için kullanılabilir olduğunu göstermek için yeterlidir. o koşullu ve (örneğin, ve "git" ifadeleri veya talimatı "sıfır ise şube" "eğer". OISC bakınız) yeteneği için dallanma varsa Örneğin, bir zorunluluk dil Turing tamamlandığında isteğe bağlı belleği konumları (örneğin, değişkeninin rasgele bir sayısını koruma yeteneği) değiştirin. Bu hemen hemen her zaman olduğu için, zorunlu dillerin tümü sonlu belleğin sınırlamalarını göz ardı edersek tamamlanamaz. Bunun ötesinde

, MATLAB bir nispeten modern 3GL/4GL beklediğiniz özelliklerin çoğuna sahip. Bir VM, G/Ç, kullanıcı arabirimi yapıları, matematiksel operatörler (açık bir şekilde), veri tipleri, kullanıcı tanımlı işlevler vb. Ile tamamlanmıştır. Matlab programlarını Matlab ortamının dışında da gönderebilirsiniz.

Bir iyi dilinin tamamen farklı bir soru olup olmadığını unutmayın.

+0

Ayrıca, Matlab – Rodrigo

+0

dışındaki matlab lib'lerini de kullanabilir ancak matlab "derleyicisi" ni matlab içine tamamen yazmak veya matlabın kendisini matlabda yeniden yazmak mümkün olabilir mi? – karsten

+0

@karsten tabiki. Böyle bir şeyin çok pratik olduğunu hayal edemiyorum, ama bunun mümkün olmaması için hiçbir neden göremiyorum. –

3

Programlama dilleri ve komut dosyası dilleri arasında ayrım yaptığınızı varsayalım ve MATLAB yapısı nedeniyle bir komut dosyası dili gibi görünüyor? Bu durumda, fikriniz bir programlama dilini düşündüğünüze bağlı olabilir.

MATLAB'ın Turing-complete olduğuna ve makul derecede katı ve kullanılabilir bir sözdizimine sahip olduğuna inanıyorum, bu yüzden bir programlama dili diyorum. Aynı zamanda, csh muhtemelen turing-complete'tir, fakat programlamak için o kadar betimleyici ki, bir betik dili olarak adlandırıyorum.

+0

"Programlama ve betikleme" argümanı MATLAB için daha da karmaşıklaşabilir çünkü "scripts" ve "m-files" (yani "functions") arasındaki farkları çizer. – gnovice

+1

csh = c kabuk, kabuklu yazı dillerinden biri, genellikle linux, unix, bsd, vb üzerinde bulunur. –

+1

lol, peki ya ksh? keskin ...:) –

İlgili konular