Whale编译器工具链
概述
Whale是为Wave编程语言专用的编译器工具链。 Whale负责将用Wave编写的源代码进行分析、优化,并转换为目标平台的二进制文件的全过程。 此工具链为Wave语言专用设计,不考虑支持其他语言或与外部工具链集成。
设计目标
Whale的主要设计目标如下:
- 专为Wave支持:Whale仅支持Wave语言,不考虑与其他语言的集成。
- 模块化结构:各功能由独立模块构成,可根据需要增加或移除。
- 使用独立IR:Whale不使用LLVM IR等现有外部IR,而是定义自己的中间表示。
- 支持多目标平台:不受操作系统及硬件架构限制,可面向多种环境进行构建。
- 精细控制:构成可以让开发者对编译的全过程进行详细控制。
- 去除外部依赖性:Whale不依赖外部C / C++运行时或编译器。
目标支持
Whale目标支持下列环境:
- 操作系统:
- Linux
- Windows
- macOS
- UEFI (不包括BIOS)
- WaveOS (自有操作系统)
- 架构:
- x86_64 (AMD64)
- ARM64
- 其他可通过添加模块扩展
外部集成(FFI)
Whale은 기술적으로 FFI(Foreign Function Interface)를 지원할 수 있도록 설계되지만, Wave의 철학상 외부 언어와의 연동은 권장되지 않으며 표준적으로 제공되지 않습니다. Wave被设计为可以在其自身语言中实现所有功能。
扩展性
Whale可以通过以下方式扩展:
- 增加对新操作系统或架构的模块
- 插入自定义优化算法
- 定制构建配置和链接器设置
- 定义自己的可执行格式