· Blog  · 4 min read

如何从零设计一门编程语言? - AQ

如何从零设计一门编程语言?新型的编程语言应该包括那些部分?本文章将通过AQ语言的设计,详述开发一个编程语言的过程,从零开始设计、开发编译器和相关基础设施,最终完成一门编程语言的构建。

如何从零设计一门编程语言?新型的编程语言应该包括那些部分?本文章将通过AQ语言的设计,详述开发一个编程语言的过程,从零开始设计、开发编译器和相关基础设施,最终完成一门编程语言的构建。

本文简介

如何从零设计一门编程语言?新型的编程语言应该包括那些部分?
本文章将通过AQ语言的设计,详述开发一个编程语言的过程,从零开始设计、开发编译器和相关基础设施,最终完成一门编程语言的构建。

AQ简介

AQ 是一种解释性编程语言。它快速小型简单安全。 同时,用AQ编写的程序也可以编译。此外,AQ的源代码可从GitHub获取,开源并遵循AQ 许可证

Github地址:https://github.com/aq-org/AQ ,您可以从此处获得AQ的源代码。

特点

  • 快速源代码编译和运行速度
  • 小型源代码大小)
  • 简单(易于学习)
  • 安全(安全的内存管理代码检查
  • 跨平台(支持 WindowsLinuxMacOS 等)
  • 类似C++语法(快速掌握)
  • 解释性(可选编译
  • 免费(遵守 AQ 许可证
  • 开源(基于 AQ 许可证

设计

原方案

AQ最早于2023年10月开始开发,AQ于2024年2月1日进行重构,在此期间经过多次修改,至今形成大致框架。

原方案通过C++实现编译器后再实现虚拟机。但由于编译器需要翻译为虚拟机的字节码,同时编译器开发时间过长,因此原版本已放弃,代码已全部删除,但可在commits中查找。

新方案

新方案决定先行开发AQ虚拟机,后通过其它方法实现编译器。由于通过c语言开发,因此AQ虚拟机减少了性能开销并获得了更广的支持。AQ虚拟机目前大致分为解释器内存运行时操作系统库

  1. 解释器AQ虚拟机的执行引擎。目前正在开发字节码指令的执行函数。
  2. 内存AQ虚拟机的存储。由于效率原因,AQ虚拟机基于寄存器架构。未来将加入垃圾回收机制。
  3. 运行时AQ虚拟机的依赖环境,包括错误处理,标准输出等必要组件,为AQ提供基本的运行环境。
  4. 操作系统库则是AQ虚拟机与操作系统交互的必要组件。

通过这样四个部分的设计,基本上包含了绝大多数解释性语言虚拟机的组件。未来如果编程语言功能不断扩展时,可以通过增加组件实施升级。

原因和优势

AQ语言设计为解释性语言的原因是多平台兼容性,同时在未来可以进一步对不同操作系统进行编译器的开发工作,使开发效率更高。同时基于寄存器架构则减少了性能的损失。

我们正在更加努力地开发AQ虚拟机。如果您想了解更多信息或参与开发工作,请关注我们的官网:https://www.axa6.com 和 Github:https://github.com/aq-org/AQ。

本文章基于AQ License:https://github.com/aq-org/AQ/blob/main/LICENSE 发布,如有需要,请根据AQ License进行改编或转载。

Share:
Back to Blog

Related Posts

View All Posts »
AQ虚拟机的类型定义 - AQ

AQ虚拟机的类型定义 - AQ

由于不同的系统、硬件等外部条件对于内存有不同的支持和定义,因此为了使AQ虚拟机满足跨平台运行的要求,设计统一的类型标准是必不可少的。本文对于AQ虚拟机的类型进行了定义和规范,以确保在不同系统上的AQ虚拟机均能正常运行。

一种优秀的虚拟机内存架构 - AQ

一种优秀的虚拟机内存架构 - AQ

虚拟机内存架构直接影响虚拟机的性能和占用。设计一个优秀的架构可以有效提升性能和效率。本文将介绍AQ虚拟机使用的内存架构。

关于AQ官方网站多语言支持的公告 - AQ

关于AQ官方网站多语言支持的公告 - AQ

由于AQ的开发工作日益增加,缺少专业翻译人员以及对于翻译效果不理想等原因,即日起,AQ官方网站多语言版本将暂停实时维护。仅保留英语和中文两种语言支持。