用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脚本结束? 回收内存 结束
在测绘领域,学习Linux和C++语言以及Qt编程可以用来开发以下类型的应用: 1. 地理信息系统(GIS)软件:Linux和C++语言是广泛应用于开发GIS软件的技术栈。通过使用Qt编程框架,可以构建功能强大的GIS应用程序,用于地图显示、地理数据处理、空间分析等功能。 2. 测量和测绘工具:使用C++和Qt可以开发各种测量和测绘工具,用于采集地理数据、进行测量计算和定位等任务。这些工具可以与测量设备(如全站仪、GPS等)进行集成。 3. 地图绘制和编辑工具:利用C++和Qt编程,可以开发地图绘制和编辑工具,用于创建和编辑地图数据。这些工具可以支持矢量数据和栅格数据的编辑,并提供丰富的地图符号和标注功能。 4. 空间数据分析软件:通过利用C++和Qt编程,可以实现各种空间数据分析算法和模型,例如地理坐标转换、地图配准、地物提取、空间插值等。这些分析结果可以用于测绘、规划、环境分析等领域。 5. 三维可视化应用:利用C++和Qt可以开发具有三维可视化功能的应用程序,用于呈现地理数据的三维模型、地形图、倾斜摄影等。这些应用可以提供交互式的导航和观察功能。 6. 数据库管理和查询工具:通过使用C++和Qt编程,可以开发用于管理和查询地理数据库的工具。这些工具可以支持常见的数据库系统,并提供地理数据的高效存储和查询功能。 总之,Linux和C++语言以及Qt编程在测绘领域中被广泛应用于开发各种测绘软件和地理信息系统应用。它们提供了丰富的功能和灵活性,能够满足测绘领域的复杂需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值