ruby - 如何编写解释器?

标签 ruby lisp interpreter

我决定用 Ruby 编写一个小型解释器作为我的下一个项目。我需要具备哪些知识/技能才能成功?
我还没有决定要解释的语言,但我正在寻找一种不是玩具语言,但编写解释器相对容易的东西。 提前致谢。

最佳答案

你至少要学会:

  • 词法分析(将字符分组为标记)
  • 解析(将标记组合成结构)
  • 抽象语法树(在数据结构中表示程序结构)
  • 数据表示(假设您的语言会有变量)
  • “运行”您的程序的评估循环

可以在介绍性文本中找到对其中一些主题的精彩介绍 Structure and Interpretation of Computer Programs .那本书中使用的语言是 Scheme,这是一种健壮、规范明确的语言,非常适合您的第一个解释器实现。强烈推荐。

关于ruby - 如何编写解释器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1926835/

相关文章:

scheme - 查找调用许多过程的过程的增长顺序

Python函数调用顺序

lua - 我可以在评估器模式下运行 Lua 解释器吗?

javascript - 为什么 "use strict"不是默认值?

javascript - 我如何在 Opal-rails 中打印在 Javascript 中定义的变量

ruby-on-rails - `*` 用作参数时的含义(不像*arg,只是*)

lisp - (= 1/5 0.2) 是假的?

lisp - 非破坏性子序列——lisp 除外

ruby - 有效地抓取一些符合条件的子集

ruby-on-rails - 无法安装 Rails extconf.rb 失败