Lena Code는 토파즈의 자매 제품입니다. Lena Code의 변환 워크플로는 한 언어로 된 소스 코드를 읽어 다른 언어의 동등한 코드로 바꿔 냅니다. 토파즈는 이 흐름의 양쪽에 놓일 수 있습니다. 변환할 입력 언어가 될 수도 있고 변환 결과로 나오는 출력 언어가 될 수도 있습니다.
토파즈는 작고 검사 가능한 소스 표면과 결정적인 실행에 집중합니다. Lena Code는 언어 사이의 변환 흐름을 다룹니다. 둘을 함께 쓰면 토파즈 코드를 변환 파이프라인의 입력으로 보낼 수도 있고, 변환 결과를 토파즈 코드로 받아 다시 토파즈 툴체인으로 확인할 수도 있습니다.
토파즈가 변환 워크플로에 맞는 이유
- 말하는 방법이 하나뿐입니다. 작고 닫힌 문법이라 변환기가 고를 수 있는 표현이 적고, 사람과 AI 에이전트가 같은 기준 스타일을 읽게 됩니다.
- 유니코드 우선 식별자. 도메인 이름을 손실 있는 로마자 표기로 밀어 넣지 않아도 됩니다.
- 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에서 확인하세요.