쌓인 기록에서 찾기
무엇을 찾으세요?
날짜를 몰라도 됩니다. 제목·Key Point·요약·태그를 한꺼번에 뒤집니다.
검색 범위부터 2026년 9월 11일 (금)까지270건
2건 · "인터프리터"조건 지우기 ×
001▲ 116 · 댓글 44Rust 동적 언어 인터프리터, 64비트 값 표현으로 17% 성능 향상Plush 언어 인터프리터의 Value 타입을 Rust 태그 열거형(16바이트)에서 64비트 단일 워드로 변경했다.인프라 · 데브옵스 · Replacing a Rust Enum with a 64-Bit Word Made My Interpreter 17% Faster
Rust 동적 언어 인터프리터, 64비트 값 표현으로 17% 성능 향상

Key Point메모리 구조 최적화만으로 메모리 낭비를 50% 줄이면서 오히려 성능을 높인 저수준 인터프리터 튜닝 기법이 실제로 작동하는 방식을 보여준다.
핵심 요약
- Plush 언어 인터프리터의 Value 타입을 Rust 태그 열거형(16바이트)에서 64비트 단일 워드로 변경했다.
- 메모리 정렬로 인한 낭비를 제거하고 저비트 태깅 기법을 사용해 각 값을 64비트 이내로 압축했다.
- 힙 객체 주소는 8바이트 정렬되어 최하위 3비트가 항상 0이고, 정수는 최하위 2비트를 차용해 태그를 내장했다.
- Fixnum(62비트 정수), Flonum(부동소수점), Immediate(nil, true, false, 함수 ID 등), 두 종류의 포인터를 인코딩한다.
- 문자열 구조 비교와 같은 기능을 위해 포인터 두 종류를 구분해 동등성 비교를 최적화했다.
- 추가 비트 연산이 필요했지만 CPU 캐시 효율과 메모리 대역폭 개선으로 종합 성능이 17% 향상되었다.
002▲ 321 · 댓글 111Python 인터프리터를 1024바이트 C 코드로 구현개발자가 Python 언어의 부분집합을 지원하는 인터프리터를 1024바이트의 C 코드로 만들었다.오픈소스 · 도구 · Making a Python interpreter in 1024 bytes
Python 인터프리터를 1024바이트 C 코드로 구현

Key Point극단적인 크기 제약 속에서 동적 언어 인터프리터의 핵심 기능을 어떻게 구현하는지 보여주는 사례로, 파서 설계와 런타임 최적화에 관심 있는 개발자들의 참고 자료가 될 수 있다.
핵심 요약
- 개발자가 Python 언어의 부분집합을 지원하는 인터프리터를 1024바이트의 C 코드로 만들었다.
- 변수는 소문자 한 글자로 제한하고, 에러 처리를 없애며, 중간 표현(intermediate representation) 없이 직접 실행한다.
- 반복문은 조건식 위치로 되돌아가 소스를 다시 파싱하고, 함수는 호출 위치를 저장한 뒤 함수 본체로 점프하여 실행한다.
- 읽기 쉬운 버전(4800바이트)에서 시작해 변수명 축약, ASCII 값 활용, 연산자 대체 등 코드 골프 기법으로 1024바이트까지 압축했다.
- 구현된 기능: 변수 할당, 산술 연산, if/while/for 반복, 함수 정의 및 호출, fizzbuzz 문제 실행 가능.