for item in collection
最終的に、このコードは以下のようなコードとして出力されます。
for item in collection
item.do_something().
このように、コードの詳細な説明と実際のコードが密接に関連付けられており、コードの意図や構造を理解しやすくなっています。
文芸的プログラミングは、コードの内容を関連する部分だけを取り出して記述できるため、通常のコメントとは異なる意味作用を持ちます。特に実プログラム中に埋め込まれたコメントは、必要以上に簡略になりがちですが、記述が中心となる文芸的プログラミングならば、より詳細で丁寧な説明を加えることができます。
実用性
ソースコードの記述は変化が激しいため、すべてのコードを文芸的プログラミングで記述するのは現実的ではありません。しかし、複雑なアルゴリズムに関する部分や、オープンソースのように配布を意識したコードにおいては、その利点を活かすことができます。特に、アルゴリズムの説明やコードの意図を正確に伝えたい場合に有効です。
クヌースが開発したオリジナルのWEBシステムでは、PascalコードとTeX形式のドキュメントが生成されていました。しかし、文芸的プログラミングの概念は、特定の言語やフォーマットに依存せず、様々な言語や環境に移植されています。
関連技術
- - インテンショナルプログラミング: プログラムの意図を明確に記述し、そこから様々な表現のコードを生成するプログラミング手法。
- - コメント (コンピュータ): ソースコード中に記述される人間向けの注釈。文芸的プログラミングは、より詳細なドキュメントを作成する。
- - Javadoc: JavaのソースコードからAPIドキュメントを生成するツール。
- - Coqdoc: Coqの証明スクリプトからドキュメントを生成するツール。
- - 形式手法: 仕様記述言語(VDMなど)を用いて、厳密な仕様を記述し、コード生成を支援する。
文芸的プログラミングは、プログラムの品質向上と理解促進に貢献する重要な概念であり、今後もその応用が期待されます。