跳到主要内容

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可以通过以下方式扩展:

  • 增加对新操作系统或架构的模块
  • 插入自定义优化算法
  • 定制构建配置和链接器设置
  • 定义自己的可执行格式