sf12. プログラムとマクロ言語

  • プログラム(program)とソフトウエア(software)
  • プログラム言語とプログラミング
  • 簡易プログラミング言語
  • マクロ機能とマクロ言語

かって、パソコンはソフトをプログラミングして使うものでした。一般の方を対象としたBASIC言語教室が駅前にある時代もありました。現在は一般のパソコン利用者がプログラミングをすることはまれです。一般の方がプログラムについて詳細を知る必要はありませんが、ソフトウエアがどのようにして作られかの概略の知識はもっていた方がよいと思います。プログラム(ソフトウエア)は人が意図として作ったものであることをご記憶ください。機械的な条件で必然的に生まれるものではありません。

プログラム(program)とソフトウエア(software)

「プログラム」はすべて「ソフトウエア」ですが、「ソフトウエア」はすべて「プログラム」ではありません。「ソフトウエア」を狭義に解した場合は「ソフトウエア」と「プログラム」はほぼ同じ意味で使われます。

プログラム(program)

コンピューターは処理手順命令を記述したプログラムにより、各種の演算や入出力処理を実行していきます。プログラムは、プログラミング言語で処理手順命令を記述し、これをCPUで処理できるように機械語に変換(コンパイル)して実行します。また、マクロ言語など中間言語と呼ばれるもので記述したプログラムを、インタプリター方式(逐次変換)で実行することもあります。

ソフトウエア(software)

コンピューターでの処理機能を実現するために、コンピューターが動作する手順を記述したものです。単にソフトということもあります。コンピューターの機械部分をハードウエアと呼ぶのに対して、柔軟に作り替えることができる部分をソフトウエアと呼びます。コンピューターはソフトウエアを入れ替えることにより実現できる処理機能を替えることができます。

広義では、画像・映像・音響などのデータをソフトと呼ぶこともあります。

プログラム言語とプログラミング

コンピュータの基礎表現は2進数です。したがって、コンピュータは2進数コードの処理命令(コマンド)を解釈して動作します。この2進数コードレベルのものを「機械語」といいます。機械語は0と1の羅列したコードですので、人が取り扱うには不向きです。

人が理解しやすいように英数字などの綴り表記で記述できるようにしたものが「高級言語」です。高級言語は「開発言語」とも呼ばれます。大型機で使うものからパソコンで使うものなどいろいろあります。一般の方でも下記の高級言語名は耳にしたことがあると思います。FORTRAN(フォートラン)、COBOL(コボル)、C言語(シー言語)、C++(シープラプラ)、Pascal(バスカル)、Java(ジャバ)

これらの高級言語(開発言語)で記述されたプログラムは人には理解しやすいのですが、直接コンピュータで実行することができません。変換ソフトウエアでコンピュータが理解できる「機械語」に変換してから実行します。この変換ソフトウエアのことを「コンパイラ」といいます。

一般の方が取り扱うアプリケーションソフトなどのプログラムファイルはこの変換された機械語レベルのファイルです。従って、通常の方法ではプログラムファイルの中を見ようとしても、意味不明の文字の羅列になるか、表示させることはできません。

ソースコード  source code

コンピューターが理解できる機械語に変換する前の、人間が理解できるプログラム言語(高級言語)で書かれた状態のプログラムのことをいいます。ソースコードがあれば、プログラムがどのようになっているかは一目瞭然です。記述内容を変更することが可能となります。通常、ソフトウエアは著作権など営業上観点からソースコードは公開されません。

オープンソース  open source

制作者がソースコードを公開し、他の開発者が自由にプログラムの改良や機能追加をできるようにすることをいいます。世界中の開発者によってバグを修正したり、機能改善などがおこなわれます。有名なものにLinux(リナックス)というパソコン用のOSがあります。

簡易プログラミング言語

通常、プログラムは「高級言語」でソースコードを記述し、これをコンピュータが理解できる機械語に変換(コンパイル)したものを実行します。これらの作業過程を省略し、簡単に実行できるものを「簡易プログラム」といい、これを記述する言語を「簡易プログラム言語」といいます。簡易プログラム言語の代表的なものが「スクリプト言語」です。

「スクリプト言語」はインタプリタという方式で逐次変換しながらプログラムを実行します。このため実行速度に劣り、多機能大型のものなど高度な処理を記述をすることはできませんが、小型で即応性の必要なものを作るのに適しています。また、ソースがテキストファイルのため、テキストエディターやワープロソフトで作ることができます。言語記述の方法も比較的簡単なものが多く、時間は掛かりますが一般の方でも習得することが可能な言語です。

スクリプト言語にはWebページ作成に使われるJavaScript,VBScriptなどがあります。また、同種の簡易言語に「マクロ言語」があります。

マクロ機能とマクロ言語

アプリケーションソフトで処理操作を自動化する機能を「マクロ機能」といいます。処理操作をする前に操作手順を記録させる機能をONにしてから、操作を開始します。処理操作が終了したら記録機能をOFFにします。記録機能をONにしてあった間の処理操作(使用キー操作や選択処理機能)手順が自動的に「マクロ言語(macro language)」でマクロファイルに記録されます。以後同じ処理をするときは、このマクロファイルを実行することで同じ処理ができるようになります。

マクロファイルはマクロ機能で自動的に作る以外に、使用者が「マクロ言語(macro language)」の文法に従って記述して作ることもできます。通常、マクロ機能のあるアプリケーションソフトではマクロ言語での開発環境が用意されています。同じマクロ言語を使うアプリケーションソフト間ではデータの連係を図ることができます。

「VBA(ブイビーエー)」はMicrosoft Officeのアプリケーションで共通に利用できるマクロ言語です。「SuperPlayRite(スーパープレイライト)」は一太郎などJust Suiteのアプリケーション共通で利用できるマクロ言語です。

「マクロウイルス(macro virus)」

マクロ言語で作成された悪意のあるマクロファイルを「マクロウイルス」といいます。ファイルを開いたり保存した際に、マクロが実行され他のファイルに感染したり、ファイルを使用不能にするなどの破壊活動を行います。当初はマイクロソフト社のOffice製品をターゲットにしたものだけでしたが、現在はマクロ機能のあるアプリケションソフトすべてが対象になっています。

アプリケションソフトのメーカーでは、マクロウイルス防止対策として更新プログラムを配布しています。自動更新機能のあるアプリケーションソフトを使う場合は、必ずONにしてください。ない場合は該当ソフトハウスのサポートWebサイトで更新プログラムを定期的に確認してください。

sf12. プログラムとマクロ言語