크라우니코드 학습DB 일원화 준비 — 호환성·정합성 체크
개요
크라우니코드가 크라우니기계어(TOAU/ISA729)와 완전 호환되도록, 분산된 3개 학습DB의 호환성·정합성을 점검하고 단일 DB로 통합하는 준비 작업. 실제 머지 직전 단계까지 완료.
무엇을 했는지
1단계 — 정합성 체크 (각 DB 형식 검증)
3개 학습DB를 전수조사. intent|han|코드 형식, 중괄호 짝, 파편/미완성/영어누출/옛표기 분류.
| DB | 위치 | 전체 패턴 | 형식합격 | 합격률 |
|---|---|---|---|---|
| 홈 | ~/.crownycode/학습.dat | 32,834 | 7,859 | 23.9% |
| CrownyOS | CrownyOS/crownyc/data/crownycode/패턴/학습.dat | 10,440 | 2,753 | 26.4% |
| 주DB | CrownyTVM/crownycode/data/all_patterns.dat | 42,242 | 15,782 | 37.4% |
| 합계 | 85,516 | 26,394 | 30.9% |
intent|han| 시작줄 기준 재조립 후 정상 분석 가능.2단계 — 호환성 매트릭스 (한선씨 ↔ ISA729)
ISA729 사양(729슬롯/223정의)에서 opcode 한글명 216개 추출 + hanseonc_high.c 키워드 병합 → 588개 후보. 변수명/함수명/인자명 3개 위치에서 실제 컴파일 테스트.
실제 예약어 30개 (식별자로 사용 불가):
가져오기 계속 구조체 그리고 끝선택 끝회로 대입 동안 또는 레지스터
만약 멈춰 메서드 모르면 반복 반복끝 반복문 반환 변수 선택
시도 신호 아니면 오류 인스턴스 입출력 탈출 함수 혹시 회로
학습DB에서 예약어를 식별자로 오용한 빈도:
| 예약어 | 오용 건수 | 충돌 자리 | ISA729 대응 |
|---|---|---|---|
| 오류 | 93 | 함수명/변수명 | 시도-오류 예외블록 |
| 계속 | 10 | 변수명 | continue |
| 신호 | 6 | 변수명 | 하드웨어 라이브러리 |
| 반복 | 6 | 변수명 | for-each |
| 시도 | 4 | 변수명 | ENTER_TRY |
| 메서드 | 4 | 인자명 | CALL_METHOD |
| 레지스터 | 4 | 변수명 | 하드웨어 |
| 인스턴스 | 1 | 변수명 | — |
3단계 — 정규화 매핑 정의
규칙 파일: CrownyTVM/std/정규화규칙.dat
A. 옛표기 → 신표기 (__내장__ opcode 번호 → 키워드):
| 옛표기 | 신표기 | 건수 |
|---|---|---|
__내장__(30, | 길이( | 14,468 |
__내장__(33, | 문자열변환( | 15,478 |
__내장__(38, | 추가( | 11,662 |
__내장__(35, | 분리( | 1,695 |
__내장__(37, | 시작하는가( | 730 |
__내장__(39, | 설정( | 411 |
__sys__("경로존재", | 파일존재( | — |
__내장__(36, | (의미 모호 — 폐기) | 960 |
오류→오류값, 시도→시도값, 메서드→메서드명, 신호→신호값 등.4단계 — 일원화 시뮬레이션
3개 DB 병합 → 정규화 → 정제 → 중복제거 파이프라인 (실제 쓰기 없는 미리보기):
[1] 병합 85,408 패턴
[2] 형식 유효 72,810 (-12,598 잘못된 형식)
[3] 옛표기 정규화 69,101 (-3,709 폐기: __내장__36/미지원)
[4] 식별자 충돌 치환 완료
[5] 파편/미완성 제거 27,963 (-41,138)
[6] 완전중복 제거 8,918 (-19,045)
[7] intent 일원화 6,089 (-2,829)
최종: 85,408 → 6,089 고유 패턴 (92.9% 정제)
핵심 결론
- 분산 DB의 92.9%가 잡음: 파편/미완성(48%), 중복(22%), 잘못된 형식(15%).
- 주DB 형식 손상: 리터럴 개행 문제 — 일원화 시
intent|han|재조립 필수. - 예약어 충돌:
오류93건이 최대 — ISA729 opcode 한글명을 식별자로 쓴 패턴.
- 컴파일률은 여전히 낮음(~13-20%): 정규화 후에도 라이브러리 의존(
분리/합치기는
문자열.한선 가져오기 필요), 깨진 코드 잔재가 남음. 일원화 후 컴파일 검증 통과분만
"검증완료" 등급으로 별도 표시 필요.관련 파일 경로
| 파일 | 용도 |
|---|---|
CrownyTVM/std/정합성체커.한선 | 패턴 분류 로직 (한선씨 명세) |
CrownyTVM/std/정규화규칙.dat | 옛→신 표기 + 식별자 충돌 매핑 |
/tmp/정합성_분석.sh | DB별 정합성 통계 |
/tmp/주DB_재조립.sh | 주DB 멀티라인 → 단일줄 재조립 |
/tmp/예약어_위치별.sh | 3자리 예약어 판정 |
/tmp/일원화_시뮬.sh | 일원화 파이프라인 시뮬레이션 |
~/.crownycode/backup-20260522/ | 3개 DB 원본 백업 (58MB) |
/tmp/일원화_작업/final.dat | 일원화 결과 미리보기 (6,089 패턴) |
잔여 이슈 (다음 세션 — 실제 일원화)
- 실제 머지 실행:
final.dat을 검증 후 단일 정본 DB로 승격 - 컴파일 등급제: 각 패턴에
검증완료/형식합격/미검증등급 부여
intent|han|등급|코드 4필드 형식으로 확장 검토
- 라이브러리 의존 명시:
분리/합치기등 쓰는 패턴은가져오기자동 삽입 __내장__(36)960건 재검토: 폐기 전 의미 복원 가능한지 개별 확인- 에이전트 재학습: 일원화 DB로
agent.sh sync→ 직접매칭률 재측정 - 3곳 동기화 정책: 일원화 후 홈/CrownyOS/주DB를 심볼릭 링크 또는 단방향 sync로 일원화
작업 통계
- 점검 대상: 3개 DB, 85,516 패턴, 원본 58MB
- 산출물: 정규화 규칙 17건, 일원화 미리보기 6,089 패턴
- 예약어 확정: ISA729 216 + hanseonc 키워드 → 실제 30개
- 방법론: 한선씨 명세 + bash/awk 분석 도구 + 실제 hanseonc_high 컴파일 검증