TinyCompiler: 주말에 만든 컴파일러

2025-02-20

이 프로젝트는 주말에 만든 미니멀리스트 컴파일러인 TinyCompiler의 생성 과정을 설명합니다. 저자가 만든 난해한 프로그래밍 언어인 Wend를 GNU 어셈블리로 변환합니다. Wend는 포인터, 배열 등의 복잡한 기능을 생략하고 컴파일러의 기본 개념에 초점을 맞춘 간단한 언어입니다. 전체 프로젝트는 500줄 미만의 Python으로 작성되었으며, 고정 소수점 제곱근 계산, 맨델브로 집합 렌더링, 간단한 게임 등의 테스트 프로그램이 포함되어 있습니다. 컴파일러 이론을 배우는 데 좋은 자료입니다.

더 보기
개발

`#define` 지시어만 사용한 C 코드: 마법 같은 불꽃 애니메이션

2025-02-20

이 글에서는 저자가 C 언어의 `#define` 지시어만을 사용하여 불꽃 애니메이션 프로그램을 만든 방법을 자세히 설명합니다. 불가능해 보이는 이 작업은 매크로 정의의 텍스트 치환 기능, 토큰 연결, 재귀 호출 기법을 교묘하게 사용하여 달성되었습니다. 결과는 불꽃이 타오르고 퍼지는 것을 시뮬레이션한 것으로, C 전처리기의 강력한 성능과 '튜링 완전성'을 보여줍니다. 또한 매크로의 잘못된 사용으로 인한 잠재적 위험과 문제점도 강조하고 있습니다.

더 보기
개발