Whale 编译器工具链
概述
Whale 是 Wave 编程语言的专用编译器工具链。 Whale 负责分析、优化 Wave 编写的源代码并将其转换为目标平台的二进制文件的整个过程。 该工具链专为Wave语言设计,不考虑对其他语言的支持或与外部工具链的集成。
设计目标
Whale的主要设计目标是:
- 仅 Wave 支持:Whale 仅支持 Wave 语言,不考虑与其他语言集成。
- 模块化结构:每个功能由一个独立的模块组成,可以根据需要添加或删除。
- 使用独立的IR:Whale定义了自己的中间表示,而不是使用现有的外部IR如LLVM,
- 多目标平台支持:针对各种环境进行构建,无论操作系统和硬件架构如何。
- 精确控制:结构化的设计使得开发者可以详细地控制整个编译过程。
- 删除外部依赖项:Whale 不依赖于外部 C/C++ 运行时或编译器。
目标支持
Whale旨在支持以下目标环境:
- 操作系统:
- Linux
- Windows
- macOS
- UEFI(不包括BIOS)
- WaveOS(自OS)
- 架构:
- x86_64 (AMD64)
- ARM64
- 其他的可以通过添加模块来扩展
外部联动(FFI)
Whale在技术上设计为支持FFI(外部功能接口), 由于 Wave 的理念,不建议与外部语言集成,也不作为标准提供。 Wave 的设计使得所有功能都可以用它自己的语言实现。
可扩展性
Whale可以通过以下方式扩展:
- 为新操作系统或架构添加模块
- 插入自定义优化算法
- 自定义构建配置文件和链接器设置
- 定义您自己的可执行格式
