2014.11.26

第211回 (B) 新しい言語をつくる 【ものづくりの視点】

プロダクト事業本部 連結会計システム開発部 マネージャー 遠藤 宣嗣

世界には、6,700ほどの言語があると言われています。この内、100近くの言語を話すことができれば、世界の90%の人と話すことができるそうです。ちなみに、日本語は世界で第9番目に話す人の数が多い言語です。パラオのアンガウル州では、パラオ語、英語に続いて日本語が公用語として定められているそうです。

さて、ソフトウェアの開発にはプログラミング言語を使います。ある機能を開発する場合、その機能について取り決めた仕様を、コンピュータと人が理解できるプログラミング言語を使って記述していきます。プログラミング言語にも自然言語のように文法があります。コンピュータはそれに従ってその言語を解釈し、命令を実行します。

プログラミング言語は非常にたくさんあります。C、C++、Java、C#、Visual Basic、JavaScript、Ruby、Python、Perl、PHP、等々、挙げていくときりがありません。弊社の製品も(ここに挙げたものが全てではありませんが)これらを使って開発を行っています。

プログラミング言語は、自然言語と違ってその気になれば自分の好きなように作り出すことができます。実用性のあるレベルまで作り上げるのは簡単ではありませんが、そこまで作らなくてもコンピュータがプログラムをどのように実行するかを知ることができます。
このメルマガ用に考えたDIVA言語を例に説明します。
DIVA言語は非常に単純な構造です。”OPEN”、”VALUE”、”STRETCH”(*1)の3つの単語と”+”、”改行”しか使いません。”OPEN + VALUE + STRETCH”と書いたソースコードを実行すれば、”DIVA”という処理結果を返すだけで、全く実用性はありません。また、”OPEN”、”VALUE”、”STRETCH”に特に意味はありません。

おおまかに、コンピュータは文字の羅列であるソースコードから、
①字句解析→②構文解析→③意味解析→④最適化→⑤コード生成 の過程を経て実行されます。
DIVA言語はとても単純な言語なので、①と②の処理が主要な部分となります。
それぞれを説明すると、

①「字句解析」では、単なる文字の羅列である
“OPEN+VALUE +STRETCH”を、”OPEN”、”+”、”VALUE”、”+”、”STRETCH”、”改行”の各要素に分けます。

②「構文解析」では、字句解析の結果がDIVA言語の文法に沿っているかをチェックします。例えば、”OPEN * VALUE * STRETCH”や、”OPE + VAL + STR”はエラーとします。

③「意味解析」はプログラムが意味的に正しいかをチェックしますが今回は省いています。
あとは、①と②の結果をもとに処理を実行し、”DIVA”という処理結果を返します。もちろん、実用的なプログラミング言語は、それぞれの処理がもっと複雑で、多くの機能を持ちますが、コンピュータがプログラムを処理していく基本的な流れは同じです。


自然言語において、文法的に正しければそれで分かりやすい文章ができるというわけではありません。同じように、プログラミング言語においても、文法的に正しければそれで使いやすいソフトウェアが作れるというわけではありません。これから開発しようとしている機能をお客様がどのように使うのか、その機能はソフトウェア全体の中でどのような位置づけとなるのか、そして、将来どのように成長させていくのか、こうした点を十分に考えずに開発すると、機能が多いだけで使い勝手の悪いソフトウェアとなってしまいます。私たちは、決してこうした点で妥協することなく、良いソフトウェアをお届けできるよう日々努力していきます。

*1 “OPEN”、”VALUE”、”STRETCH”については、こちらをご参照お願いします。

MAIL MAGAZINE

メールマガジン

NEWS

ニュース

SEMINAR / EVENT

セミナー / イベント

セミナー/イベント一覧を見る

お問い合わせ