インタープリター言語とコンパイラ言語

40数年程以前の話です。パソコン使い達の多くはBASICでプログラムを書いていました。
パソコンを使うというのは、BASICプログラマになるということでした。

BASICは「基本的」という意味ですから、プログラミング言語でも基本だと思っていました。実際、プログラミングのイロハを学ぶには適切だとも思います。

つまり、プログラムでは「変数」を使って計算し、結果を得ることができるということ。変数には数値や文字があり、変数でも種類があること。
配列」とかいう変数の塊があること。処理を制御するために、IF文GOTO文などがあって、条件によって処理を分岐したり選択したりできることなど。

少々、貧弱だということが後で分かりましたが、サブルーチン関数が使えるので、プログラムの部品化の真似事くらいはできたということ。

今思い起こすと、BASICというインタープリター言語からプログラミングの世界に入ったのは結果的に良い勉強になったと思います。いきなりコンパイラ言語でプログラミングを学ぶより敷居は低かったことが分かります。

また別の記事でも紹介しようと思いますが、最近はプログラミングを学ぶに当たってWeb系のスクリプト言語から入るということもあるので、コンパイラ言語よりはインタープリター言語にイメージが近いかもしれません。その違いなども整理して記事にしていこうと思います。

さて、ここではインタープリター言語のメリット・デメリットを少し上げておくと、

①プログラムを書いたらすぐ実行できる。エラーがあれば止まるのですぐに分かる。
②処理の内容を確認しながらプログラミングできる。途中の結果が目に見えやすい。

処理速度が遅い。性能を気にするところは機械語プログラムを呼び出すようなテクニックを必要とする。
②構造化プログラミングのイメージは低い。部品化を意識するより、順に処理を書き並べるプログラムになりやすい。
③GOTO文に頼りがちのプログラムになる。

少し大きく複雑なプログラムになると、全体像が見えにくくなったり、性能を要求される処理で実行速度が遅すぎて結果が出るまで何分とか、何時間も掛かるなどということがあったり、当時はBASICの限界を強く感じていました。
それで、コンパイラ言語であるPascal(パスカル)とかC言語がパソコンで使えるようになると、そちらに気持ちが移っていった経験があります。

Turbo Pascal(ターボ・パスカル)というパスカル言語のコンパイラがあって、初めて使った時に感動しました。「コンパイラだぁ。実行ファイルが小さくて速い。」と思ったものです。C言語で仕事していた時など「構造化プログラミングさえ理解したら何でもできる!」といい気になっていました。今は少々恥ずかしい思い出ですが(^_^;

インタープリター言語とコンパイラ言語の違いがどんなものか、雰囲気が伝わったでしょうか。参考になる記事を紹介しておきます。

最近の「インタプリタ」言語のインタプリタ事情 – コンパイラ言語・スクリプト言語との違い、JITコンパイラ、REPL、コンパイラ言語のスクリプト的実行サポートを徹底解説 」  https://eh-career.com/engineerhub/entry/2022/05/19/093000

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次