← 목록
기타 2026-04-17 2KB 읽기 2분

의미IR 실행기 + 코드생성 확장 + 사전 영속화 + 225 내장함수

달성

의미IR이 코드를 "생성"만 하던 것에서 "직접 실행"까지 확장. IR 트리 하나로 Python/JS/Rust/한선씨 코드 생성 + 파싱 없이 즉시 실행.

신규 라이브러리

파일역할
의미실행기.한선IR 트리 인터프리터. 산술/조건/루프/함수호출 실행
의미사전저장.한선TSV 형식 저장/로드/병합. 세션간 재사용
의미내장함수_전체.한선225개 내장함수 자동 등록 (한글 fallback)

IR 코드생성기 확장

기존 만약/동안/함수정의에 추가:

  • @반복문 → Python range(), Rust .., JS for(;;), 한선씨 부터~까지
  • @배열 → Python/JS [...], Rust vec![...]
  • @구조체정의 → Python class, Rust struct, JS class, 한선씨 구조체
  • @필드obj.field

실행기 테스트 결과

(3+4)*2    = 14       ← 산술
x=15 → 크다           ← 조건 분기
for 0..5 → 0,1,2,3,4  ← for 루프 실행
제곱(7)    = 49        ← 함수 정의+호출

4언어 구조체 코드 동시 생성:

pythonclass Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
ruststruct Person {
    pub name: String,
    pub age: String,
}
javascriptclass Person {
    constructor(name, age) {
        this.name = name;
        this.age = age;
    }
}
구조체 Person { name, age }

잔여

  • 산술 우선순위 괄호: 3+4*2(3+4)*2 표기 필요
  • 해시맵 243슬롯 → 사전 로드 시 67% 복원률. VM 확장 필요.
  • 실행기: 문자열 연결, 비교 연산, 중첩 함수 호출 미지원
  • 코드생성: Python 들여쓰기 else 앞 공백 정리

관련 파일

  • libs/의미실행기.한선 — 신규
  • libs/의미사전저장.한선 — 신규
  • libs/의미내장함수_전체.한선 — 자동생성
  • libs/의미IR코드생성기.한선 — 확장 (for/struct/array/field)
  • test_exec.한선 — 통합 테스트

라이브러리 현황: 72 → 75 (+3)

6. VM 해시맵 확장 (crownyc.c)

  • trit_hash_cube/str: 5트릿(0~242) → 6트릿(0~728) 확장
  • HASH_NEW: 486슬롯 → 1458슬롯
  • HASH_SET/GET 탐색 범위: 243 → 729
  • 결과: 사전 로드 67%→100%, 왕복 235→355, 4개국어 풀루프 완전 동작