用C++从0开始开发自己的编程语言

导语

这是我第一次准备发文章,准备徐徐道来,慢慢推进与讲解编程语言解释器的算法和代码。
都说程序员的最大理想就是开发出自己的编程语言来,现在,我也开始完成我最大的理想——开发我属于我自己的编程语言。
阅读了许多关于自制编程语言的书籍,可略感失望,感觉很多都是使用yacc/lex这些他人写好的工具生成代码,从而制作解释器,唯一得到的帮助就是解释器的大概基本原理和结构。

取名记

名字,是一个好项目很重要的一点,我绞尽脑汁思索许久,终于创造出来一个英语短语:BerryMath。为什么取这个名呢?首先Berry就是浆果,梅的意思,然后Math是数学的意思,翻译成中文就是数梅语言。因为Berry是我比较喜欢吃的一项水果类型?,并且在编程中数学是非常重要的一环,所以取名BerryMath。

使用语言

为了速度和跨平台性着想,我选择C++语言进行编写。

项目链接

https://github.com/BerryMathDevelopmentTeam/BerryMath

项目架构

项目架构图

词法分析器
抽象语法树构建器
语言解释器
语言内存结构

项目文件结构

  • include
    • BerryMath.h
    • interpreter.h
    • value.h
    • ast.h
    • lex.h
  • include
    • BerryMath.cpp
    • interpreter.cpp
    • value.cpp
    • ast.cpp
    • lex.cpp
  • main.cpp

解释器流程

Created with Raphaël 2.2.0 开始 新建解释器 词法分析 构建抽象语法树 解析运行抽象语法树 BerryMath脚本结束? 回收内存 结束
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值