方言 (プログラミング言語)
プログラミング言語における方言(ほうげん)は、自然言語の方言と同様に、基本的な文法や機能を共通しながら細かい振る舞いに差違の見られる類縁言語の事をいう。ただし、外部ライブラリにより機能の拡張を行なう場合は、他の方言でも同様に拡張が可能なので方言とは言われない。多くの場合ライブラリは複数の方言に対応し、差違を吸収できるように作られている。また、Pascal、Modula、Modula-2、あるいはC言語とC++のように進化の過程で言語的な能力を変化させたものはたとえ類縁関係にあっても方言とは言われない。
方言とはある言語の中のバリエーションの一つのことである。どれだけマイナーな言語であろうとプログラミング言語全体が方言と呼ばれることはない。これは自然言語の方言と同じ考え方である。例えば日本語という言語の中にある大阪弁や大阪弁があり、それらが方言である。これに当てはめると、Perl、Ruby、Pythonは方言ではなく言語であり、Rubyの実装であるJRubyやIronRuby特有の違いが方言となる。方言はある言語に多数の実装が存在し、それらに完全な互換性がないことで生まれる。一個人、一企業、一団体が独占しているようなものは、多数の実装が存在するわけではないため原則として方言は発生しない。プログラミング言語ではないが方言が多い例としてPOSIXコマンドがある。これらは多数の実装が存在しており、POSIXで標準化されている範囲内においてもそれぞれに微妙な違いがあるため方言がきついと言われている。
プログラミング言語においては、ソースコードの互換性が方言の性質を決定する。