问题标签 [interpreter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
674 浏览

functional-programming - 函数式编程和方程求解器

就像个人实验一样,为了更好地学习编程和形式语言理论等,我正在尝试编写一种语言,它基本上可以接收一堆方程并或多或少地自动或启发式地求解未知数。我试图通过用 C 编写解释器来做到这一点。

不过,所有这些都不是超级相关的......更重要的是,我在过去几天发现了函数式编程(我的意思是我阅读了维基百科的条目和一个简短的 Haskell 教程),它似乎处理非常相似我想做的事情。

我想我想知道的是,是否还有其他语言我应该研究,或者任何非功能性语言具有尝试做类似事情的库或程序,这样我可能会更好地理解我是什么出发做什么?

此外,是否有任何关于编写口译员等的好的参考资料?

谢谢。

PS 哦,我知道我可以而且应该使用 Google。我,在一边。最重要的是,我正在寻找关于什么是好的以及人们以前使用过的“第二意见”的集体。另外,我正在尝试更好地了解社区,因为我是新来的。谢谢你的耐心 :-)

0 投票
5 回答
918 浏览

perl - Perl 可以“静态”解析吗?

一篇名为“Perl 无法解析,正式证明”的文章正在流传。那么,Perl 是在“运行时”还是“编译时”决定其解析代码的含义?

在我读过的一些讨论中,我觉得这些论点源于不精确的术语,所以请尝试在你的答案中定义你的技术术语。我故意不定义“运行时”、“静态”或“解析”,以便我可以从可能与我不同定义这些术语的人那里获得观点。

编辑:

这与静态分析无关。这是一个关于 Perl 行为的理论问题。

0 投票
3 回答
273 浏览

java - 爪哇;运行时解释;添加插件的策略

我开始着手我的第一个大型项目。这将是一个与Rosetta Stone非常相似的程序。它将是一个用于学习外语的程序,使用 Swing 用 Ja​​va 编写。在我的程序中,我计划让用户能够选择下载的课程来学习。因为我的母语是英语,所以我将能够创建一门英语课程。但是,我希望说其他语言的人也能够编写课程供用户使用(这是我的程序运行的重要部分)。

由于我希望用户能够下载他们想要的语言课程,因此将其硬编码到程序中是不可能的。课程需要在运行时进行解释。此外,由于我希望其他人与我的工作合作(即制作课程),我需要让他们轻松地这样做。

这样做的最佳方法是什么?

我想出的想法是有一个严格的空课程大纲(硬编码)和一个简单的 xml 文件,其中详细说明了要使用的文本和声音。这样做的缺点是它极大地限制了作者。不同的语言可能需要从学习不同的部分开始。

对于手头的问题以及整个项目的任何建议将不胜感激。任何相关资源或信息的链接也将不胜感激。

想想你的时间和精力,

约瑟夫池塘

0 投票
7 回答
1959 浏览

python - 用 Python 编写解释器。isinstance 被认为是有害的吗?

我正在将我从 Scala 创建的特定领域语言的解释器移植到 Python。在这个过程中,我试图找到一种方式来模拟我广泛使用的 Scala 的案例类功能。最后我求助于使用 isinstance,但感觉我可能错过了一些东西。

诸如此类攻击使用 isinstance 的文章我想知道是否有更好的方法来解决我的问题,而不涉及一些基本的重写。

我已经建立了许多 Python 类,每个类代表不同类型的抽象语法树节点,例如 For、While、Break、Return、Statement 等

Scala 允许像这样处理运算符评估:

到目前为止,对于 Python 的移植,我已经广泛使用 elif 块和 isinstance 调用来实现相同的效果,但更加冗长且不符合 Python 风格。有没有更好的办法?

0 投票
4 回答
8186 浏览

java - 我们可以在硬件中实现一个本地执行 Java 字节码的 Java 解释器吗?

如果我们在硬件中实现 java 解释器,那么我们如何实现 java 字节码的体系结构中立性...... java 是否使用 JIT(即时解释器)?以及这一切与操作系统的虚拟机概念和java虚拟机(JVM)有何关系

0 投票
6 回答
37795 浏览

linux - /usr/bin/perl: 错误的解释器: 文本文件忙

这对我来说是一个新问题:这个错误表明什么?

