幻域竞界 - 全球网游活动速递站

首页 > 国际服专线 > 如何从零设计一门编程语言? - AQ

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

本文简介

如何从零设计一门编程语言?新型的编程语言应该包括那些部分?

本文章将通过AQ语言的设计,详述开发一个编程语言的过程,从零开始设计、开发编译器和相关基础设施,最终完成一门编程语言的构建。

AQ简介

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

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

特点

快速(源代码编译和运行速度)

小型(源代码大小)

简单(易于学习)

安全(安全的内存管理和代码检查)

跨平台(支持 Windows、Linux 和 MacOS 等)

类似C++语法(快速掌握)

解释性(可选编译)

免费(遵守 AQ 许可证)

开源(基于 AQ 许可证)

设计

原方案

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

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

新方案

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

解释器是AQ虚拟机的执行引擎。目前正在开发字节码指令的执行函数。

内存是AQ虚拟机的存储。由于效率原因,AQ虚拟机基于寄存器架构。未来将加入垃圾回收机制。

运行时是AQ虚拟机的依赖环境,包括错误处理,标准输出等必要组件,为AQ提供基本的运行环境。

操作系统库则是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进行改编或转载。




女生为什么喜欢撅嘴
做完爱后呕吐怎么回事 做完爱后呕吐与两种情况有关