業務に必要なプログラミングを勉強している人にとって、「今さら聞けない」とつまずくポイントのひとつが、インタプリタとコンパイラの違いです。本記事では、インタプリタの概要からメリット・デメリット、インタプリタに分類される主な言語を詳細に解説します。インタプリタを理解できれば、プログラミングの勉強が一気に捗るかもしれません。
インタプリタとは?
インタプリタ(interpreter)とは、「通訳者」の意味を持つコンピュータ用語です。コンピュータでプログラムを処理する方法のひとつに数えられます。
コンピュータが直接理解できる言語は、0と1の羅列で表記される機械語のみですが、人間が機械語をマスターすることは至難の業であり、機械語で命令文を書くのは現実的ではありません。それに伴い、人間が理解しやすく扱いやすい言語を用いてコンピュータに命令できることを目的に、これまで多種多様なプログラミング言語が生み出されてきました。
処理方法としては、プログラミング言語で書かれた命令、いわゆるソースコードを1行ずつ読み込んで機械語へ変換し、1行ずつ処理を実行していきます。
コンパイラとの違い
コンパイラは、インタプリタのようにソースコードを1行ずつ機械語へ変換するのではなく、ソースコードを丸ごと一括で機械語へ変換するコンパイルを行った後に実行する、プログラムの処理方法です。インタプリタとコンパイラとでは、プログラミング言語から機械語へ変換するタイミングが異なるため、命令を処理・実行するタイミングも異なる点に注意しましょう。
インタプリタは、1行ずつ変換するのと同時に、その都度命令を処理・実行することから、「同時通訳者」と例えられることがあります。一方、コンパイラはすべての命令をまとめて一括で変換を済ませてから、一気に処理・実行するので、すべてを丸ごと翻訳する「翻訳家」のような存在です。
インタプリタを使う利点
インタプリタ型のプログラミング言語を用いる利点として、コンパイルを必要としないため、ソースコードを書いたら、すぐに実行して動作確認ができる点が挙げられます。
また、プログラムを1行ずつ実行するので、文法ミスがあった場合は、ミスした場所がわかるように、その行で処理がストップする点も魅力的です。
コンパイラの場合は、文法ミスを含むプログラムのコンパイルを進めようとするとエラーが発生してしまうため、文法ミスをすべて修正するまでコンパイルを完了できません。したがって、「とりあえずプログラムを実行してみて、文法ミスの場所を特定する」という手段は用いられず、文法ミスの修正に時間がかかります。
インタプリタは、プログラムに含まれるミスを修正するデバッグがコンパイラよりも行いやすく、プログラミングを勉強中の人におすすめです。
インタプリタを使う難点
インタプリタは、1行ずつ機械語へ変換しながら実行するので、変換済みのプログラムを一気に実行するコンパイラよりも、実行速度が遅くなります。
また、インタプリタの使用には準備が必要です。ソースコードを記述するプログラミング言語用のインタプリタを、あらかじめコンピュータにインストールしておかなければなりません。
代表的なインタプリタ言語
インタプリタに対応したプログラミング言語は、「インタプリタ言語」と呼ばれています。以下より、代表的なインタプリタ言語について解説します。
Python
「Python」は、オランダのプログラマーであるGuido van Rossum(グイド・ヴァンロッサム)氏によって生み出され、1991年に公表されたオブジェクト指向のプログラミング言語です。オブジェクト指向とは、データと処理手順をまとめたオブジェクトと呼ばれる小さなプログラムの構成部品を作って定義し、この構成部品を組み合わせてプログラムを作るという考え方を指します。
読みやすくてわかりやすい、シンプルなプログラムが書けることをモットーに設計され、高い拡張性と実用性を兼ね備えているため、世界中に多くの利用者が存在する言語です。可読性が高いPythonで書かれたソースコードは、他人が書いたコードでも内容を把握しやすいので、保守性にも優れています。
機械学習やデータ分析のライブラリが充実しており、人工知能(AI)との相性が抜群です。汎用性が高いことから、AIの開発以外にも、システム管理やWebアプリケーションの開発、科学技術計算、Webデータの収集・解析(スクレイピング)など、さまざまな用途に利用されています。
JavaScript
「JavaScript」は、1995年にアメリカのBrendan Eich(ブレンダン・アイク)氏が開発した、動きのあるWebサイトを制作できるプログラミング言語です。エンドユーザーが利用しているデバイスのブラウザ上で、サーバーから受信したデータを処理するために用いられます。サーバーを介さなくても、ブラウザ上でプログラムの実行が可能な点が大きな特徴です。
JavaScriptは、クライアント側で動作させることが一般的ですが、「Node.js」と呼ばれるライブラリを用いれば、サーバーサイドでも動作・開発ができるようになりました。初心者でも始めやすい言語として人気です。
Ruby
「Ruby」は、1995年にまつもとゆきひろ氏が「Perl」や「Smalltalk」を含む、5つの言語の要素をバランスよく取り入れて考案したプログラミング言語です。優れた可読性と保守性を有するオブジェクト指向の言語であるほか、オープンソースで自由にコピー・改変・再配布ができる無料のソフトウェアのため、人気が高まっています。
開発者が日本人なので、使用方法などで不明点が生じた際に、日本語で探し求めている情報を入手しやすい点や、学習に取り組みやすい点も魅力的です。
なお、Ruby専用のフレームワークとして有名な「Ruby on Rails」を用いると、WebアプリケーションやAPIの開発、スクレイピングなどをより簡単に行えます。したがって、Ruby on Railsも併せて習得することをおすすめします。
PHP
1995年に、カナダのRasmus Lerdorf(ラスマフ・ラードフ)氏が公開した「PHP」は、主にサーバーサイドで用いられるオープンソースに対応したプログラミング言語です。動きのあるWebページの制作、フォームからのデータ取得、クッキーの送受信などが実現します。
Webページの制作時には、PHPとHTMLの記述がひとつのファイルに混在していても構いません。つまり、静的なWebページの制作に用いられる、HTMLというマークアップ言語で書いたコンテンツ構造の中に、PHPで書いたプログラムを直接埋め込んで使用できます。初心者でも扱いやすいシンプルな構文を採用することもあり、HTMLを学習した経験があれば、似たような感覚で習得できる可能性が高いです。
レンタルサーバーにあらかじめインストールされていることが多く、インストール済みのサーバーを借りれば、環境構築で悩むことなく、すぐに使用可能です。
また、日本人の利用者も多く、Web上にはPHPでプログラミングを行うための情報が豊富に存在します。検索すれば、学習に必要な情報を簡単に入手できるので、手軽に学習を始められるはずです。
まとめ
インタプリタとは、コンパイルを必要とせず、1行ずつ機械語へ変換して実行する処理方法です。インタプリタはコンパイラよりも処理速度が遅くなりますが、エラーの場所を見つけやすいメリットがあります。インタプリタ言語として代表的なものは、PythonやJavaScript、Ruby、PHPなどが挙げられます。
- カテゴリ: