stack-based

    1熱度

    1回答

    我對如何使用基於堆棧(類似於Forth)的語言構建高級(Java-like)語言感興趣。任何人都可以推薦一些文獻,最好是一本書? 如果有幫助:應用程序是從比特幣的腳本構建更高級別的語言。

    7熱度

    2回答

    我有興趣通過實現基於堆棧的編程語言來擴展我對計算機編程的知識。我正在尋求從何處開始的建議,因爲我打算具有像「pushint 1」這樣的功能,它會將值爲1的整數推到堆棧的頂部,並通過標籤(如「L01: jump L01:」)進行流量控制。 到目前爲止,我已經做了一個C#實現,我希望我的語言行爲像(想鏈接到它,但IDEOne被阻止),但它非常混亂,需要優化。它將輸入轉換爲XML,然後解析它。我的目標是

    1熱度

    1回答

    當運行我的代碼,我得到了以下錯誤: Unhandled exception at 0x00BA16A0 in GameLauncher.exe: Stack cookie instrumentation code detected a stack-based buffer overrun. 我不知道這可能是導致此。它與下面的代碼引起的: #include "stdafx.h" #include

    0熱度

    3回答

    我想的char*數據複製到char* 插圖 var1 -> O var2 -> K 第一步驟的另一最後地址 var1 -> OK var2 -> K 拷貝var2到var1 結果 ​​ 編寫的代碼 #include <stdio.h> #include <string.h> void timpah(char *dest, char *src, int l_dest, int l_

    2熱度

    1回答

    在Objective-C中,我聲明瞭這樣一個C數組: int length = 10; int a [length]; 這不會在Xcode中引起任何錯誤,但會導致Visual Studio等其他編譯器出錯。 請告訴我它是如何工作的。我應該使用它還是使用malloc/calloc來代替?

    6熱度

    1回答

    我知道基於寄存器和基於堆棧的虛擬機如何獨立工作。我知道兩者的優點和缺點。我想知道的是,有沒有人試圖合併這兩個? 我試圖搜索網絡的存在這樣的虛擬機,但無濟於事。我得到的最好結果是一篇關於混合虛擬機的文章(HyVM)。如果這樣的虛擬機確實是爲編程語言而創建的,那麼我有興趣查看其源代碼以瞭解其工作原理。 也許有人可以指引我找到這樣一個虛擬機的正確方向,或者將我鏈接到一篇文章或博客文章,詳細闡述這個主題。

    1熱度

    1回答

    的爲什麼第四實施rot運營商,以及爲什麼它正好運行堆棧的三個最上面的項目? 難道僅僅是爲了方便或將第四不圖靈完全沒有這樣的指令?圖靈完成的最低可行選項是三個數字嗎? 我可以想象一個人可以實現rot與pick或roll。所以如果沒有這三個操作,它是否仍然是圖靈完備?

    6熱度

    1回答

    爲什麼基於寄存器的虛擬機比基於堆棧的要好? 具體來說,在the Parrot VM's document,該設計師解釋寄存器機的好處: [...]在高級語言很多程序包括嵌套函數和方法調用,有時詞法變量來保存中間結果。在非JIT設置下,基於堆棧的虛擬機會彈出,然後多次推送相同的操作數,而基於寄存器的虛擬機將簡單地分配適量的寄存器並對其進行操作,這可以顯着減少操作的數量和CPU時間。 偏偏是相同的操作

    5熱度

    2回答

    尋找一個JavaScript中的構造,其工作方式類似於C++中基於堆棧或局部對象的析構函數。 #include <stdio.h> class M { public: int cnt; M() {cnt=0;} void inc() {cnt++;} ~M() {printf ("Count is %d\n", cnt);} }; ... {M

    1熱度

    1回答

    有誰知道這可能是什麼語言? ([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][[]+[])[+[]]+([![]]+[][[]]) [+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!!)[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[