interpreter

    1热度

    1回答

    所以我想用JavaScript实现LISP的一个子集。我被困在与lambda相关的两件事上。 如何实现创建lambda的能力,并同时给它的参数,并立即评估?例如: ((lambda(x)(* x 2)) 3) 现在我硬编码这个功能在我的eval环这样的: else if (isArray(expr)){ if (expr[0][0] === 'lambda' || expr[0][

    -1热度

    2回答

    我正在为我创建的静态类型语言编写解释器。解释器是用C语言编写的。为了简单起见,我只列出两种基本数据类型,int和float。 我需要某种类型的结构,其可以存储: 一个基本数据类型 函数返回一个类型 一个某种类型的数组 类型定义 类型可以简单地作为基本数据类型或数组或函数之一。因此,有一个函数返回返回一个返回int的函数的函数是有效的。 我知道我可以使用联合存储基本数据类型,但是如何存储函数,数组和

    0热度

    1回答

    我想研究解释器和编译器的基础知识,使用F#和FsLexYacc库,但是我很难理解编写Lexer和Parser文件的原则......我正在关注this example,但它为iterpreter使用了一些简单的SQL查询。我在寻找的是如何使用F#将this grammar转换为有效的Lexer和Parser。 如果有帮助,我会包含我的AST,Lexer和Parser文件。 这是AST module

    4热度

    4回答

    有一个结构,如下所示: typedef enum any_type{ ANY_TYPE_CHAR, ANY_TYPE_UCHAR, ANY_TYPE_SHORT, ANY_TYPE_USHORT, ANY_TYPE_INT, ANY_TYPE_UINT, ANY_TYPE_LONG, ANY_TYPE_ULONG,

    1热度

    1回答

    我有以下Brainfuck解释器通过最小测试套件。除了像打印斐波那契序列这样的大问题似乎失败(套件中的最后一个测试)。我解释失误执行的brainfuck斐波那契代码是从http://esoteric.sange.fi/brainfuck/bf-source/prog/fibonacci.txt。 我的解释有什么问题? 这里是一个小提琴:https://jsfiddle.net/rt017kpz/

    0热度

    1回答

    您好我正在尝试使用PyCharm来调试我的流浪机上使用解释器的项目。它以前完美运行,但现在已停止。 我的设置已附加,错误消息位于以下屏幕截图中。 请帮忙。 enter image description here

    0热度

    1回答

    考虑下面的SQL语句 select * from A inner join B on A.FK = B.PK inner join C on A.FK = B.PK 这显然是不正确形成陈述。 C的连接使用B的连接条件。但是,这仍然运行。在这种情况下,口译员如何决定加入C?为什么这甚至是被允许的陈述?有没有任何情况下,像这样的东西是可取的?

    20热度

    1回答

    我读过Dan Piponi在The Three Projections of Doctor Futamura上的优秀博客文章。在文章结尾处,他有一个附录,其中有Haskell中Futamura预测的证据。但是,我发现他的文章缺乏有关涉及语言的信息。为了使Futamura预测能够工作,专业人员必须具备哪些源语言,目标语言和对象语言?例如,如果我在Haskell中编写了一个Haskell到LLVM专家

    2热度

    1回答

    我实现纯C Lisp语言解释器时遇到了问题由C过渡到Lisp语言来引导一个Lisp解释。 继彼得·诺维格在步骤他blog post,我有一个REPL迄今解析Lisp的表达式成Lisp的数据结构和串行化所得到的数据结构回如下所示被印刷在Lisp表达式: 我也有保罗Grahm实现七元described,并理解其中的自循环直译器。我的烦恼写在C代码(不口齿不清!)一旦它已经被解析(下称“EVAL”),上

    0热度

    3回答

    我研究了在不同处理器体系结构上执行Java的地方。如果它使用编译器,那么将会有一些(机器码)指令,这些指令将特定于处理器体系结构,并且Java将取决于平台。 但是由于java使用解释器,它是独立于处理器架构的。 我的问题是如何在Java应用JIT(准时)编译器?处理器的架构不会影响它吗?如果它不影响它,那为什么不影响它呢?