토파즈는 소스 코드를 실행 가능한 명세로 봅니다. 소스는 규칙을 설명할 만큼 읽기 쉬워야 하고, 기준 답을 계산할 만큼 정확해야 하며, 다른 구현이 자신과 일치함을 증명할 수 있을 만큼 안정적이어야 합니다.
이 페이지는 언어 소개를 한 번 더 반복하는 곳이 아닙니다. 토파즈가 왜 이런 구조를 택했는지 설명하는 곳입니다.
1. 사람이 먼저 읽는 명세
명세는 신뢰받기 전에 먼저 읽을 수 있어야 합니다. 중요한 규칙이 기계적인 절차 아래 묻혀 있으면 실행은 될지 몰라도 사람과 에이전트가 기준으로 삼기에는 좋지 않습니다.
토파즈는 도메인 규칙을 앞에 둡니다. 이름은 도메인의 언어 그대로 둘 수 있습니다. 문법은 파일마다 다른 방언을 배워야 하지 않을 만큼 작게 유지합니다. 목표는 가능한 모든 프로그래밍 스타일을 담는 것이 아닙니다. 규칙을 오해하기 어렵게 만드는 것입니다.
2. 실행 가능한 오라클
글로만 존재하는 명세는 흐릅니다. 처음에는 진실이었어도 시간이 지나면 예전 진실에 대한 이야기가 됩니다.
토파즈는 명세를 직접 실행합니다. 인터프리터는 기준 경로입니다. 같은 입력에 대해 기준이 되는 관찰 결과를 계산하고, 그 결과를 픽스처로 고정해 더 빠르거나 낮은 수준의 경로와 비교할 수 있게 합니다.
무엇이 맞는지 알고 싶을 때 먼저 봐야 하는 것은 생성된 산출물이나 손으로 옮긴 코드가 아니라 토파즈 소스입니다.
3. 차등 검증
프로덕션에는 컴파일된 경로도 필요합니다. 그래서 토파즈는 역할을 분리합니다.
topaz run은 인터프리터로 기준 경로를 실행합니다.topaz build는 컴파일된 경로를 만듭니다. Rust 네이티브 바이너리, 또는--target python으로 생성한 Python입니다.
이 경로들은 의도로 신뢰하지 않습니다. 비교해서 신뢰합니다. 차등 하네스는 인터프리터와 각 백엔드에 같은 입력을 넣고 값, 표준 출력, 파일, 폴트, 소스 위치 같은 관찰 결과를 바이트 단위로 비교합니다. 어떤 백엔드가 어긋나면, 그 빌드는 측정된 표면에서 자신을 증명하지 못한 것입니다.
이것이 run ≡ build입니다. 구호가 아니라 하네스가 모든 백엔드 타깃에 대해 강제하는 검증 의무입니다.
4. 작음이 중요한 이유
여기서 작음은 취향이 아닙니다. 오라클을 실제로 쓸 수 있게 만드는 경계입니다.
닫힌 표면은 파서, 체커, 인터프리터, 방출기, 문서 검증기, 생성 코드 리뷰어가 같은 대상을 보게 만듭니다. 에이전트가 없는 문법을 꾸며 낼 여지를 줄이고, 사람이 파일마다 다른 방언을 해독해야 하는 부담도 줄입니다. 표면이 작을수록 흩어진 예제가 아니라 전체 모양을 테스트하기 쉬워집니다.
토파즈가 작게 남으려는 이유는 남은 코드에 대해 더 강한 약속을 하기 위해서입니다.
5. ATLAS라는 증명 사례
ATLAS는 이 모델의 첫 번째 실전 증명 사례입니다. 복잡한 한국어 조판 규칙을 토파즈로 적고, 인터프리터를 기준 경로로 두며, 성능을 위한 Rust 경로는 코퍼스 테스트와 골든 픽스처와 차등 검증으로 토파즈 결과와 비교합니다.
이 주장은 일부러 좁습니다. ATLAS가 모든 결함을 막는다는 뜻도 아니고 Rust 전체를 검증한다는 뜻도 아닙니다. 실제 제품이 토파즈를 기준 자리에 두고 Rust를 프로덕션 자리에 둔 뒤, 두 경로가 일치해야만 프로덕션 경로를 맞다고 말할 수 있음을 보여 줍니다.
6. 검증된 백엔드
Rust와 Python 백엔드는 이 모델을 서로 다른 생태계로 넓힙니다. 기준은 여전히 토파즈 소스와 인터프리터에 있고, Rust와 Python은 독립된 권위가 아니라 방출되어 검증되는 산출물입니다. Rust 백엔드는 독립 실행형 네이티브 바이너리로 낮추고, Python 백엔드는 서버·데이터·운영 작업을 겨냥합니다.
일치는 사이트가 선언하는 문장이 아니라 툴체인이 검사하는 대상입니다. 공개 증거는 측정 표면 영수증입니다. 실행한 스위트 전반에서 같은 토파즈 소스가 인터프리터와 Rust와 Python 경로에서 같은 실행 결과와 같은 런타임 가드 동작을 보이고, 조용한 불일치는 0으로 유지됩니다. 체커가 받아들이는 모든 것에 대한 완전성 주장은 범위 밖이며, 정확한 표면은 상태 페이지가 밝힙니다.
에이전트와 함께 만드는 프로젝트에서 이 점이 중요합니다. 에이전트는 코드를 빠르게 만들지만 속도는 증명이 아닙니다. 두 번째 검증된 백엔드는 리뷰와 디버깅과 반박을 위한 또 하나의 실행 경로를 줍니다. 인터프리터, Rust 경로, Python 경로가 어긋나면 그 어긋남이 드러납니다.
7. 결론
토파즈는 의도가 실행 가능한 형태가 되는 자리입니다.
규칙은 한 번 적습니다. 인터프리터는 기준 답을 계산합니다. Rust 방출은 네이티브와 시스템 쪽 설계를 검증합니다. Python 방출은 서버와 데이터 쪽 설계를 검증합니다. 하네스는 경로들이 같은 말을 하는지 확인합니다.
하나의 명세. 여러 방출 검증. 어긋남은 없다.