我找不到它,是否非常好奇 - 如果它沒有資格,它缺少什麼功能來限定?我已經完成了相當數量的批量工作,並沒有發現任何明顯的能力偏差。批次圖靈完成嗎?
Q
批次圖靈完成嗎?
17
A
回答
12
我相信它有資格。圖靈完備性的基本要求被認爲可以簡化爲幾個簡單的操作,包括:存儲狀態(變量)的能力,分支能力(條件)以及迭代能力(循環)。批處理具有所有這些特性,所以除非對圖靈完備性有一些尚未發現的要求,否則批處理腳本是合格的。
15
我只是(因爲brainfuck被證明是圖靈完整的)「證明」批是圖靈完備,通過創建一個批處理解釋brainfuck:
https://github.com/YoYoYonnY/Brainfuck-In-Batch
順便說一句,一個圖靈完備編程語言意味着其可以:
- 不可能創造一個能確定是否存在另一個程序(在相同的語言),最終會停止或將繼續運行下去(我不知道這個是如何工作的,我不要以爲任何人Ver使用這個來證明圖靈的完整性)。
- 可以創建可在語言上運行的所有可能的程序的程序(A解釋:Brainfuck interpreter in Brainfuck(有一個更好的版本,這點我很遺憾不能找到這個人是非常慢))
- 可能採取行動像或模擬圖靈機,並因此包含至少以下幾個方面:
- 寫入存儲器(即改變的可變值爲任何其他值;只能夠改變
true
到false
和周圍的其他方法是仍然有效。在批次的情況下:SET A=5
) - '無限'記憶(即我可以寫多個位/字節,最好是無限多。只要我們可以寫入整個對象,字符串,數組,表格,位域甚至只是整數都是有效的。請注意,必須可以通過地址讀取和寫入變量:如果要使整數有效,必須有位移,並且必須能夠索引數組,例如
array[index];
。) - 條件跳轉語句(即
IF %A%==0 GOTO LABEL
(跳轉到標籤如果A是零),while (var) {/*code*/}
(跳轉回到開始的代碼,而VAR不爲零)或jmp0 exit;
(跳轉到退出如果堆棧上的當前值爲零))
- 寫入存儲器(即改變的可變值爲任何其他值;只能夠改變
傳統的圖靈機需要你有一個雙方無限的磁帶,但是一個簡單的數組,字符串,表(對象)或二進制數(位域)將會也工作。例如,在我的「Brainfuck in Batch」中,我使用了一個類似數組/表格的對象來存儲內存(因爲batch允許您更改數值的鍵,如下所示:SET ARRAY[%KEY%]=%VALUE%
)
相關問題
- 1. 春季批次+完成某個步驟
- 2. 我的程序是否完成圖靈?
- 3. 尋找非圖靈完成的語言
- 4. 是SQL甚至TSQL圖靈完成?
- 5. CouchDB視圖 - 多次連接...可以完成嗎?
- 6. VHDL圖靈是否完整?
- 7. 圖靈的完備性
- 8. 等待批從批處理完成?
- 9. 完成一次後圖像不重複
- 10. 如何判斷我的EAP呼叫批次何時完成?
- 11. SQL事件探查器SQL:批次完成
- 12. 春天批次 - Hibernate集成
- 13. JFLAP圖靈機的批量測試
- 14. 在意圖完成後調用onResume()嗎?
- 15. Sencha導出圖表可以完成嗎?
- 16. jquery在完成一次後調用第二次自動完成
- 17. C++預處理器元編程圖靈完成?
- 18. 已批量完成與啓用/ p LNK相同的任務嗎?
- 19. 春季批處理作業後狀態完成它再次啓動,並再次
- 20. 將大型SQL腳本分成更小的批次有利嗎?
- 21. 完成批量插入後如何獲取「完成」消息?
- 22. lambda演算的圖靈完備性?
- 23. 基於constexpr的計算圖靈完整?
- 24. 關於UML和圖靈完全
- 25. 與多個批次批次
- 26. Colorbox完成多次啓動
- 27. 一次完成此操作?
- 28. jQuery - 做一次AJAX完成
- 29. 批次 - 試圖獲得systeminfo.exe
- 30. 在Android中完全縮小圖像:可以完成嗎?
我還會指出人們設法做一些完全荒謬的事情,只使用純批量腳本。 :S – Wug
我覺得這比它略微多一些。圖靈機不僅僅是「存儲狀態」,它基本上是一個雙端堆棧。 FSM具有弱狀態,分支和迭代版本,不是TC。 PDA甚至有一個堆棧,但仍然不是TC;它需要一個有兩個堆棧的PDA作爲TC。 –