仕様記述言語とプログラミング言語の違い
したがって仕様記述言語の目的には、システムを動かすものではなく、仕様の妥当性を検証する、確かめるものであり、実装工程で利用するコンピュータ言語のそれとは、異なる。さて、ここではコンピュータ言語を「仕様記述言語」と「プログラミング言語」と区分けして説明をしよう。
仕様記述言語とはシステム仕様の妥当性を検証するために利用する言語であり、プログラミング言語とは、実装時に利用するシステムに変換するために利用する言語とする。仕様記述言語は、あくまでも「妥当性の検証」が目的であることを強く意識するようにしてほしい。時として、実装と同等の内容を行ったり、実装と区別がつかなくなったりしてしまうからだ。
仕様記述言語あれこれ
代表的な形式的仕様記述言語は、以下のようなものがある。
形式的仕様記述言語
日本では、情報処理技術者試験などが普及したため、CASLが最初に広く知られるようになった。CASLは、仕様記述言語というよりもアセンブリ言語としての印象が強い。その一方で、実在するハードウェアに依存することなく、単純化されたコンピュータを対象として開発された言語であることから、検証時の仕様記述言語として利用することが可能となっている。
このCASLをイメージすると、仕様記述言語がどのようなものかわかりやすいであろう。あいまいさをなくすという意味においては、UMLも仕様記述言語のうちの1つということができる。
本連載では、株式会社NTTデータ フェローの山本修一郎氏にご登場いただき、仕様記述言語であるZ言語、VMD-SL、LOTUS、SpecCなどを毎週水曜日に取り上げ解説を行う。また仕様記述言語の比較も行い、ソフトウェア開発の現場での導入ができるよう配慮していく。日本最大のインテグレータにおいて最先端研究をされている山本氏であるからこそご執筆可能なソフトウェア開発の現場を考慮した解説記事に、ご期待いただきたい。 タイトルへ戻る