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生成のための可変長マクロの使用と、効率的なメモリ管理テクニックについても説明します。

続きを読む

NeovimとTreesitterを使ってLua内のBashを強調表示する

2025-01-28

著者は複数のマシン間でパッケージを同期するツールを作成し、Luaの設定ファイルを使用しました。Luaの設定ファイルに埋め込まれたBashスクリプトの可読性と編集性を向上させるために、NeovimとTreesitterプラグインを活用しました。Treesitterは、インジェクション機能を通じて、Luaテーブル内の`script`フィールドを特定し、カスタムクエリに基づいてその内容をBashとして強調表示します。これにより、コードの可読性と保守性が大幅に向上します。この記事では、NeovimとTreesitterの設定方法、およびBashの強調表示を実現するためのカスタムクエリについて詳しく説明します。

続きを読む
開発

RustにおけるsqleibnizへのLua埋め込みによる設定可能な静的SQL解析

2024-12-19

SQLite方言向けの静的SQL解析ツールであるsqleibnizは、設定可能性と拡張性を高めるためにLuaスクリプトが組み込まれました。この記事では、Rustでmluaクレートを使用してLuaとのやり取りを行う方法を詳しく説明しており、データ構造の変換、Lua関数の呼び出し、エラー処理などが含まれています。Luaスクリプトにより、ユーザーはカスタムルールとフックを定義でき、柔軟な静的解析(カスタム診断やスタイルチェックなど)が可能になります。これにより、sqleibnizの拡張性とユーザーエクスペリエンスが大幅に向上します。

続きを読む
開発 静的解析