forth

    2热度

    1回答

    有没有办法改变HERE指向什么或者其他方式来确保我编译的下一个定义最终会在某个特定位置?或者,我可以将定义复制到别的地方吗?理想情况下,我希望在ANS Forth中有一个解决方案,但Gforth特有的东西足够好。

    7热度

    2回答

    实施SWAP我看到在interview with Chuck Moore,他说: 操纵该堆栈的字是DUP,DROP和OVER时期。 有没有,很好的SWAP非常方便,你想要它,但它不是 机器指令。 于是,我就在仅仅DUP,DROP和OVER方面实现SWAP,但无法弄清楚如何做到这一点,没有至少增加堆栈。 这是怎么回事?

    1热度

    1回答

    如何比较Forth中的两个字符串? 而且我可以在if语句中执行它,还是应该创建一个辅助布尔变量?这是我迄今为止的代码。顺便说一下,[email protected]是从用户那里获得输入。 : var compile: VARIABLE complile: ; : lock compile: var realPass$ compile: realPass$ "password" ! c

    0热度

    1回答

    我对于Forth中的s>d和d>s函数的工作方式非常困惑。 从我读过,打字16.0会把160 0在栈上(因为它占用了两个单元)和d.将显示160。 现在,如果我进入16 s>d我希望将栈160 0和d.显示160像以前的例子那样。但是,堆栈是16 0和d.是16。 我输错了吗? ?作为“转换一个单细胞数值为双单细胞值s>d不是那么简单没有任何理由为这种不规则任何线索将不胜感激

    2热度

    1回答

    从Rosetta code开始,我使用以下方法连接Forth中的字符串。 s" hello" pad place pad count type s" there!" pad +place pad count type 使用此代码,我希望能够连接多个字符串连接在一起。然而,下面的Gforth s" hi " pad place s" hello " pad place s" world

    1热度

    1回答

    我目前正在编写一个用Forth编写的小型解释器。对于一个小的优化,我想有它创建编译的话,例如一个字,这东西的行为是这样的: : creator (-- a) :noname (u -- u) 10 + ; ; 10 creator execute . >> 20 ok 如果试了几种方法,到目前为止和非工作(幼稚象上面,在解释开关模式,试图编译一个Forth源代码的

    1热度

    2回答

    我正在做C中的Forth解释器。我无法决定如何更好地实现Forth字典。 struct Word { struct Word* next; char* name; int* opcode; // int arg_count; } struct Dictionary { struct Word words; int size;

    4热度

    1回答

    我使用的是Gforth,我想在定义中创建一个单词。在Gforth的CMD线I可以输入: create foo ok 或者更具体地说,我定义预计在堆栈上的尺寸和与所述地址到该阵列创建一个字的阵列功能: : array (n --) (i -- addr) create cells allot does> cells + ; 所以如果我输入10 array foo,我可

    1热度

    1回答

    我有兴趣在游戏引擎中使用SuperCollider的各种插件。但我的编程语言(SwiftForth)中的FFI仅支持普通的旧C语言DLL文件。 我知道,对于初学者,我需要某种OSC界面。然后,SuperCollider需要以某种方式运行。我不知道如何在游戏中完成这些细节。 我也读了一些关于SuperCollider的命令行接口。对于我想要做的事情,这是否实用? 我愿意接受建议和选择,但唯一不可协商

    1热度

    2回答

    我有一个复杂的程序,用Forth编写,在DOS下运行。我使用DOSBox在Windows下运行此代码  7. 有没有办法以某种方式让此程序在云上运行,以便我可以通过任何启用了Internet的计算机访问它,并使用完整的I/O?