TOPシステム開発> 【新・言語進化論】プロの言語仕様の読み方> 第1回:そもそも言語仕様って何だ? (1/3)

【新・言語進化論】プロの言語仕様の読み方

【新・言語進化論】プロの言語仕様の読み方

第1回:そもそも言語仕様って何だ?

著者:シンクイット編集部

公開日:2007/11/6(火)

膨大なドキュメント「言語仕様」とは

この世には、プログラミング言語の極意が記されているドキュメントが存在する。入門書の元でありながらも書かれることが少なく、プログラミング言語の根幹ともいえるもの、それが「言語仕様」である。

言語仕様というのは、簡単にいえば、そのプログラミング言語の文法・記号などの意味を厳密に規定したドキュメントのことである。Javaにしろ何にしろ、プログラミング言語には必ずといっていいほど言語仕様が存在している。厳密な規定とは「誰が読んだとしても、同じ意味としてとらえることが可能である」という意味だ。

読者の皆さんも、業務で利用する言語仕様については一度は読んだことがあるのではないだろうか。しかし、その膨大なドキュメント量に圧倒され、読み解くことを先延ばしにしたままにしている方もいるであろう。

そこで本連載では、この言語仕様を紐解いていくことにする。第1回では、言語仕様についてJavaを例に、全体的なイメージをつかんでいく。第2回以降では、Javaの言語仕様について、現場の視点からその読み解き方を紹介する。言語仕様について知ってはいるけど、詳しくは知らない方々には、是非とも読んでいただきたい。

まずは、改めて言語仕様について見ていこう。

言語仕様はプログラミング言語の仕様書といえるドキュメントであり、さまざまなことが記されている。ソフトウェアに仕様書があるように、プログラミング言語にも仕様書があるのである。

例えば、Javaの言語仕様の例を見てみると、

言語仕様の規定
言語仕様の規定
(画像をクリックすると別ウィンドウに拡大図を表示します)

となっており、大きな枠として「文法」や「字句構造」などがある。それぞれがさらに詳細な項目に分かれて規定されており、例えば文法では「文脈自由文法」「字句文法」「構文文法」「文法表記」となっている。

これらすべての内容が書かれているため、そのドキュメント量は非常に多い。入門書もこの言語仕様の内容を踏襲し、初心者でもわかりやすいように書かれている。

しかし、プログラミングの基本的な部分が書かれているにもかかわらず、言語仕様について語られることは以外と少ない。というも、プログラミングにあたっては、言語仕様を知らなくてもできるからである。

入門書の定番といえばHello worldだが、言語仕様ではその文法から入っていく。言語仕様は、実際に動かしてみようというわけではなく、ある記述に対してどのような意味や動作をするのかを規定しているためである。この部分が初心者にとっては入りにくい部分ではある。また、公式のドキュメントは英語である点も敷居を高くしている。

では、言語仕様を知る必要はないのだろうか。 次のページ



INDEX
第1回:そもそも言語仕様って何だ?
膨大なドキュメント「言語仕様」とは
  言語仕様を知る意味
  Javaの言語仕様のキホン