1

的爲什麼第四實施rot運營商,以及爲什麼它正好運行堆棧的三個最上面的項目?必要性的「腐」操作

難道僅僅是爲了方便或將第四不圖靈完全沒有這樣的指令?圖靈完成的最低可行選項是三個數字嗎?

我可以想象一個人可以實現rotpickroll。所以如果沒有這三個操作,它是否仍然是圖靈完備?

+1

這是一個基本的基於堆棧的語言,不必四處洗牌頂級的堆棧內的值來完成這項工作是一個非常普遍的需求。所以它有很多詞彙:dup,dup,drop,swap,over,nip,tuck,rot,-rot,當然,方便。 –

+0

@HansPassant請參閱編輯,是否意味着它的方便? –

+1

許多處理器都實現它。以語言提供它是有道理的。我在20世紀70年代使用過一種IMP操作符的語言。 – EJP

回答

5

本主題無關圖靈完備性可言。

rot操作僅是爲了方便和效率。它可以使用swap定義:

: rot (a b c -- b c a) >R SWAP R> SWAP ; 

pickroll可使用返回堆棧(這些>RR>操作),或任何其它棧中實現。

堆棧可使用存儲器訪問字來實現。