プログラミング言語における方言(ほうげん)は、
自然言語の
方言と同様に基本的な文法や機能を共通しながら、細かい振る舞いに差違の見られる類縁言語の事をいう。ただし、外部
ライブラリにより機能の拡張を行なう場合は、他の方言でも同様に拡張が可能なので方言とは言われない。多くの場合ライブラリは複数の方言に対応し、差違を吸収できるように作られている。また、
Pascal、Modula、
Modula-2、あるいは
C言語と
C++のように進化の過程で言語的な能力を変化させたものはたとえ類縁関係にあっても方言とは言われない。プログラミング言語においては、
ソースコードの互換性が方言の性質を決定する。逆に同じソースコードを同じプラットフォームにおいて同じ意味で解釈しても、吐き出される
実行コードは
処理系ごとに異なっている事が普通である。なぜならコードは
コンパイラ最適化などの段階を経るため、利用者にとって「同じである」と判断される動作さえ行えば、実際の内部構造は問わないからである。言語仕様によっては、これら最適化などの段階についても仕様のうちに内包して制御する。最も頻繁に見られる方言の例は、統一仕様をもった言語に対して複数の
コンパイラ、
インタプリタが独自の拡張仕様を盛り込むケースである。
BASICはこの種の典型で、一応は規格が存在するのだが、言語間での互換性はほとんどないに等しい状態となった。近年では
JavaScriptなどもブラウザ間の互換性が問題となっている。
Wikipedia.orgをもっと見ると…