Набор инструментов компилятора 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 можно расширить следующими способами:
- Добавляйте модули для новых операционных систем или архитектур.
- Вставка пользовательских алгоритмов оптимизации
- Настройка профилей сборки и настроек компоновщика
- Определите свой собственный формат исполняемого файла
