빨리 · CHAPTER 07

다음 — 부동소수점 없는 미래

출발점: 이미 살아 움직인다

한선씨는 갈 길을 왔다. crownyc.c v10.3는 867개 유니크 opcode로 사실상 완성. hanseonc_high 컴파일러는 4380줄, 225 내장함수·24 표준라이브러리로 프로덕션 수준.

한선씨 소스 8836개, TOAU 바이너리 449개, 라이브 서비스 210개 등록됐다. 크라우니VM 71개, node 102개가 함께 돈다. 언어는 죽지 않았다 — 움직인다.

그러나 벽이 있다. 정직하게 말해야 한다.

4대 벽: 과장 없이

①부동소수점 전무. 고정소수점만 존재. 루트2=1, 사인은 정수라디안만. 이것은 약점일까? 아니다. 선택이다.

②TLS는 외부의존. stunnel 없이 독립 HTTPS를 못 한다.

③외부 LLM은 Node 사이드카. 크라우니만으로는 Claude/Gemini를 호출할 수 없다.

④텍스트 스트리밍 캡. 단일읽기 16KB, 문자열 64KB 최대. 대용량 스트림은 분할 필수.

그리고 함정: 정수 오버플로 약 1410억대, 나눗셈의 자연반올림(|r|≤|b|/2)이 이진탐색을 무한루프로 만든다.

핵심: 부동소수점이 아니라 본성

4상균형3진은 정수의 세계다. 큐브=27트릿이 기본단위.

여기서 중요한 것은 음(U, -0)의 의미다. 음은 단순한 "띄어쓰기·구분자"가 아니다. 음은 어디로 갈지, 얼마나인지 모르는 비가시선 영역 — 가시선(옴·0이 있는 영역) 너머를 품는 검은 구멍 같은 것이다. 그것이 정수의 경계에서 벽()되는 구간들을 명확히 표시한다.

부동소수점을 흉내 내는 대신, 정수의 정밀성을 음의 경계 개념과 함께 무기로 삼는다는 방향이 정답이다.

돌파: 이미 시작됐다

1) 스케일드 정수로 벽①넘기 — 구현됨

테슬라가 부동소수점 대신 고정 스케일(예: ×1000)로 안전·결정성을 확보한 방식. 루트·사인·로그를 정수 영역에서 재구현한다. 한선씨는 이미 고정소수점.한선 라이브러리로 이 돌파를 실현했다(스케일 1000=소수 3자리, 나눗셈/루트/사인/코사인/문자열 변환, 최대오차 0.001).

결정성(매 실행 동일 결과)은 블록체인·회계·검증에 직결된다. 부동소수점 없음은 한계가 아니라 이미 넘은 경계다.

2) RPN 정통 수리

현재 RPN 정통(hanseonc_std.asm)은 루트·거듭제곱·설정·꺼내·크거나같다·가져오기가 깨져 있다. 그러나 RPN C판(hanseonc_rpn.c)은 작동하고, 생태계 빌드가 이미 이것을 쓴다.

문서를 hanseonc_rpn.c 기준으로 정정하면 — 한선씨 RPN = ISA729 1:1이라는 정통 위계가 복원된다.

3) 사이드카 표준화

외부 의존을 부정하지 말고 표준화하자. aimed식 — 순수 한선씨 주서버 + JS HTTPS 브리지 — 를 정식 패턴으로.

현재 순수 toau 32%, 즉시 대치 가능 합산 72~75%. 사이드카 표준화하면 대치 ~90%.

자립도: 70%에서 90%로

크라우니코드 생성엔진 자립도 70%(LLM 의존 30%).

강한 축: 수학 98%·문자열 98%·네트워크 97%·알고리즘 91%. 약한 축: 파일IO 74%·자료구조 66%.

약한 두 축을 끌어올리는 것이 다음 단계다.

정직한 함정 목록

  • 첫 전역변수 초기화(_더미=0 필요)
  • 포함() 위치0 버그
  • 단일스레드 블로킹
  • GC 없는 48M 아레나
  • 컴파일 stderr 분리(2>&1 금지)

성장하는 언어는 함정을 숨기지 않는다.

다음 방향: 정수의 언어로 끝까지

부동소수점을 갖는 것이 아니라 정수의 본성으로 끝까지 간다. 고정소수점 라이브러리로 스케일드 연산을 다지고, RPN 정통을 수리하고, 사이드카를 표준화한다.

흉내가 아니라 본성으로. 이미 첫 구현이 빛났다. 다음 장에서 코드로 그 길을 더 깊이 간다.

내 맘 –

독자 게시판 — 함께 읽고 남기는 곳

불러오는 중…

크라우니 책방에 가입하고 무료로 읽기

첫 번째 책은 선물이에요. 가입하면 100맘을 드리니까, 두 번째 책부터 자유롭게 읽을 수 있어요. 친구를 추천하면 50맘도 생겨요.