
Yon – 콘텐츠 주소 지정 방식의 격자 힙을 사용하는 토포스 지향 언어
요약
Yon은 콘텐츠 주소 지정(content-addressed) 방식의 격자 힙인 xleech2를 사용하는 토포스 지향 언어입니다. Leech 격자를 활용하여 O(1) 구조적 동등성을 보장하며, 고정된 비트맵 기반의 XSet을 통해 효율적인 집합 연산을 수행합니다.
핵심 포인트
- 콘텐츠 주소 지정 방식을 통한 O(1) 구조적 동등성 보장
- Leech 격자 기반의 고정된 196,560개 슬롯 힙 구조
- 24KB 비트맵을 활용한 O(1) 집합 멤버십 및 고정 시간 집합 연산
- Conway group Co0 대칭성을 이용한 선택적 궤도 정규화 지원
값의 주소는 곧 그 콘텐츠입니다.
Yon은 콘텐츠 주소 지정 (content-addressed) 힙인 xleech2에 할당합니다. 할당 시 바이트를 해싱하며, 동일한 콘텐츠는 기존 슬롯을 반환합니다. 해시 충돌은 직접적인 바이트 비교를 통해 해결되므로, 서로 다른 콘텐츠가 별칭(alias)을 갖는 일은 없으며 동일한 콘텐츠 ⇔ 동일한 슬롯 관계가 성립합니다. 따라서 임의의 큰 값에 대한 동등성 비교는 단 하나의 정수 비교로 이루어집니다. 즉, 구조적으로 **O(1) 구조적 동등성 (structural equality)**을 보장합니다. 이 작업은 격자 기하학(lattice geometry)이 아닌 콘텐츠 주소 지정에 의해 수행됩니다. Leech 격자는 의도적인 경계로 도입되었습니다. 힙은 Λ24의 최소 벡터(minimal vectors) 개수인 최대 196,560개의 슬롯을 보유합니다. 이는 고정된 유한 상태 용량이며, 한계에 도달했을 때 성능이 서서히 저하되는 대신 명확하게 오류를 발생시킵니다. 격자가 실제로 부하를 견디는 부분은 아래와 같습니다: 집합(sets), 대칭성(symmetry), 그리고 오류 정정(error correction)입니다.
fun main(): number { be greeting holds "ciao, mondo" // 힙에 인터닝됨 be _ holds String.print(greeting) return 0 }
모든 문자열 리터럴은 내장된 String의 섹션입니다.
동일한 힙에 인터닝(interned)되므로, 두 문자열이 어떻게 생성되었든 상관없이 동일한 문자열은 하나의 슬롯을 가집니다.
집합은 24 KB의 기하학입니다.
XSet은 Leech 격자의 196,560개 최소 벡터 중 일부이며, 고정된 **196,560비트 비트맵 (bitmap)**으로 저장됩니다. 이는 3,072개의 64비트 워드(word)로 구성되어 약 24 KB이며, 집합에 요소가 하나 있든 모두 있든 크기는 동일합니다. 멤버십 확인은 단일 비트 테스트로 **O(1)**에 수행됩니다. 합집합(Union)과 교집합(Intersection)은 해당 3,072개 워드에 대해 비트 단위 OR 및 AND 연산을 수행하며, 이는 각 집합이 보유한 요소의 수와 관계없이 고정된 횟수의 패스(pass)로 완료됩니다. 크기는 팝카운트(popcount)로 계산됩니다. 최소 완벽 해시(Minimal Perfect Hash)는 별도의 테이블 없이 각 최소 벡터를 자신의 비트 위치에 배치하며 충돌이 전혀 없습니다. 이는 196,560개 전체에 대해 철저히 검증되었습니다 (runtime/test_mphf.c).
범용 해시 집합(general-purpose hash set)은 O(1)의 멤버십 확인은 일치하지만, 상수 시간의 집합 대수(set algebra)는 일치하지 않습니다. 범용 집합에서 합집합과 교집합은 집합의 크기에 비례하는 시간이 소요됩니다. 반면, 여기서는 요소별 작업 없이 3,072개 워드에 대한 고정된 패스로 처리됩니다.
대칭성까지 허용하는 정체성(identity)을 선택하십시오.
일반적인 할당(Ordinary allocation)은 정확한 콘텐츠를 통해 값을 주소 지정합니다. 그 위에, Yon은 **선택적 궤도 정규화 (opt-in orbital canonicalization)**를 제공합니다. Leech 격자(Leech lattice)는 Golay 코드의 24개 좌표에 작용하는 Mathieu group M24를 포함하는 예외적인 대칭군인 Conway group Co0를 가집니다. 이러한 대칭성에 의해서만 차이가 나는 두 값은 동일한 궤도(orbit)에 놓입니다. 컬렉션에 각 값을 해당 궤도의 정규 대표(canonical representative)와 동일시하도록 요청할 수 있으며, 이 경우 대칭적으로 동등한 콘텐츠는 하나의 슬롯으로 병합됩니다: HashSet.orbital_add, HashMap.orbital_set, 그리고 XSet 및 기타의 궤도 변형(orbital variants)들이 이에 해당합니다. 이는 대칭적 동등성(symmetry-equivalence)을 원하는 정체성(identity)으로 삼을 때 컬렉션마다 사용자가 선택하는 사항이며, 정규 형식(canonical form)은 Leech 엔진의 나머지 부분과 동일한 mmgroup 메커니즘을 통해 계산됩니다.
비트 반전(bit-flips)에서도 살아남는 리스트.
VoyagerList는 각 12비트 페이로드(payload)를 24비트 이진 **Golay code (24, 12, 8)**의 코드워드(codeword)로 저장합니다. 이는 Voyager 탐사선이 태양계 너머에서 지구로 이미지를 전송할 때 사용했던 코드입니다. 인코딩(Encoding)과 신드롬 디코딩(syndrome decoding)은 재구현된 것이 아니라 실제 mmgroup mat24 테이블을 통해 실행됩니다. 이 코드는 최소 거리(minimum distance)가 8이므로, 코드워드 내에서 3개의 비트가 반전되더라도 읽기 과정에서 이를 감지하고 수정할 수 있습니다. 여기서 Golay 코드는 단순한 장식이 아닙니다. 이는 Leech 격자를 구성하는 조합론적 대상(combinatorial object)이며, 따라서 집합을 주소 지정하고 궤도를 정규화하는 것과 동일한 엔진이 저장소를 손상으로부터 보호합니다.
세계는 범주(categories)입니다. 동작은 화살표(arrows)입니다.
토포스 지향 프로그래밍(Topos-Oriented Programming)에서 **세계(world)**는 범주(category)이고, **장소(place)**는 그 안의 대상(object)이며, 값은 **섹션(section)**입니다. 즉, 불변하며 콘텐츠에 의해 식별됩니다. 모든 동작은 **화살표(arrows)**에 존재합니다. 정체성(Identity)은 예외이며, 필요한 경우에만 요청됩니다. 논리는 내부적입니다: 진리(truth)는 부분대상 분류기(subobject classifier) Ω이며, unknown은 오류가 아니라 Heyting 코어의 시민입니다. 요네다 보조정리(Yoneda lemma)에 따라, 사물은 그 관계에 의해 결정됩니다. 타입 체커(type checker), 최적화 도구(optimizer), 그리고 할당기(allocator)는 바로 그 관계를 바탕으로 동작합니다.
Yon이 하지 않는 것
정체성(Identity)은 명시적입니다. 동시성(Concurrency)은 프로세스입니다. 실패(Failure)는 값(Value)입니다. 특정 장소(place)에 대한 인터페이스는 화살표(arrows)입니다. 다른 곳에서 흔히 볼 수 있는 네 가지 메커니즘은 존재하지 않습니다:
가비지 컬렉터(garbage collector) 없음
슬롯(Slots)은 프로세스의 수명 동안 안정적으로 유지되며, 힙(heap)은 오직 구별되는 콘텐츠와 함께 성장합니다.
스레드(threads) 없음
동시성의 단위는 프로세스입니다. 공간(Spaces)은 공유 메모리 와이어(shared-memory wire)를 통해 통신합니다.
예외(exceptions) 없음
실패는 데이터입니다. 즉, 장소(place), 선언(declaration), 또는 프로세스 종료(process exit)이며, 결코 던져지는 스택(thrown stack)이 아닙니다.
타입 클래스(typeclasses) 없음
화살표(Arrows)가 인터페이스입니다: 즉, 한 장소의 관찰값들에 대한 전층(presheaf)입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN OpenAI Codex의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기