Topazdocs
Interop-руководства

Интероп с Lena Code

Как использовать Топаз как входной и выходной язык в конвертационных процессах Lena Code.

Lena Code — родственный продукт Топаза. Его конвертационные процессы читают исходный код на одном языке и выдают эквивалентный код на другом. Топаз может стоять по обе стороны такого процесса: как входной язык, из которого конвертируют, и как выходной язык, в который конвертируют.

Топаз фокусируется на малой проверяемой поверхности исходника и детерминированном исполнении. Lena Code фокусируется на межъязыковых процессах конвертации. Вместе они позволяют использовать код на Топазе как материал для конвертации и как чистую цель, которую затем можно разобрать, запустить и собрать тулчейном Топаза.

Почему Топаз подходит для конвертационных процессов

  • Один способ сказать. Малая замкнутая грамматика оставляет конвертеру меньше вариантов целевой формы, а ревьюеры видят единый канонический стиль, одинаково читаемый людьми и ИИ-агентами.
  • Идентификаторы Unicode-first. Доменные имена не нужно принудительно переводить в латиницу с потерями.
  • Дифференциальные проверки run/build. Для поддержанной поверхности topaz run и topaz build сравниваются друг с другом, поэтому сгенерированный Топаз проверяется как обычный Топаз.

Это инженерные проверки, которые проходят через тулчейн и реальное использование. Когда этот сайт говорит о доказательстве, речь идёт ровно об этих проверках.

Примеры конвертации

Lena Code может получить на вход такой TypeScript:

TYPESCRIPT
export function greet(name: string): string {
  return `Hello, ${name}!`;
}

Или такой Rust:

RUST
pub fn add(a: i32, b: i32) -> i32 {
    a + b
}

Если целевой язык — Топаз, результат должен оставаться на канонической поверхности Топаза:

TOPAZ
function add(a: int, b: int) -> int {
    a + b
}

Проверка результата

Сконвертированный код на Топазе — обычный код на Топазе. Проверяйте его как любую другую программу:

SH
topaz parse main.tpz
topaz run main.tpz
topaz build main.tpz

Для примеров с выводом сравнивайте результат run с результатом собранного артефакта. Если два пути расходятся на одной и той же поддержанной программе, это баг Топаза.

Границы

Оба продукта остаются самостоятельными инструментами. Интероп-слой расширяет сценарии, где они работают вместе. Поведение самой Lena Code и поддерживаемые пары языков описаны на lenacode.com.