핵심 요약
- 한 해외 개발자가 macOS ARM64 어셈블리어 200여 줄로 스도쿠 풀이 프로그램을 작성했습니다.
- 런타임이나 타입 체크가 전혀 없는 로우레벨 환경에서 CPU 비트 조작 명령어와 스택을 직접 활용했습니다.
- 81바이트 메모리 배열과 백트래킹을 제자리 수정 방식으로 다루며 전체 코드를 깃허브에 공개했습니다.
요약 한 개발자가 macOS AArch64(ARM64) 어셈블리어만을 사용해 약 200줄 규모로 작성한 수도쿠 풀이 프로그램(스도쿠 솔버) 제작기를 공개했습니다. 글쓴이는 여러 언어로 스도쿠 솔버를 구현하는 연재 시리즈를 진행 중인데, 모든 타입을 완벽하게 검증하던 이전 에피소드(Agda 언어)와는 정반대로 어떠한 타입 검증도 없고 런타임이나 컴파일러, 가비지 컬렉터조차 개입하지 않는 어셈블리어 환경을 선택했다고 밝혔습니다.
이번 구현에서는 81바이트 크기의 평면 배열로 수도쿠 판을 정의하고 실행 파일의 데이터 섹션에 직접 배치한 뒤, 제자리 수정(in-place mutation) 방식으로 보드를 업데이트합니다. 특히 CPU 아키텍처 수준에서 제공되는 비트 조작 명령어나 시스템 스택을 직접 활용하여 후보 숫자를 추리고 백트래킹을 수행합니다. 예를 들어 AArch64의 레지스터 구조(x0~x30 및 하위 32비트 w 레지스터), 16바이트 정렬 메모리 복사, 그리고 비트 개수를 세는 벡터 명령어(cnt, addv 등)를 활용해 가장 후보 숫자가 적은 빈칸을 탐색하는 과정을 상세한 코드와 함께 설명하고 있습니다.
런타임 추상화 계층이 완전히 제거된 채 레지스터와 스택 메모리를 직접 다루는 순수 어셈블리 구현이라는 점에서, 로우레벨 프로그래밍과 시스템 아키텍처에 관심이 많은 해외 개발자 커뮤니티에서 기술적 흥미를 자아내고 있습니다.
Sponsored · 광고