TinyCompiler:週末で作られたコンパイラ

2025-02-20

このプロジェクトは、週末に作成されたミニマリストなコンパイラであるTinyCompilerの作成について説明しています。これは、作者が作成した難解なプログラミング言語WendをGNUアセンブリに翻訳します。Wendは、ポインタ、配列などの複雑な機能を省き、コンパイラの基本概念に焦点を当てたシンプルな言語です。プロジェクト全体は500行未満のPythonで記述されており、固定小数点の平方根計算、マンデルブロ集合のレンダリング、簡単なゲームなどのテストプログラムが含まれています。コンパイラ理論を学ぶための優れたリソースです。

続きを読む
開発

`#define`ディレクティブのみを使用したCコード:黒魔術的な炎のアニメーション

2025-02-20

この記事では、著者がC言語の`#define`ディレクティブのみを使用して炎のアニメーションプログラムを作成した方法を詳述しています。一見不可能に見えるこのタスクは、マクロ定義のテキスト置換機能、トークン連結、再帰呼び出しテクニックを巧みに使用することで達成されました。その結果は、炎の燃焼と拡散をシミュレートしたものであり、Cプリプロセッサの能力と「チューリング完全性」を示しています。また、マクロの誤った使用による潜在的なリスクと問題点についても強調されています。

続きを読む
開発