CasNum

0x0mer가 개발한 'CasNum'은 고대 유클리드 기하학의 컴퍼스와 자 작도 원리를 활용해 임의 정밀도 산술을 구현한 라이브러리입니다. 모든 ALU 연산이 기하학적 작도로 처리되는 게임보이 에뮬레이터와 RSA 프로그램을 성공적으로 구동하며 기술적 가능성을 증명했습니다.

AI 요약

CasNum(Compass and straightedge Number)은 고대 그리스 수학자들이 사용하던 컴퍼스와 자를 이용한 작도 원리를 현대 컴퓨터의 산술 연산에 접목한 독창적인 프로젝트입니다. 원점과 단위라는 두 개의 점을 시작으로, 직선과 원의 교점을 찾는 5가지 기본 작도 방식을 마치 컴퓨터의 명령어 집합(ISA)처럼 활용합니다. 숫자 $x$를 평면상의 점 $(x, 0)$으로 표현하며, 삼각형의 닮음비와 중점 찾기 등을 통해 덧셈, 곱셈, 나눗셈뿐만 아니라 AND, OR, XOR와 같은 논리 연산까지 구현해냈습니다. 이 프로젝트의 핵심은 모든 ALU(산술논리장치) 연산이 기하학적 작도로만 이루어지는 기능성 게임보이 에뮬레이터를 구축했다는 점이며, 이는 수학적 개념을 프로그래밍적으로 완벽하게 재해석한 사례로 평가받습니다.

핵심 인사이트

  • 기하학적 ISA 구축: 직선 긋기, 원 그리기, 교점 찾기 등 5가지 기본 작도를 기반으로 모든 복잡한 연산을 수행하는 엔진을 구축함.
  • 수식의 복잡성: 두 원의 교점을 구하기 위해 circle.py에 구현된 공식은 WolframAlpha의 도움을 받았으며, 그 길이는 3,600자가 넘는 4차 방정식으로 구성됨.
  • 논리 연산의 구현: 대수적으로 정의하기 어려운 AND, OR, XOR와 같은 논리 연산을 기하학적 작도 체계 내에서 작동하도록 설계함.

주요 디테일

  • 기본 데이터 표현: 임의의 숫자 $x$를 2차원 평면 위의 좌표 $(x, 0)$인 점으로 정의하여 연산을 시작함.
  • 성능 최적화: 일반적인 닮음비 곱셈 알고리즘 대신, 효율적인 '2배 곱하기(Doubling)' 전용 알고리즘을 구현하여 성능을 개선함.
  • 나머지 연산(Modulo): 피제수에서 제수의 '2의 거듭제곱 배수' 중 가장 큰 값을 먼저 제거하는 방식을 도입해 나이브한 구현보다 뛰어난 결과를 얻음.
  • 실제 응용 사례: 라이브러리의 실효성을 증명하기 위해 examples/ 디렉토리에 RSA 암호화 프로그램과 게임보이 에뮬레이터 통합 코드를 포함함.
  • 의존성 및 라이선스: 프로젝트는 GitHub의 0x0mer 저장소에 공개되어 있으며, 기하학적 엔진은 cas/ 디렉토리 하단에 위치함.

향후 전망

  • 교육적 가치: 유클리드 기하학이 어떻게 현대 컴퓨팅 알고리즘으로 치환될 수 있는지 보여주는 강력한 교육적 도구로 활용될 것으로 보임.
  • 실험적 컴퓨팅: 성능보다는 개념적 완결성에 집중한 프로젝트로서, 향후 다른 고전 수학적 원리를 이용한 특수 목적 컴퓨팅 실험에 영감을 줄 것으로 예상됨.
출처:hackernews
Share

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...