首页 文章
  • 3 votes
     answers
     views

    口译员理论,部分评估员和编制者

    所以我一直在学习堆栈机器,解释器,编译器以及与编程语言及其一般理论相关的一些其他内容 . 我在书籍和网上找到的大多数东西都非常专业,并且谈论一个特定主题,例如:口译员,没有提及它与其他主题的关系,例如部分评估员 . 是否有任何良好的初学者资源来探索解释器,编译器和部分评估器之间的互连?通过良好的资源,我的意思是解释理论和具体实施 . 我越了解这些东西,我在日常工作中看到的地方越多,所有这些都可以应...
  • 1 votes
     answers
     views

    解释器的堆可以以某种方式比使用向量更有效地实现吗?

    我正在Rust中编写一个解释器,用于特定于域的语言,该语言应该允许高性能的实现 . 堆的相关属性是: 程序很短(但很多都是执行的) 我知道,在执行开始之前,需要的最大内存量 所需的内存很小 在程序终止之前不需要取消分配 创建后,所有数据都是不可变的 语言是静态类型检查的,因此没有访问未初始化内存的风险 语言是单线程的,因此没有共享内存 我在堆中的元素有一个固定的结构...
  • 3 votes
     answers
     views

    F# - 在运行时创建递归识别联盟

    我正在尝试编写一个简单的解释器来使用F#控制Turtle .我创建了以下递归联合类型来表示Turtle将接受的几个命令 . 代码将由"Command list"表示,使用简单的递归函数执行时不应该太难 . type Command = | Repeat of amount * Command list | Forward of amount | Turn of directi...
  • 16 votes
     answers
     views

    图灵机代码高尔夫

    好的,今天's goal is to build a Turing machine simulator. For those that don'知道它是什么,见the Wikipedia article . 我们今天使用的状态表位于the Formal Definition that's part of that page的末尾 . 代码将采用一系列“0”和“1”字符串字符,一个表示机器开始的字符...
  • 3 votes
     answers
     views

    如何为小语言 Build 翻译? [关闭]

    我想弄清楚从这个项目开始的位置 . 也许有人可以引导我朝着正确的方向前进 . 给我一个小语言,我必须为他写一个翻译 . 该语言由括号中的表达式组成: (integer integer operator) 或由以下形式的表达式组成的算术IF语句: IF exp1 exp2 exp3 exp4 如果exp1为负,则返回exp2,如果exp1为零,则返回exp3;如果exp1为正,则返回exp4 ....
  • 0 votes
     answers
     views

    我的翻译语言似乎不识别“”符号并返回错误 . 我的代码出了什么问题?

    我编写了一个解释器,它将 String 作为指令集 . 该指令集声明了一组变量并返回其中一个变量 . 示例指令集将是: A = 2 B = 8 C = A + B C 这应该返回变量c并在控制台中打印 10 . 前提条件是左侧必须始终是一个字母,右侧只能包含一个数字或添加两个数字,并且return语句必须始终是一个变量 . 我编写了以下代码来执行此操作: public class Interp...
  • 27 votes
     answers
     views

    编译语言可以同音吗?

    根据定义,homoiconic这个词的意思是: 代码和数据的相同表示 在LISP中,这意味着您可以使用带引号的列表并对其进行评估,因此 (car list) 将是函数和 (cdr list) 参数 . 这可以在编译时或在运行时发生,但是它需要解释器 . 没有编译时解释器的编译语言是否也可能是homoiconic?或者说同性恋的概念仅限于口译员?
  • 0 votes
     answers
     views

    有没有办法模拟调用父类的静态方法进行简单的全局错误处理的Java行为?

    我正在尝试在Rust中实现一个简单的解释器,用于编写一个名为 rlox 的编程语言,遵循Bob Nystrom的书Crafting Interpreters . 我希望错误能够在任何子模块中发生,并且它们在 main 模块中是"reported"(这是在本书中使用Java完成的,只需在包含类的类上调用静态方法来打印违规令牌和线) . 但是,如果发生错误,我不能像 Result:...
  • 2 votes
     answers
     views

    嵌入ocaml解释器

    我有一个小语言,它基本上是OCaml的扩展(实际上它是OCaml子集的扩展,但这几乎不重要) . 为了简化操作,我有一个“转义”表达式将OCaml文字传输到我的语言中(因此您可以将任意OCaml代码嵌入到该语言中) . 将这样的表达式编译成OCaml只是意味着打开字符串,但是如何评估它呢? 当然我理解OCaml是一种静态类型语言,以及该类型系统的工作原理 . 因此,我还需要能够提供一个环境并检查表...

热门问题