2010年12月8日 星期三
2010年12月2日 星期四
2010年12月1日 星期三
2010年11月26日 星期五
2010年10月2日 星期六
Forth VM
看了一篇文章,討論 Forth VM 的設計:Updating the Forth Virtual Machine。在傳統的 Forth VM 中有兩個堆疊一個記憶體。這樣的設計不容易執行 C 編譯出來的程式。也不適合用做 DSP 的 VM。為此,文章中提出了對 Forth VM 的修正,多提供了以下四個 registers 用來存取記憶體:A、B、X、Y。
特別記錄下這文章,因為我考慮以 Forth 做為我某種應用的 VM。
- A、B:有自動加減記憶體指標的功能,適用於 DSP,也可以用做 scratch register。
- X、Y:能對記憶體定址,可以做為 local variable 或 user variable 的指標。
特別記錄下這文章,因為我考慮以 Forth 做為我某種應用的 VM。
2010年8月13日 星期五
jonesforth
又回到 Forth,繞了一圈,在某些應用領域這個古怪的語言仍遠勝其他的 scripting languages。
在找尋一個適合我未來使用的 Forth 時我發現了 jonesforth ,依照它的文件編譯成功,執行時 Linux 卻發出了 Killed 的異警。瞭解後原來某些版本的 Linux 不允許使用 text segment at zero。
以以下方式編譯後就不會有異警。
gcc -m32 -nostdlib -static -Wl,--build-id=none -o jonesforth jonesforth.S
在找尋一個適合我未來使用的 Forth 時我發現了 jonesforth ,依照它的文件編譯成功,執行時 Linux 卻發出了 Killed 的異警。瞭解後原來某些版本的 Linux 不允許使用 text segment at zero。
以以下方式編譯後就不會有異警。
gcc -m32 -nostdlib -static -Wl,--build-id=none -o jonesforth jonesforth.S
訂閱:
文章 (Atom)