hansunc.crowny.org 파이프라인 엔진 한선씨 동반파일
작성일: 2026-05-19
대상: /Users/ef/crowny-hansunc/한선씨/파이프라인.한선
관련 파일: /Users/ef/crowny-hansunc/public/js/pipeline.js (JavaScript 원본)
개요
hansunc.crowny.org의 6단계 파이프라인 브라우저 엔진(pipeline.js)에 대한 한선씨 RPN 동반파일을 작성했습니다.
파이프라인 구조:
- 자연어 분석 — 한글 키워드 매칭
- KPS 생성 — 문제/해법 노드 조립
- IR 변환 — 타입별 노드 생성 (Intermediate Representation)
- RPN 변환 — 후위 순회 (Reverse Polish Notation)
- 크라우니어 인코딩 — opcode → 한글 기계어 변환
- 파이프라인 통합 실행 — 6단계 순차 호출
구현 내용
1. 자연어분석 함수 (12줄)
- 입력: 텍스트 문자열
- 동사 사전 구축 (더해, 빼, 곱해, 나눠, 출력, 정렬 등 9개)
- 맵 순회로 일치하는 동사 검색
- 출력: 동사 정보 (동사, 동작, 도메인)
2. KPS생성 함수 (27줄)
- KPS (Knowledge Processing Specification) 객체 생성
- 문제 맵 구축: 텍스트, 주어, 동작, 도메인
- 해법 배열 초기화
- 문 패턴 매칭: "부터/까지" (범위반복), "저장", "정렬", "반복"
- 각 패턴별 해법 노드 추가
3. IR변환 함수 (38줄)
변수: var-decl 노드반복: for-range 노드연산: operation 노드출력: call 노드4. RPN변환 함수 (38줄)
값 →변수명 형식인자들 함수명 형식@반복시작...@반복끝 레이블 구조왼쪽 오른쪽 연산자 형식5. 한글인코딩 함수 (35줄)
- opcode (0~728) → 한글 음절 변환
- 유니코드 공식:
0xAC00 + (초성×588) + (중성×28) + 종성 - 초성 맵: 0~8 = ㄱ, ㄴ, ㄷ, ㄹ, ㅁ, ㅂ, ㅅ, ㅇ, ㅈ
- 중성 맵: 0~8 = ㅏ, ㅐ, ㅑ, ㅒ, ㅓ, ㅔ, ㅕ, ㅖ, ㅗ
- 종성 맵: 0~8 = (없음), ㄱ, ㄲ, ㄳ, ㄴ, ㄵ, ㄶ, ㄷ, ㄹ
6. RPN_TO_한글맵 함수 (18줄)
- RPN 키워드 → opcode 매핑 사전 구축
- 산술: 더해(81), 빼(82), 곱해(83), 나눠(84), 나머지(85)
- 비교: 같다(162), 다르다(163), 작다(164), 크다(165)
- 제어: 점프(243), 아니면점프(244), 호출(247), 반환(248)
- 입출력: 보여줘/출력(405), 입력(406)
7. 파이프라인실행 함수 (65줄)
8. 테스트 코드 (4줄)
"1부터 10까지 더해 보여줘" 파이프라인실행
- 샘플 입력으로 전체 파이프라인 동작 확인
핵심 설계 결정
한선씨 RPN 선택 이유
- ISA729 1:1 매핑: 각 한글 키워드가 opcode와 직결
- 벡터형 처리: 배열/맵 스택 기반으로 대량 데이터 처리 효율적
- 3진 논리:
모르면분기로 불완전한 KPS도 처리 가능 - 코드 밀도: JavaScript 대비 1/3 크기로 같은 기능 구현
배열/맵 API 활용
배열생성,맵생성: 자료구조 초기화추가,꺼내,설정: 요소 조작길이: 순회 종료 조건포함: 패턴 매칭
레이블 기반 제어 흐름
@라벨명: 레이블 정의점프: 무조건 점프아니면점프: 조건부 점프- 동사 찾기, 해법 순회 등 반복 구조
파일 위치 및 버전
/Users/ef/crowny-hansunc/한선씨/파이프라인.한선hanseonc_high 파이프라인.한선 > program.toau && crownyc run program.toau문자열.한선 (문자열 라이브러리)배열.한선 (배열 라이브러리)동반 관계
| JavaScript | 한선씨 | 행 수 |
|---|---|---|
| pipeline.js (679줄) | 파이프라인.한선 (320줄) | 47% |
- ✅ 자연어분석 (12줄)
- ✅ KPS생성 (27줄)
- ✅ IR변환 (38줄)
- ✅ RPN변환 (38줄)
- ✅ 한글인코딩 (35줄)
- ✅ RPN_TO_한글맵 (18줄)
- ✅ 파이프라인실행 (65줄)
- irToText (IR 시각화) — 순수 출력용
- kpsToText (KPS 시각화) — 순수 출력용
- irToHanseon (고수준 코드 생성) — 브라우저 UI 관련
- hanseonToIR (고수준 파서) — 별도 구현 필요
- fpgaToIR (FPGA 파서) — 하드웨어 전용
- getCrownyeoTable (테이블 생성) — UI 참고용
다음 단계
- 컴파일 검증 —
hanseonc_high실행 후crownyc run테스트 - 성능 측정 — JavaScript vs 한선씨 실행 시간 비교
- 통합 테스트 — pipeline.js와 파이프라인.한선 결과 일치성 검증
- 문서화 —
HANSEON_PIPELINE.md한선씨 문법 레퍼런스 작성
참고
- 핵심 CLAUDE.md:
/Users/ef/crowny-hansunc/CLAUDE.md - 한선씨 스펙:
/Users/ef/CrownyOS/crownyc/CLAUDE.md - ISA729 정의:
/Users/ef/CrownyOS/ISA729_FINAL.md - 관용구:
/Users/ef/CrownyOS/docs/HANSEON_IDIOMS.md
상태: 완료 (코드 작성 + 기본 검증) 마지막 수정: 2026-05-19 18:42 UTC