본문으로 건너뛰기
토파즈문서
다운로드

문서 검색

프로젝트와 매뉴얼

방향키로 결과를 고르고 Enter를 눌러 여세요.

API 이름, 진단 번호, 규칙 또는 프로젝트 주제를 입력하세요.

    토파즈로 만든 프로그램

    토파즈로 만든 컴파일러와 웹 도구, 게임이 실제 제품으로 운영되고 있습니다. 이 페이지의 링크에서 각 프로그램의 토파즈 소스를 직접 읽을 수 있습니다.

    토파즈 셀프 컴파일러

    토파즈 컴파일러의 핵심은 토파즈로 작성했습니다. 이 컴파일러는 소스를 읽고 이름과 타입을 검사할 뿐 아니라, 실행에 필요한 중간 표현으로 바꾸고(lowering) Rust 코드를 생성합니다. 최종 네이티브 실행 파일을 만드는 데는 Rust 도구체인과 별도의 호스트·런타임 구성 요소를 씁니다. 툴체인 상태에서 설명하듯 topaz check, run, build를 비롯한 대부분의 명령이 이 컴파일러를 기본으로 씁니다.

    컴파일러의 토파즈 소스는 compiler/crates/topaz_self_frontend/ 아래에 있습니다. 중간 표현으로 바꾸는 코드는 lowering.tpz, Rust 코드를 생성하는 코드는 emitter/ 폴더에 있습니다. slow.monster (외부 링크)에서 이 소스를 읽을 수 있습니다. 5.21부터 릴리스마다 내는 컴파일러 시드에도 이 소스가 들어 있습니다.

    아틀라스

    아틀라스 (외부 링크)는 원고를 책의 지면과 인쇄용 내지 PDF로 만드는 조판 도구입니다.

    아틀라스의 줄바꿈 규칙은 토파즈로 썼습니다. 아틀라스 홈의 소스 창에서 금칙분류, 나쁨도, 정렬벌점, 최적분할 네 단계와 이를 묶은 줄바꿈 전체, 모두 다섯 파일을 읽을 수 있습니다. 함수 이름이 곧 한국어 조판 용어이고, 다섯 파일을 합치면 약 1천 줄입니다.

    CodeImage

    CodeImage (외부 링크)는 실행 가능한 프로그램을 이미지에 담고, 브라우저에서 이미지로부터 소스 코드를 복원합니다. 이미지에 맞는 키를 함께 넣으면 입력했던 원문을 그대로 복원합니다.

    프로그램 구조 표현, 이미지 인코딩, 소스 복원을 다루는 토파즈 코드는 약 110개 파일, 1만 9천 줄입니다. CodeImage 소스 페이지 (외부 링크)에서 폴더 구조를 탐색하거나 slow.monster (외부 링크)에서 읽을 수 있습니다.

    제니앱

    제니앱 (외부 링크)은 설치나 로그인 없이 브라우저에서 실행하는 앱 20개를 제공합니다. 데이터베이스를 조회하는 SQL DB, JSON을 정리하는 JSON 포매터, 스프레드시트인 시트 등이 있습니다.

    앱은 토파즈로 작성했으며 WASM으로 실행됩니다. 공개된 토파즈 소스는 약 60개 파일, 1만 1천 줄입니다. 각 앱 화면의 소스 보기 버튼이나 slow.monster (외부 링크)에서 코드를 읽을 수 있습니다.

    카카오 게임

    kakao.games의 도메인 전쟁 (외부 링크)은 실제 도메인 분쟁을 바탕으로 한 서사형 텍스트 RPG입니다. 플레이어의 선택에 따라 이야기의 흐름과 분위기가 달라집니다.

    공개된 토파즈 게임 코드는 4개 파일, 약 450줄입니다. 게임 화면의 소스 버튼이나 slow.monster (외부 링크)에서 읽을 수 있습니다.

    더 살펴보기

    토파즈 소개에서 언어 예제를 읽고, 히스토리에서 언어와 도구의 변경 내용을 살펴보세요.

    메뉴

    다운로드