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回答

    有谁知道这可能是什么语言? ([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][[]+[])[+[]]+([![]]+[][[]]) [+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!!)[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[