의미IR 실행기 + 코드생성 확장 + 사전 영속화 + 225 내장함수
달성
의미IR이 코드를 "생성"만 하던 것에서 "직접 실행"까지 확장. IR 트리 하나로 Python/JS/Rust/한선씨 코드 생성 + 파싱 없이 즉시 실행.
신규 라이브러리
| 파일 | 역할 |
|---|---|
의미실행기.한선 | IR 트리 인터프리터. 산술/조건/루프/함수호출 실행 |
의미사전저장.한선 | TSV 형식 저장/로드/병합. 세션간 재사용 |
의미내장함수_전체.한선 | 225개 내장함수 자동 등록 (한글 fallback) |
IR 코드생성기 확장
기존 만약/동안/함수정의에 추가:
@반복문→ Pythonrange(), Rust.., JSfor(;;), 한선씨부터~까지@배열→ Python/JS[...], Rustvec![...]@구조체정의→ Pythonclass, Ruststruct, JSclass, 한선씨구조체@필드→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개국어 풀루프 완전 동작