처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.08.30 43

1970년대 언어 POP-2, 작은 시스템들의 공용어로 되살아나다

Hacker News 원문 보기

오래된 프로그래밍 언어를 되살리는 시도는 대개 향수에서 출발하지만, 그 안에는 지금의 문제를 다시 바라보게 하는 관점이 담겨 있다. Uxn으로 알려진 Devine과 한 개발자가 함께 다듬고 있는 POP-2000(잠정적으로 POP2K로도 불린다) 프로젝트가 그런 사례다. 이들은 초창기 Lisp 방언들과 같은 시기·같은 커뮤니티에서 쓰이던 1970년대 언어 POP-2를 다시 꺼내 들었다. 목표는 이 언어를 화려하게 복원하는 것이 아니라, 여러 작은 스택 기반 시스템들 사이를 잇는 일종의 공용어(lingua-franca)로 표준화하는 것이다.

출발점은 지극히 실용적인 필요였다. Devine은 Uxn 시스템을 부트스트랩하는 과정을 돕기 위해 고수준 언어로 새 어셈블러를 작성하는 방안을 검토하고 있었고, 글쓴이는 오래전부터 '아주 작은 컴파일러'를 만들기에 좋은 언어에 관심을 두고 있었다. 두 관심사가 만나는 지점에서 POP-2가 후보로 떠올랐다. 여러 소형 시스템에 공통으로 얹을 수 있으면서, 각 시스템의 제작자들이 직접 컴파일러를 구현하기에도 부담이 없는 언어가 필요했던 것이다.

왜 스택 기반 언어인가

글쓴이는 자신이 concatenative(연접형) 프로그래밍을 좋아하는 이유를 솔직하게 밝힌다. 함수를 나란히 놓아 합성하는 방식이 우아하긴 하지만, 그가 정작 끌리는 지점은 그 패러다임이 본질적으로 더 낫다는 믿음이 아니다. 핵심은 구현이 압도적으로 쉽다는 데 있다. 인터프리터나 컴파일러를 만드는 문제 자체가 아주 작아지고, 그러면서도 C나 Odin 같은 언어에 비해 저수준 제어를 어느 정도 확보할 수 있다. 프로그래밍 언어 설계를 소프트웨어 제작보다 더 좋아한다고 말하는 사람에게, 스택 기반 소형 VM은 자신의 제약 조건에 자연스럽게 들어맞는 대상이었다.

흥미로운 점은 그가 개인적으로 정리한 언어 설계 목표가 원래 POP-2 논문에 적힌 목표와 사실상 같았다는 것이다. 반세기 전의 설계 의도와 지금의 소형·저전력 컴퓨팅(permacomputing) 진영의 지향이 겹친다는 사실은, 이 프로젝트가 단순한 복고가 아니라 오래된 아이디어의 재발견에 가깝다는 점을 보여준다.

최소 구현이 지원하는 것

Devine의 글을 요약하면, 최소한의 POP-2 구현은 vars x y z;처럼 여러 변수를 한 번에 선언하고, function myfunc a b;로 함수를 정의한 뒤 본문을 쓰고 end로 닫는 구조를 갖는다. 여기에 기본적인 if/elseif/else 제어 흐름, =>를 통한 입출력, 그리고 라벨과 goto를 이용한 반복이 더해진다. POP-2의 특징은 모든 값이 내부 스택을 조작한다는 점이다. 예를 들어 sum에 넘기는 인자들은 스택에 쌓이고, 반환값도 다시 스택에 올라간다. + 같은 연산자를 만나면 다음 요소를 스택에 밀어 넣은 뒤 두 값을 꺼내 더하는 식이라, 같은 계산을 여러 형태로 자연스럽게 표현할 수 있다.

이 스택 기반 성질 위에 몇 가지만 얹으면 목표에 도달한다는 것이 이들의 판단이다. 기본적인 메모리 관리, 시스템마다 다른 값 폭(width)을 다루는 지원, 그리고 좀 더 보편적인 I/O 체계다. 그렇게 하면 배우기 쉬우면서 여러 소형 시스템에서 돌아가는 언어가 된다. 다만 이 언어의 성격은 각 시스템의 기존 언어를 대체하는 것이 아니라, 입문자가 시작하기 좋은 공통의 출발점을 제공하는 '사회적 실험'에 가깝다. 초보자는 쉽게 익히고, 시스템 제작자는 쉽게 컴파일러를 구현하는 양쪽의 편의가 동시에 노려지는 셈이다.

아직은 '만약에'에서 막 벗어난 단계

현재 진행 상황을 냉정하게 보면 프로젝트는 초기 단계다. 글쓴이 스스로 이 모든 것이 일주일 전만 해도 하나의 '만약에(what-if)'에 불과했다고 말한다. concatenative 관련 디스코드 서버에서 문법과 구문을 두고 논의하며 EBNF 표기법으로 문법을 거의 완성해 가는 중이고, 표준 문서를 담을 Git 저장소는 곧 만들 예정이다. 저장소를 GitHub에 둘지는 고민 중인데, 방치와 ICE 관련 사안에 대한 불편함이 이유로 언급된다. 이름조차 POP-2000과 POP2K 사이에서 확정되지 않았다.

한국의 실무자 관점에서 이 프로젝트가 당장 실무에 투입될 물건은 아니다. 표준 문서도, 참조 구현도 아직 존재하지 않고, C로 작성해 ok VM을 겨냥할 예정이라는 참조 컴파일러 역시 계획 단계다. 그럼에도 눈여겨볼 대목은 분명하다. 언어의 가치를 '표현력'이 아니라 '구현 비용'에서 찾는 접근, 그리고 반세기 전 언어의 설계 목표가 오늘날 소형 컴퓨팅의 제약과 맞아떨어진다는 관찰은, 임베디드나 자작 VM처럼 자원이 빠듯한 환경을 다루는 개발자에게 실질적인 참고가 된다. 새 언어를 도입하는 판단에서 우리는 흔히 기능의 풍부함을 먼저 따지지만, 유지보수 주체가 직접 컴파일러를 감당할 수 있느냐라는 질문이 때로는 더 결정적일 수 있다는 점을 이 시도는 상기시킨다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.