|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 文 : [ぶん] 【名詞】 1. sentence ・ 文芸 : [ぶんげい] 【名詞】 1. literature 2. art and literature 3. belles-lettres ・ 芸 : [げい] 【名詞】 1. art 2. accomplishment 3. performance ・ 的 : [まと, てき] 【名詞】 1. mark 2. target ・ プログラミング : [ぷろぐらみんぐ] 【名詞】 1. programming 2. programing, (n) programming/programing
文芸的プログラミング(ぶんげいてきプログラミング、)とは、 * ドナルド・クヌースの提唱したコンピュータのプログラミングスタイルのこと。 * 「プログラミングは、芸術であり、文学である」と主張するドナルド・クヌースの論文集のこと。上に関する論文も含まれる。 ここでは前者について説明する。 == 概要 == 通常コンピュータのプログラミングでは、プログラムソースと関連するドキュメントを別々のファイルに記述するが、これには管理や更新内容の反映が負担となる。 この問題に対して、文芸的プログラミングでは、ドキュメントとソースを併記したWEBと呼ばれるメタソースを記述し、そこからドキュメントとソースコードをそれぞれ生成させることで、情報の一体性を高めている(これらのメカニズムをWEBシステムと呼ぶ)。 単にドキュメントとコードが併記されるだけであれば、通常のコメントやPerlなどに見られる埋め込みドキュメントと違いはないが、文芸的プログラミングでは、さらにマクロを利用することで、任意のコード断片にドキュメントを対応させる。これは、いわゆるハイパーリンクに相当し、コードの実行順と関係なく自由な順序で内容を記述することができる。例えば、 1.中心アルゴリズム do_something()は中心となる処理内容である。 == item.do_something(). 2.メインループ あるコレクションの全ての内容を<中心アルゴリズム>で処理する。 for item in collection のような形態である。これは最終的に for item in collection item.do_something(). というコードを出力する。 内容への言及を純粋に関連する部分だけを取り出して行うために、コメントとは全く異なる意味作用と見るべきであろう(特に実プログラム中に埋め込まれたコメントは、必要以上に簡略になりがちであるが、記述が中心となる文芸的プログラミングならば、その点は抑制される)。 現実には、変化の激しいソース記述を全て文芸的プログラミングで行うのは無理がある。しかし、複雑なアルゴリズムに関する内容や、配布を意識したオープンソースでは、応用の可能性があるといえる。 クヌースによるオリジナルのWEBシステムでは、PascalコードとTeXフォーマットのドキュメントを生成していた。しかし、文芸的プログラミングの概念は、特定の言語やフォーマットとは独立で、その後各種の言語に多くの移植が行われている。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「文芸的プログラミング」の詳細全文を読む スポンサード リンク
|