如何用几百行代码编写一个高效的脚本解释器?

2026-05-05 22:022阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计887个文字,预计阅读时间需要4分钟。

如何用几百行代码编写一个高效的脚本解释器?

前言:最近又重新学习了数据库编译原理,其实两年前也复习过。当初是为了实现通过MySQL的DDL生成Python中sqlalchemy的model。相关文章在这里:手写一个词法分析器+完成相关功能。

前言

最近又在重新学习编译原理了,其实两年前也复习过,当初是为了能实现通过 MySQLDDL 生成 Pythonsqlalchemymodel


相关文章在这里:手写一个词法分析器

虽然完成了相关功能,但现在看来其实实现的比较糙的,而且也只运用到了词法分析;所以这次我的目的是可以通过词法分析->语法分析->语义分析 最终能实现一个功能完善的脚本"语言"。

如何用几百行代码编写一个高效的脚本解释器?

效果

现在也有了一些阶段性的成果,如下图所示:

目前具备以下基本功能:

  • 变量声明与赋值(只支持 int)
  • 二次运算(优先级支持)
  • 语法检查
  • debug 模式,可以打印 AST

感兴趣的朋友可以在这里查看源码:
github.com/crossoverJie/gscript

本地有 go 环境的话也可以安装运行。

阅读全文

本文共计887个文字,预计阅读时间需要4分钟。

如何用几百行代码编写一个高效的脚本解释器?

前言:最近又重新学习了数据库编译原理,其实两年前也复习过。当初是为了实现通过MySQL的DDL生成Python中sqlalchemy的model。相关文章在这里:手写一个词法分析器+完成相关功能。

前言

最近又在重新学习编译原理了,其实两年前也复习过,当初是为了能实现通过 MySQLDDL 生成 Pythonsqlalchemymodel


相关文章在这里:手写一个词法分析器

虽然完成了相关功能,但现在看来其实实现的比较糙的,而且也只运用到了词法分析;所以这次我的目的是可以通过词法分析->语法分析->语义分析 最终能实现一个功能完善的脚本"语言"。

如何用几百行代码编写一个高效的脚本解释器?

效果

现在也有了一些阶段性的成果,如下图所示:

目前具备以下基本功能:

  • 变量声明与赋值(只支持 int)
  • 二次运算(优先级支持)
  • 语法检查
  • debug 模式,可以打印 AST

感兴趣的朋友可以在这里查看源码:
github.com/crossoverJie/gscript

本地有 go 环境的话也可以安装运行。

阅读全文