Purple Garden Lexer 최적화: 0에서 580MB/s로 속도 향상

2025-07-14

이 블로그 게시물에서는 저자가 Purple Garden 언어의 lexer를 최적화하여 580MB/s라는 놀라운 속도를 달성한 과정을 설명합니다. 계산된 goto, 제로 카피 제로 할당 문자열, 할당자 인터페이스, 토큰 인터닝, 미리 계산된 키워드 해시 등의 기법을 사용하여 lexer의 성능을 크게 향상시켰습니다. 또한 아키텍처 개선 및 mmap을 사용한 고속 파일 읽기 등도 수행되었습니다. 이러한 최적화를 통해 처리 시간이 수십 밀리초에서 수 밀리초로 극적으로 단축되어 속도가 실제로 향상되었습니다.

더 보기
개발

순수 C 언어로 구현된 강력하고 효율적인 JSON 파서

2025-03-01

이 기사에서는 순수 C 언어로 구현된 JSON 파서에 대해 자세히 설명합니다. 함수를 구조체에 첨부하는 객체 지향적 접근 방식을 사용하여 가독성과 유지 관리성을 향상시켰습니다. 안전성을 중시하여 일반적인 메모리 누수 및 세그멘테이션 오류를 방지합니다. 깔끔하고 사용하기 쉬운 API, 컴파일 지침, 사용 예제, 그리고 강력한 코드를 위한 컴파일러 플래그를 포함한 C 개발 모범 사례를 제공합니다. 또한 인라인 JSON 생성을 위한 가변 인수 매크로 사용과 효율적인 메모리 관리 기법에 대해서도 설명합니다.

더 보기
개발 JSON 파싱

Neovim과 Treesitter를 사용하여 Lua에서 Bash 강조 표시하기

2025-01-28

저자는 여러 대의 시스템에서 패키지를 동기화하는 도구를 만들었고, Lua 설정 파일을 사용했습니다. Lua 설정 파일에 포함된 Bash 스크립트의 가독성과 편집성을 향상시키기 위해 Neovim과 Treesitter 플러그인을 활용했습니다. Treesitter는 injection 기능을 통해 Lua 테이블의 `script` 필드를 식별하고 사용자 정의 쿼리에 따라 내용을 Bash로 강조 표시합니다. 이를 통해 코드의 가독성과 유지 관리가 크게 향상됩니다. 이 글에서는 Neovim과 Treesitter의 설정 방법과 Bash 강조 표시를 위한 사용자 정의 쿼리에 대해 자세히 설명합니다.

더 보기
개발

Rust에서 sqleibniz에 Lua를 통합하여 구성 가능한 정적 SQL 분석 구현

2024-12-19

SQLite 구문을 위한 정적 SQL 분석 도구인 sqleibniz는 구성 가능성과 확장성을 높이기 위해 Lua 스크립팅이 통합되었습니다. 이 글에서는 Rust에서 mlua 크레이트를 사용하여 Lua와 상호 작용하는 방법을 자세히 설명하며, 데이터 구조 변환, Lua 함수 호출, 오류 처리 등이 포함됩니다. Lua 스크립트를 통해 사용자는 사용자 지정 규칙과 후크를 정의할 수 있으므로, 사용자 지정 진단 및 스타일 검사 등 유연한 정적 분석이 가능해집니다. 이로써 sqleibniz의 확장성과 사용자 경험이 크게 향상됩니다.

더 보기
개발 정적 분석