「方言 (プログラミング言語)」の版間の差分

m
+en
編集の要約なし
 
m (+en)
[[プログラミング言語]]における'''方言'''は、[[自然言語]]の[[方言]]と同様に基本的な文法や機能を共通しながら、細かい振る舞いに差違の見られる類縁言語の事をいう。ただし、外部[[ライブラリ]]により機能の拡張を行なう場合は、他の方言でも同様に拡張が可能なので方言とは言われない。多くの場合ライブラリは複数の方言に対応し、差違を吸収できるように作られている。また、[[Pascal]]、[[Modula]]、[[Modula-2]]、あるいは[[C|C言語]]と[[C_Plus_Plus|C++]]のように進化の過程で言語的な能力を変化させたものはたとえ類縁関係にあっても方言とは言われない。
 
最も頻繁に見られる方言の例は、統一仕様をもった言語に対して複数の[[コンパイラ]]、[[インタプリタ]]が独自の拡張仕様を盛り込むケースである。[[BASIC]]はこの種の典型で、一応は規格が存在するのだが、言語間での互換性はほとんどないに等しい状態となっている。
 
逆に、特に定まった規格がなく、処理系=仕様という形態から方言が生じたケースも多い。[[LISP]]はS式表現とcar, cdr, eval, condといった基本的な語彙があればほとんど自由に機能拡張ができるため、[[Common Lisp]]が策定されるまでは無数の方言が乱立する状態にあった。現在普通に使われる処理系はCommon Lisp系、[[Scheme]]系、[[Emacs]]のEamcs Lisp程度で以前よりは安定した状態にあるが、それでも実装毎の差違がかなり見られる。
 
[[C言語]]もLISPに近い経緯をたどった言語で、かつては処理系毎にかなりの実装差が見られた。しかしANSI C規格が出現した事で非互換性の問題はほぼ解消し、方言と呼べるような違いは初期のK&RスタイルとANSIスタイル、[[GCC]]拡張機能の差違程度である。
 
[[Category: プログラミング言語 | ほうげん]]
 
[[en:Programming language dialect]]
439

回編集