跳到主要内容

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

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