TECH 으로 돌아가기
TECH HACKER NEWS 오늘 8분 읽기 30 READS

BASIC가 사라지지 않았다면: 소로 베이직이 던지는 질문

1980년대 가정용 컴퓨터를 켜면 가장 먼저 만나던 언어가 BASIC이었다. 당시 BASIC은 초보자용 입문 도구이자 사실상 운영체제의 명령줄 역할을 겸했지만, 구조적 프로그래밍과 전문 개발 환경이 보편화되면서 '구식'의 대명사로 밀려났다. '소로 베이직(Thoreau BASIC)'은 바로 그 지점을 되묻는 프로젝트다. 만약 BASIC이 유행에서 밀려나지 않고 계속 진화했다면 지금 어떤 모습일까 하는 가정에서 출발한, Windows x64와 베어메탈 x64 UEFI 환경을 지원하는 무료 64비트 BASIC이다.

1983년에 갇히지 않은 BASIC

이 언어의 출발점은 GW-BASIC 스타일의 문법이다. 줄 번호와 간결한 명령어로 대표되던 그 친숙한 형태를 유지하되, 내부는 현대적으로 다시 짰다. 64비트 메모리 주소 공간, 24비트 컬러 그래픽, 스프라이트, 마우스 입력, TCP/IP와 HTTP 네트워킹, 디버거와 프로파일러, 소스 편집 도구를 갖췄다. 여기에 멀티코어를 활용하는 PARFOR 병렬 반복문과 네이티브 x64 JIT 컴파일이 더해진다. 특히 복소수는 물론 사원수(quaternion)와 팔원수(octonion)까지 기본 자료형으로 다루는 점이 눈에 띈다. 이번 버전에서는 부동소수점 INT 연산과 이들 고차원 수 연산에 대한 JIT 최적화가 이뤄져 불필요한 작업을 줄였다고 설명한다.

설계 철학에서 분명한 특징은, 그래픽·네트워킹·사운드가 별도의 프레임워크나 라이브러리가 아니라 모두 평범한 BASIC 명령어라는 점이다. 과거 BASIC이 하드웨어를 직접 두드리던 감각을 현대 기능에도 그대로 적용한 셈이다. 사운드의 경우 GM/GS 웨이브테이블을 완비해 MIDI, WAV, FLAC, Opus 재생을 지원한다.

운영체제 없이 펌웨어에서 바로 실행

가장 독특한 부분은 같은 BASIC 언어가 일반 Windows 프로그램으로도, 운영체제 없이 UEFI 펌웨어에서 직접 부팅되는 형태로도 동작한다는 점이다. BASIC 프로그램을 독립 실행형 Windows EXE로 묶거나, 부팅 가능한 EFI 애플리케이션으로 패키징할 수 있다. UEFI 빌드는 GOP 그래픽, 펌웨어 또는 원시 HID 키보드 입력, 폴백을 갖춘 마우스 지원, 펌웨어 프로토콜이나 소로 자체의 SNP 기반 네트워크 스택을 통한 통신, 가능한 경우 HDA/Azalia PCM 사운드를 활용한다. Windows판과 동일한 인터프리터·JIT·GM 웨이브테이블이 그대로 쓰인다는 설명이다.

이 구조가 실무자에게 주는 함의는 분명하다. OS 계층을 거치지 않고 하드웨어 위에서 곧장 돌아가는 애플리케이션을 BASIC 수준의 문법으로 만들 수 있다는 것은, 교육용 데모나 진단 도구, 임베디드 성격의 부팅 유틸리티 같은 영역에서 흥미로운 실험 대상이 된다. 다만 펌웨어 환경에서 '폴백'과 '가능한 경우'라는 표현이 반복되는 데서 알 수 있듯, 실제 하드웨어 호환성은 기기마다 편차가 있을 수밖에 없다.

파일 관리와 상태 저장 명령어

이번 업데이트에서는 파일 브라우저와 메뉴가 일반 BASIC 명령어로 들어왔다. GETFILES는 파일 마스크를 선택적으로 적용해 파일과 디렉터리, 상위 항목을 모아 오고, SELECTBOX는 문자열 배열을 키보드와 마우스로 조작 가능한 선택기로 바꿔 준다. 여러 열 배치, 색상 지정, 단일 또는 이중 박스 테두리를 지원한다. 파일 명령 전반에서 파일명의 원래 철자와 대소문자를 보존하며, 마스크는 대소문자를 구분한다. 전체 경로는 추가 확장자를 포함해 최대 4,095바이트까지 허용되지만 개별 파일명에 대한 파일시스템 자체의 제한은 그대로 적용된다.

데이터 안정성을 위한 명령어도 추가됐다. STATEWRITE와 STATELOAD는 선택한 변수들을 체크섬이 붙은 두 개의 교대 세대로 체크포인트 저장한다. FLUSH, FILECOMMIT, FILECOPY는 단계적 저장과 검증된 백업을 지원하며, CRC32로 바이트 문자열을 검사하고 TEXTSTATS는 문자열 배열의 특정 구간에서 단어와 문자 수를 센다. 또한 SYSTEMINFO$는 CPU와 펌웨어 정보, 사용 가능한 AVX2·SSE2, PARFOR 용량, 보정된 TSC 카운터 속도, 디스플레이 백엔드, 빌드 정보를 보고한다. RUN은 호스트 스택을 키우지 않고 프로그램을 재시작할 수 있게 됐다.

사운드 자원도 정리됐다. THOREAU_GM.TBGM 웨이브테이블은 무손실 압축 상태로 513.5MB에 이르며, 사운드 뱅크는 재생 전에 PCM으로 펼쳐지므로 음악이 연주되는 동안에는 압축 해제가 일어나지 않는다. 용량이 부담되는 독립 실행형 EXE나 EFI에서는 NOGM으로 뱅크를 생략할 수 있다.

향수와 실용 사이

소로 베이직은 명확히 한 사람의 레트로 지향 프로젝트의 색채를 띤다. 예제로 포함된 'Pixel Prose'는 독립 실행형 EXE·EFI로도 제공되며, 그 원형인 DOS·코모도어 64·암스트라드 CPC 버전은 제작자의 다른 복고 작업들과 함께 itch.io에 올라와 있다. 배포와 다운로드 역시 itch.io를 통하며, 개발 후원은 PayPal로 받되 나그 스크린이나 잠긴 기능은 없다고 못 박는다.

결국 이 프로젝트의 가치는 상용 개발 도구와의 경쟁보다는, 익숙한 문법 위에 현대 하드웨어 기능을 얹었을 때 프로그래밍 경험이 어떻게 달라지는지를 보여 주는 사고실험에 가깝다. 한국의 실무자라면 교육 현장이나 개인 프로젝트, 혹은 펌웨어 수준의 저수준 환경을 탐색하는 도구로 가볍게 시험해 볼 만하다. 제작자가 버그 리포트와 호환성 보고, 그리고 기묘한 BASIC 엣지 케이스를 환영한다고 밝힌 만큼, 완성품이라기보다 함께 다듬어 가는 실험 플랫폼으로 접근하는 편이 적절해 보인다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://thoreaubasic.com/
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...