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可以通过以下方式扩展:
- 增加对新操作系统或架构的模块
 - 插入自定义优化算法
 - 定制构建配置和链接器设置
 - 定义自己的可执行格式