コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

Wikipedia:アルゴリズムの表記法

従来の百科事典とは異なり、ウィキペディアにはアルゴリズムについての詳細な記述が多く、それらにはプログラム例がついていることがよくあります。

以下に示すのは、ウィキペディアでアルゴリズムのよいプログラム例を作るためのヒントの、さらに草案です。さらなる議論が望まれます

プログラム例は、読者がそのアルゴリズムを理解するためであり、すぐに使えるコード例を示すためではありません。情報科学を学ぶ人やプログラマーが読みやすく、わかりやすく記述してください。

多くの人が使っている言語、理解できる言語を使って記述してください。C言語(特に低レベルの機能を使用したものが望まれます)やC++(特にオブジェクト指向のアルゴリズムやパターンを示すとき)、PerlPythonといったものがいいでしょう。SmalltalkEiffelといった、ユーザーの少ない言語はおすすめできません。

Ruby疑似コードでプログラム例を書くのが良いことか悪いことかついては、議論があります。Rubyは大変読みやすいのですが、非常に一般的な言語とは言えません。疑似コードで書かれたアルゴリズムは、言語の詳細やら何やらで混乱することが少ないため、好まれています。これは、(C言語などの)ある種の言語に比べたら大変な利点ですが、(PythonやRubyなどの)ある種の言語に比べたらたいした利点にはなりません。また、疑似コードには標準化されていない、テストが大変であるといった点も指摘されています。

PascalBASICでプログラム例を作成しようとするなら、互換性に気をつけなくてはなりません。これらの言語を使うのなら、もっとも一般的な機能のみを使うべきでしょう。言語特有の構造はプログラム例に使わないよう気をつけた方がよいでしょう。たとえば、Perlのコードを書くなら、その特に独特で一風変わった機能は使わないようにして、他の言語のプログラマーが困らないようにしましょう。

ループを使う方が、末尾再帰を使うよりもよいでしょう。反復の方がより一般的ですし、言語の中には末尾再帰の機能を持っていない物もあるからです。

以上のヒントが、どれにしたらよいか決めるために充分でなかったら、複数のプログラム例を載せることも構いません。

アルゴリズムも参照してください。