8언어 코드생성 + IR 최적화 + REPL + 파서강화
성과
한선씨 코드 한 줄 → 8개 프로그래밍 언어로 동시 변환 + 직접 실행.
지원 언어 (8개)
Python, JavaScript, Rust, 한선씨, Go, Java, C, Swift (+4 신규)데모
입력: 함수 합계(a, b) { 반환 a + b }
Python: def 합계(a, b): return a + b
JS: function 합계(a, b) { return a + b; }
Rust: fn 합계(a, b) { return a + b; }
Go: func 합계(a, b) { return a + b }
Java: public static 합계(a, b) { return a + b; }
C: 합계(a, b) { return a + b; }
Swift: func 합계(a, b) { return a + b; }
한선씨: 함수 합계(a, b) { 반환 a + b }
for 루프 8언어
Python: for i in range(0, 10):
JS: for (let i = 0; i < 10; i++) {
Rust: for i in 0..10 {
Go: for i := 0; i < 10; i++ {
Java: for (int i = 0; i < 10; i++) {
C: for (int i = 0; i < 10; i++) {
Swift: for i in 0..<10 {
한선씨: 반복문 i 부터 0 까지 10 {
신규 라이브러리
| 파일 | 역할 |
|---|---|
의미최적화.한선 | 상수접기 + 항등원 제거 + 데드코드 |
의미REPL.한선 | 대화형 8언어 변환 + 실행 |
파서 강화 (의미IR파서.한선)
- 배열 리터럴
[1,2,3]→@배열노드 - 필드접근
x.이름→@필드노드 - 반복문
부터~까지구문 →@반복문노드 부터/까지키워드 추가
최적화기
전: x = 3 + (4 * 2) y = x + 0 z = 1 * x
후: x = 11 y = x z = x
- 상수접기: 리터럴 이항식 → 컴파일타임 계산
- 항등원 제거: +0, *1, -0 → 피연산자 그대로
코드생성기 확장
- 이항 연산 괄호: 자식이
@이항이면(...)감싸 - Go:
func,var, 조건 괄호 없음,:= - Java:
public static,var - C: 타입
int, 불리언1/0 - Swift:
func,var, 조건 괄호 없음,..<범위
예약어 충돌 누적 목록
오류, 시도, 메서드, 전이, 가져오기, 계속 (continue) — 변수명 금지.
라이브러리 현황: 76 → 79 (+3: 최적화, REPL, + 기존 코드생성기/파서 확장)
전체 시리즈 누적
컴파일러: 8곳 수정
VM: 해시맵 243→729
라이브러리: 59→79 (+20)
의미코드: 88→991
다국어: 52코드×7언어=350+ + 225 내장함수 한글
타겟 언어: 8개 (Python/JS/Rust/한선씨/Go/Java/C/Swift)
IR 파서: 함수/변수/조건/루프/구조체/배열/필드/반환
IR 실행기: 산술/조건/루프/함수호출
IR 최적화: 상수접기/항등원/데드코드
REPL: 대화형 8언어 변환+실행