当时有几个磁盘密集型进程正在运行,但我以前从未见过该消息——事实上,这是我记得第一次在尝试运行 Perl 脚本时遇到错误。经过几秒钟的等待,我能够运行它,并且从那以后就没有看到这个问题,但是对此有一个解释会很好。

运行Ubuntu 9.04,文件系统为ext3。

0 投票
7 回答
4779 浏览

java - Java中的Forth解释器

在这里,我找到了一个用 Java 实现的简单 Forth 解释器。
但是,如果我想使用它,我不明白它的意义?

Forth Interpreter 的优势是什么:

  • 如果 JVM 执行的最终编译代码仍然是“字节码”,我们的 Forth 解释器会做什么?
  • 它有助于编写高效/紧凑的程序吗?
  • 我会在 Forth 中编写代码,然后解释器会将其转换为 Java 吗?

你的意见...

0 投票
3 回答
1537 浏览

tcl - 如何使用 Tcl 的 (interp) bgerror

我正在尝试在从解释器中运行 tclhttpd,但稍作修改以便在 tclkit 中运行。下面的代码“运行”(我可以点击http://localhost:8015)但从未到达底部的 puts 行,因为“服务器没有返回,它进入 [vwait forever]”。但是当我尝试“after 0 技巧”时,例如在“$httpd eval $cmd”行前面加上“after 0”,服务器根本没有运行,所以我认为“错误必须由 bgerror 处理”

但是我找不到如何使用 bgerror 的好例子,而且我的研究表明现在的惯例是使用“interp bgerror”。请参阅http://www2.tcl.tk/_/gsearch?S=bgerror返回的前几个示例;第一个链接包含“填写有用的技巧和使用 bgerror 的示例”这样的措辞,但是没有我可以辨别如何应用的示例,第二个链接的结论是“我对应该如何使用它的示例感兴趣”。

0 投票
2 回答
942 浏览

javascript - 在运行时解释和/或接收 dotNet 代码

Html 可以包含嵌入其中的少量 Javascript(例如在onclick事件处理程序中定义)。

  1. 如果我使用像 C# 这样的 dotNet 语言编写 Html 浏览器,我可以使用哪些技术或 API 来运行这样的 Javascript 片段,因为我直到运行时才收到它(并将其作为字符串数据接收,而不是作为可执行文件接收代码)?

  2. 如果要运行的代码是 C# 片段而不是 Javascript,是更容易还是更难?

  3. 是否有任何技术不需要我的代码具有不寻常的特权?例如,像CodeCompiler.FromSourcerequires之类的方法SecurityPermissionFlag.UnmanagedCode(在我看来这太过分了:我不明白为什么编译代码如此危险)。

  4. 如果我控制服务器端和客户端代码,我还可以考虑在服务器而不是客户端上编译这些脚本片段,然后将其作为预编译代码发送到客户端执行。有没有办法通过网络将此类代码(可能是 dotNet 程序集)发送到客户端,让客户端代码从网络将其接收到客户端 RAM,并在客户端调用它而不将其存储为客户端磁盘驱动器上的文件?


编辑

我已经回答了前三个问题:我已经接受了编译需要高特权的事实。我不明白为什么;也许(尽管我认为这不是一个非常有说服力的理由)这是因为编译器是使用非托管代码实现的。当他们使用托管代码重新实现编译器时,也许这会改变,也许是在“C# 版本 5”时间范围内。无论如何,无论出于何种原因,它似乎就是这样,并且没有解决方法(其他类似的 API,但需要较少的权限)。

那么我剩下的问题是如何从一台机器到另一台机器获取一个组装实例。当我有时间时,我会找出不受信任的代码是否可以运行该Assembly.Load(byte[] rawAssembly)方法。

0 投票
7 回答
661 浏览

javascript - 我应该支持哪种游戏脚本语言?

游戏内脚本将控制 NPC/AI 逻辑。

如果我要实现游戏内脚本功能,它应该支持哪种语言?

请记住,我的实现将在多个平台上运行,例如 .net、flash、javascript 和 java。

列出的可能性的优点和缺点是什么?实现解释器需要多长时间?

游戏内脚本编写者在寻找哪些功能?其他游戏正在实施什么?

我正在考虑投票支持 javascript,因为每个人都可以阅读和编写它。

你怎么认为?