기술 문서

비재현 개념 문서: 구현/사용/확장 가이드는 외부 제공 대상이 아닙니다.

지원 언어

총 27개 언어 지원

JavaScriptTypeScriptReScriptElmCoffeeScriptCC++RustGoZigJavaC#KotlinScalaSwiftObjective‑CPythonPHPRubyLuaElispHaskellOCamlElixirSolidityJulia토파즈

공개 범위 및 고지

본 문서는 CSKernel™의 개념·설계·시각 규약을 설명합니다. 코드/데모/벤치/데이터, API/CLI, 직렬화 제약·스키마는 비공개입니다.

블랙박스 공개

구현물(코드/데모/벤치/데이터), API/CLI, 직렬화 제약·스키마는 외부 제공되지 않습니다. 본 문서는 개념·철학·시각 규약을 설명합니다.

개념적 파이프라인

소스→USG 정규화(투영)→타깃 관용구 재구성으로 이어지는 개념 절차를 설명합니다. 외부 API/런타임은 제공하지 않습니다.

스코프 & 비목표

  • Phase‑1의 In/Out 스코프를 명시합니다.
  • 구체 스키마/직렬화·소스맵 포맷은 비공개입니다.
  • 성능·정확도는 개념적 목표로만 기술됩니다.

스코프 프리뷰

Phase‑1 대표적 다중 패러다임을 대상으로 내부 검증 중입니다. 상세 목록·지표는 비공개입니다.

지원 언어

총 27개 언어 지원

JavaScriptTypeScriptReScriptElmCoffeeScriptCC++RustGoZigJavaC#KotlinScalaSwiftObjective‑CPythonPHPRubyLuaElispHaskellOCamlElixirSolidityJulia토파즈
TOPAZ
1// 토파즈로 작성된 언어별 컴파일 예시
2
3// 토파즈 네이티브 코드
4function 팩토리얼(n: int) -> int {
5    match n {
6        case 0 | 1 => 1
7        case _ => n * 팩토리얼(n - 1)
8    }
9}
10
11// 다른 언어에서 변환
12// Python: def 팩토리얼(n): return 1 if n <= 1 else n * 팩토리얼(n-1)
13// JavaScript: const 팩토리얼 = n => n <= 1 ? 1 : n * 팩토리얼(n-1)
14
15// 모든 언어가 동일한 USG로 정규화됨(내부 하니스 실행·검증, 공개 런타임/VM 비제공)
16let 결과 = 팩토리얼(5)  // 120 (개념 예시)

개념적 인터페이스

외부 API/CLI는 제공하지 않습니다. 아래 예시는 개념적 일러스트입니다.

개념적 컴파일러 인터페이스

소스→USG 정규화 과정을 설명하는 의사 인터페이스(비재현)

TOPAZ
1// 컴파일러 API 사용 예시
2import CSKernel from "cskernel"
3
4let 컴파일러 = CSKernel.컴파일러생성()
5    .withLanguage("토파즈")
6    .withOptimizationLevel("공격적")
7
8let 소스코드 = `
9function 피보나치(n: int) -> int {
10    match n {
11        case 0 | 1 => n
12        case _ => 피보나치(n-1) + 피보나치(n-2)
13    }
14}
15`
16
17let usg = 컴파일러.컴파일(소스코드)
18출력("USG 노드 수: {usg.노드수()}")

내부 하니스 요지

내부 SAM‑style 하니스 개념을 예시로 설명(외부 제공 없음)

TOPAZ
1// 런타임 API 사용 예시
2import { SAM, 실행컨텍스트 } from "cskernel/runtime"
3
4let sam = SAM.새로운()
5    .메모리제한("2GB")
6    .병렬처리(true)
7
8let 컨텍스트 = 실행컨텍스트.새로운()
9    .인자들([10])
10
11let 결과 = try {
12    sam.실행(usg, 컨텍스트)
13} catch 오류 {
14    출력("실행 오류: {오류}")
15    null
16}
17
18match 결과 {
19    case Some() => 출력("결과: {값}")
20    case None => 출력("실행 실패")
21}

개념적 분석 인터페이스

코드 분석과 최적화를 위한 도구 인터페이스

TOPAZ
1// 분석 API 사용 예시
2import { 분석기, 분석패스 } from "cskernel/analysis"
3
4let 분석기 = 분석기.새로운()
5    .패스추가(분석패스.죽은코드제거)
6    .패스추가(분석패스.상수전파) 
7    .패스추가(분석패스.타입추론)
8
9let 분석결과 = try {
10    분석기.분석(usg)
11} catch 오류 {
12    출력("분석 오류: {오류}")
13    null
14}
15
16match 분석결과 {
17    case Some(결과) => {
18        출력("최적화 제안: {결과.제안들}")
19        출력("성능 향상: {결과.성능향상}")
20    }
21    case None => 출력("분석 실패")
22}

개발 가이드

CSKernel™을 확장하고 기여하는 개발자를 위한 가이드

확장 방법

  • 새로운 프로그래밍 언어 지원 추가
  • 사용자 정의 의미론적 원자 구현
  • 최적화 패스 개발
  • 백엔드 타겟 추가
TOPAZ
1// 새로운 언어 지원 추가 예시
2import { 언어, 파서, 렉서 } from "cskernel/frontend"
3
4struct 내언어파서 {
5    설정: 파서설정
6}
7
8impl 파서 for 내언어파서 {
9    function 파싱(self, 소스: string) -> Result<AST, Error> {
10        // 언어별 파싱 로직 구현
11        let 토큰들 = 내언어렉서.토큰화(소스)?
12        let ast = self.AST구축(토큰들)?
13        Ok(ast)
14    }
15    
16    function USG변환(self, ast: AST) -> Result<USG, Error> {
17        // AST를 USG로 변환하는 로직
18        let 빌더 = USG빌더.새로운()
19        self.노드변환(ast, 빌더)?
20        Ok(빌더.구축())
21    }
22}

개념적 최적화 메모

성능 관련 내용은 개념적 목표로만 기술되며 외부 검증을 제공하지 않습니다.

컴파일 시간 최적화

의미론적 분석 단계에서 적용되는 고급 최적화 기법들로 실행 시간 성능 향상

메모리 관리

효율적인 가비지 컬렉션과 메모리 풀을 통한 메모리 사용량 최적화

병렬 실행

의미론적 의존성 분석을 통한 자동 병렬화 및 멀티코어 활용

정책 노트

비공개 범위와 배포 정책 요약

비공개 범위

코드/데모/벤치/데이터 비공개

외부 검증 요청에 응답하지 않습니다.

API/CLI 비제공

구체 스키마·소스맵 포맷도 비공개

접근성 가이드

  • 색약 친화 팔레트 권장
  • 스크린리더 라벨과 키보드 내비 지원
  • 오버레이 A/B/C는 시각 레이어로만 표기

관련 정보

CSKernel™의 핵심 구성 요소에 대한 상세한 기술 문서