● C言語のメリット 高級言語には,C言語,FORTRAN,Pascal,COBOLなどがありますが,次のような理由により,現時点ではC言語が組み込み用途としてもっとも適した言語といえます. ◆構造化プログラミングに適している 構造化された構文を使うことで,プログラムをブロック単位に記述できます.これにより,可読性に優れたプログラムを構成できます.また,モジュール単位でプログラミングすることで,複数の開発者による大規模プログラムの開発が容易になります. ◆豊富なデータ型をサポートしている C言語には,バイト,ワード,ロングワードなど,CPUのアークテクチャを活かすデータ型が用意されています.また,組み込みシステムでは必須となる,絶対アドレスへのアクセスは,ポインタ型でサポートしています. ◆移植性 アセンブリ言語は,CPUの種類により異なった命令体系をもっています.このため,あるCPUを搭載した組み込みシステムの開発を,アセンブリ言語で行っていた開発者が,別の種類のCPUを搭載したシステムに移植しなければならなくなった場合,開発者はアセンブリ言語をはじめから学習する必要があります. これに対してC言語では,特別に拡張された機能を使わない限り,プログラムの記述方法は同じです.C言語を使えば,CPUアーキテクチャによる違い(アセンブラ命令やレジスタ)をすべてコンパイラが吸収してくれるため,異なったCPUへの移植も容易にできます. 具体例を見てみましょう.たとえば,リスト1(a)を見てください.これは変数に0x10を代入するプログラムです.これをARMのアセンブリ言語で記述すると,リスト1(b)のようになります.同様に,SHの場合はリスト1(c)になります.このように,マイコンごとにアセンブリ言語はまったくといってよいほど異なります.
◆プログラミング効率 ここで,リスト1(a)とリスト1(b)を見比べてください.C言語ではほんの4〜5ステップのプログラムが,アセンブリ言語では数倍になります.つまり単純に考えると,C言語を使えばアセンブリ言語と比較して,数十分の一の時間でプログラミングが可能,つまりその時間で製品開発ができる計算になります. ◆学習,習得のしやすさ 基本的に,C言語のキーワードや構文は,英語の略語に近い表記になっています.また,関数名や変数名なども英数字で記述できます.このため,プログラムの論理を考えるうえで,わかりやすい言語体系となっています.また,書籍やインターネットなど,世の中にはC言語に関する情報があふれています.初心者でも独学でCプログラミングを容易に習得できます. ◆ライブラリ C言語はFORTRANやPascalと比較して,低級な言語だともいわれます.標準のC言語には,言語仕様にデータの入出力機能がないためです.しかし,C言語には豊富なライブラリが用意されています.ライブラリを活用すれば,効率よくプログラミングができます. ◆その他 C言語以外にも優れた言語は存在します.しかし,それが入手困難であったり,特定の開発環境を要求したり,あまりに抽象的な言語体系をもっていると,使いこなすことが不便です.また,ツールが高価な場合には,コストを下げたい組み込み開発には向きません.一般的に,C言語の開発環境は,各コンパイラメーカーから妥当な価格で販売され,さまざまなプラットホーム上で動作します.このように,現実的問題の観点からも,C言語は組み込み開発に有効な言語だといえます. ● C言語のデメリット 以上,C言語のメリットを述べましたが,デメリットもあります. ◆コードサイズ Cコンパイラから出力されたコードは,優秀なアセンブラプログラマがコーディングしたプログラムと比較してサイズが大きい. ◆スピード Cコンパイラから出力されたコードは,優秀なアセンブラプログラマがコーディングしたプログラムと比較してスピードが遅い. しかし,コンパイラには最適化という技術があります.この最適化により,コンパイラはコードサイズが小さく,かつスピードが速いコードを生成します.また,RISC CPUの場合,CPU自体がC言語で開発することを考慮して設計されています.このため,アセンブリ言語であれこれ悩むより,最初からC言語を使ったほうが,効率よくプログラミングできます.
3月号特集トップページへ戻る Copyright 2002 山本繁寿/有末一寿 |