Lena Code — родственный продукт Топаза. Его конвертационные процессы читают исходный код на одном языке и выдают эквивалентный код на другом. Топаз может стоять по обе стороны такого процесса: как входной язык, из которого конвертируют, и как выходной язык, в который конвертируют.
Топаз фокусируется на малой проверяемой поверхности исходника и детерминированном исполнении. Lena Code фокусируется на межъязыковых процессах конвертации. Вместе они позволяют использовать код на Топазе как материал для конвертации и как чистую цель, которую затем можно разобрать, запустить и собрать тулчейном Топаза.
Почему Топаз подходит для конвертационных процессов
- Один способ сказать. Малая замкнутая грамматика оставляет конвертеру меньше вариантов целевой формы, а ревьюеры видят единый канонический стиль, одинаково читаемый людьми и ИИ-агентами.
- Идентификаторы Unicode-first. Доменные имена не нужно принудительно переводить в латиницу с потерями.
- Дифференциальные проверки run/build. Для поддержанной поверхности
topaz runиtopaz buildсравниваются друг с другом, поэтому сгенерированный Топаз проверяется как обычный Топаз.
Это инженерные проверки, которые проходят через тулчейн и реальное использование. Когда этот сайт говорит о доказательстве, речь идёт ровно об этих проверках.
Примеры конвертации
Lena Code может получить на вход такой TypeScript:
export function greet(name: string): string {
return `Hello, ${name}!`;
}Или такой Rust:
pub fn add(a: i32, b: i32) -> i32 {
a + b
}Если целевой язык — Топаз, результат должен оставаться на канонической поверхности Топаза:
function add(a: int, b: int) -> int {
a + b
}Проверка результата
Сконвертированный код на Топазе — обычный код на Топазе. Проверяйте его как любую другую программу:
topaz parse main.tpz
topaz run main.tpz
topaz build main.tpz
Для примеров с выводом сравнивайте результат run с результатом собранного артефакта. Если два пути расходятся на одной и той же поддержанной программе, это баг Топаза.
Границы
Оба продукта остаются самостоятельными инструментами. Интероп-слой расширяет сценарии, где они работают вместе. Поведение самой Lena Code и поддерживаемые пары языков описаны на lenacode.com.