← 목록

한선씨→다국어 트랜스파일러 완성 — IR 파서 + 실행기 + 자동 그래프

달성

한선씨 소스코드를 읽어 구조 IR로 파싱, 4개 언어(Python/JS/Rust/한선씨)로 자동 변환. 동일 IR을 직접 실행도 가능.

핵심 데모

원본: 함수 팩토리얼(n) { 만약 (n <= 1) { 반환 1 } 반환 n * 팩토리얼(n - 1) }

Python: def 팩토리얼(n): if n <= 1: return 1; return n * 팩토리얼(n - 1)JS: function 팩토리얼(n) { if (n <= 1) { return 1; } return n * 팩토리얼(n - 1); }Rust: fn 팩토리얼(n) { if (n <= 1) { return 1; } return n * 팩토리얼(n - 1); }한선씨: 함수 팩토리얼(n) { 만약 (n <= 1) { 반환 1 } 반환 n * 팩토리얼(n - 1) }

간단 변환 변수 x=10; y=x+20; 출력값(y) → IR 직접 실행 → 30

신규 라이브러리

파일역할
의미IR파서.한선한선씨 토큰화 + 재귀하향 파싱 → 구조 IR

수정

IR 파서 지원 문법

한선씨IR 노드
변수 x = 10[@대입, [@식별자,x], [@리터럴,10,숫자]]
함수 이름(a) {...}[@함수정의, 이름, [a], 본문]
만약 (조건) {...}[@만약, 조건IR, 참블록]
동안 (조건) {...}[@동안, 조건IR, 본문]
반환 값[@반환, 값IR]
이름(인자)[@호출, [@식별자,이름], 인자들]
a + b * c[@이항, +, a, [@이항, *, b, c]]
구조체 X {a,b}[@구조체정의, X, [a,b]]

자동 의존성 그래프

12개 라이브러리 스캔 → 82 엣지 자동 추출:

@의미IR코드생성기 —@필요함→ @의미사전
@의미IR코드생성기 —@포함→ @함수_코드생성
@의미IR코드생성기 —@포함→ @함수_블록생성

전체 라이브러리 현황: 75 → 76 (+1 IR파서)

전체 시리즈 성과

컴파일러 수정: 8곳 (메서드/제네릭/접근제어/중첩인덱싱/필드할당/배열메모리/전처리기)
VM 수정: 해시맵 243→729
라이브러리: 59→76 (+17)
의미코드: 88→991
사전: 52코드×7언어=350+ 바인딩 + 225 내장함수 한글
풀 루프: 표면어(4개국어)→IR→코드(4언어)+직접실행+파일영속화
트랜스파일: 한선씨→Python/JS/Rust/한선씨