この記事では、特徴も交え、プログラミング言語の分類方法を解説します。
プログラミング言語はどのように分類されるの?
主要なプログラミング言語を分類表で把握したい
近年IT産業の需要増加により、プログラミングを学びたいと考える方も増えています。しかしプログラミング言語の種類は多いため、分類を知って言語選びに役立てたいという方も多いですよね。
プログラミング言語の分類を把握しておかないと、自分に合った言語を選べないことも考えられます。
そこでこの記事では、プログラミング言語のおもな分類についてご紹介します。主要なプログラミング言語の分類表も作成しましたので、ぜひご覧ください。
- プログラミング言語は記述形式/変換形式/利用分野で分類できる
- Web開発/AI開発など利用分野ごとに使用する言語が異なる
- プログラミング言語選びに悩んだら人気言語から選ぶと良い
プログラミング言語の分類方法3つ
プログラミング言語の分類方法はさまざまですが、この記事では下記の3つを説明します。
- 記述形式
- 変換形式
- 利用分野
1つずつ、順番に解説していきます。
記述形式
プログラミング言語は、「手続き型」「オブジェクト指向」の2種類に分類できます。これらはプログラムの構成や考え方が異なるため、記述形式も大きく変わってくるのです。
各記述形式の詳細については後ほど解説しますが、学習面では手続き型、開発面ではオブジェクト指向が優れています。幅広いプログラミング言語を習得したいという方は、どちらの記述形式も学んでおきましょう。
変換形式
プログラミング言語で記述したプログラムは、人間が理解しやすい英単語などを用いて表現されています。プログラムをコンピュータに理解させるためには、「機械語」(0と1で表されるデータ)への変換が必要です。
この変換をどのように行うかによって、「コンパイラ型」「インタプリタ型」の2種類に分類されます。各変換形式の詳細は後ほど解説しますが、性能面ではコンパイラ型、学習面ではインタプリタ型が優れています。
利用分野
プログラミング言語によってプログラムの処理性能や動作環境が異なるため、利用分野も変わってきます。どの分野に利用される言語なのかによっても、分類が可能です。
たとえば電化製品に組み込まれるプログラムを開発する場合は、パソコンと違い豊富なメモリ(データ領域)を利用できません。そのため、軽量なプログラムを開発できる言語が求められます。
特定分野に特化した言語もあれば、さまざまな分野に使える汎用的な言語もあり、利用分野はさまざまです。多岐にわたる利用分野の中でも、代表的なものを後ほどご紹介します。
主要なプログラミング言語の分類表
以降の章で登場する主要言語の分類を一覧表にしました。プログラミング言語選びの参考にしてください。
言語名 | 記述形式 | 変換形式 | 主な利用分野 |
C言語 | 手続き | コンパイラ | 組み込み |
Go言語 | 手続き | コンパイラ | Web |
COBOL | 手続き | コンパイラ | 業務システム |
Swift | オブジェクト | コンパイラ | モバイル |
Kotlin | オブジェクト | コンパイラ | モバイル |
C++ | オブジェクト | コンパイラ | 業務システム/組み込み |
C# | オブジェクト | コンパイラ | 業務システム |
Java | オブジェクト | コンパイラ | 業務システム/モバイル |
PHP | オブジェクト | インタプリタ | Web |
Ruby | オブジェクト | インタプリタ | Web |
JavaScript | オブジェクト | インタプリタ | Web |
Python | オブジェクト | インタプリタ | 人工知能/Web |
R言語 | オブジェクト | インタプリタ | 人工知能 |
プログラミング言語の分類①:おもな記述形式は2種類
プログラミング言語を記述形式で分類すると、下記の2種類となります。
- 手続き型言語
- オブジェクト指向型言語
それぞれの詳細について、解説していきます。
手続き型言語
- 主なプログラミング言語:C言語、Go言語、COBOL
「手続き型言語」は、プログラムを1行ずつの「手続き」という単位で記述するプログラミング言語です。コンピュータへの命令(手続き)を、処理させる順番どおりに1行ずつ記述します。
料理に使う「レシピ」のように、手続き型言語のプログラムは上から読めば必要な手続きが分かります。シンプルな記述形式のため、入門者でも比較的理解しやすいのがメリットです。
その一方で、プログラムの規模が大きくなると複雑になりやすく、開発時に管理しづらいデメリットも。そのため、開発面でのメリットが大きいオブジェクト指向型言語を採用するケースも増えています。
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
オブジェクト指向型言語
- 主なプログラミング言語:Swift、Kotlin、C++、C#、Java、PHP、Ruby、JavaScript、Python、R言語
「オブジェクト指向型言語」の場合は、「オブジェクト」という単位でプログラムを記述します。プログラムを映画に例えると、オブジェクトは「キャスト」のようなものです。
まずは、オブジェクトのもととなる「クラス」と呼ばれる設計図の作成が必要です。クラスには、オブジェクトの特徴(データ)やアクション(メソッド)を記述します。
そして作成したクラスをもとにオブジェクトを生成し、それらのアクションを「脚本」のように記述していく流れです。
手続き型言語に比べると概念が複雑で、学習コストはかかりやすいといえます。その一方で、類似したオブジェクトを1つのクラスで共通化できるなど、プログラムの開発効率を高めやすいのがメリットです。
オブジェクト指向については次の記事を読むと、より詳しく理解できます。
プログラミング言語の分類②:おもな変換形式は2種類
プログラミング言語を変換形式で分類すると、下記の2種類となります。
- コンパイラ型言語
- インタプリタ型言語
詳細について順番に解説していきます。なお、コンパイラ型やインタプリタ型の違いについては次の記事でも解説していますので、あわせてご覧ください。
コンパイラ型言語
- 主なプログラミング言語:C言語、Go言語、COBOL、Swift、Kotlin、C++、C#、Java
「コンパイラ型言語」は、プログラム全体をあらかじめ機械語に変換してから実行するプログラミング言語です。「コンパイラ」は変換処理を行うプログラムで、言語によってそれぞれ異なるものを使います。
コンパイラ型は、例えるなら「翻訳家」のようなものです。事前に変換(翻訳)をすべて完了させておくことで実行時の変換が不要となり、プログラムを比較的高速で処理できます。
ただしプログラムの書き方に問題があると変換処理でエラーが発生し、プログラムを実行できません。プログラムを変更するたびに変換処理が必要となり、すぐに動作を確認できないため習得難易度は高い傾向があります。
インタプリタ型言語
- 主なプログラミング言語:PHP、Python、Ruby、JavaScript、R言語
「インタプリタ型言語」は、プログラムの実行時に1行ずつ機械語に変換するプログラミング言語です。「インタプリタ」は変換処理を行うプログラムを指し、コンパイラと同じく言語ごとに異なるものを使います。
インタプリタ型は、例えるなら「同時通訳者」のようなものです。プログラムを1行ずつ変換(通訳)しながら実行するため、コンパイラ型と違い事前に変換処理を行わずとも実行できます。
効率的にプログラムの動作を確認できる一方で、実行のたびに変換処理が行われるため、速度面ではコンパイラ型に及びません。
なお、混同されやすい言葉に「スクリプト言語」がありますが、これは「記述や実行がしやすい言語」を指す場合が多く、厳密には異なります。こちらの記事ではスクリプト言語についてより詳しく解説していますので、ぜひお読みください。
プログラミング言語の分類③:おもな利用分野は5種類
プログラミング言語の利用分野はさまざまですが、代表的なものは下記の5種類です。
- Web開発
- モバイルアプリ(スマホアプリ)開発
- 人工知能(AI)開発
- 業務システム開発
- 組み込みシステム開発
それぞれ、順番に解説していきます。
Web開発
主なプログラミング言語
・JavaScript(フロントエンド開発)
・PHP、Ruby、Java、Python、Go言語(バックエンド開発)
「Web開発」は、Webブラウザを通して利用できるサービスを開発する分野です。Web開発は大きく分けると「フロントエンド開発」「バックエンド開発」に分けられ、それぞれ異なる言語が使われます。
「フロントエンド」はWebサービスのユーザーから見える部分を指し、Webブラウザ上の表示や動作を制御するプログラムが開発対象です。「バックエンド」はWebサービスのデータを管理するWebサーバーを指し、必要なデータの取得や加工を行うプログラムを開発します。
Webサービスはユーザーにインストールしてもらう必要がないぶん、プログラムの細かい変更が比較的容易です。そのため、変換処理したファイルの管理が不要でプログラム更新が迅速に行えるインタプリタ型言語がよく使われます。
Web開発の基礎知識やおすすめ言語について知りたい方は、次の記事を読みましょう。
モバイルアプリ(スマホアプリ)開発
主なプログラミング言語
・Swift(iOSアプリの場合)
・Kotlin、Java(Androidアプリの場合)
「モバイルアプリ(スマホアプリ)開発」は、スマートフォンなどのモバイル機器にインストールして使うアプリを開発する分野です。モバイルアプリの主な対応OSは「iOS」「Android」の2種類で、それぞれ異なるプログラミング言語が必要となります。
ただし、iOS・Androidのどちらでも動作する「クロスプラットフォーム」なモバイルアプリも、専用の環境を使えば開発できます。
モバイルアプリはユーザーのインストールが必要なので、プログラムの変更は限られたタイミングでまとめて行うのが一般的です。そのため、アップデートのしやすさよりも処理速度が重視されることが多く、高速処理が可能なコンパイラ型言語がよく使われます。
モバイルアプリ開発の基礎知識をより詳しく知りたい方は、こちらの記事をご覧ください。
人工知能(AI)開発
- 主なプログラミング言語:Python、R言語
「人工知能(AI)開発」は、人間の脳が持つ働きをコンピュータにより再現する「人工知能」を開発する分野です。人工知能開発には、「Python」と呼ばれるプログラミング言語が特によく使われます。
Pythonは文法がシンプルで使いやすく、便利なライブラリ(再利用可能な作成済みプログラム)も豊富なので、人工知能開発に最適です。ただし、人工知能開発に欠かせないデータ分析については、「R言語」が使われるケースも少なくありません。
また多くはないものの、上記以外のプログラミング言語が人工知能開発に使われることもあります。次の記事では人工知能に使われる言語を8つ紹介していますので、ぜひお読みください。
業務システム開発
主なプログラミング言語
・Java、C++、C言語(Windowsの場合)
・Swift(macOSの場合)
「業務システム開発」は、企業向けのパソコン業務で使えるシステムを開発する分野です。業務システムの対応OSはWindowsが最もポピュラーですが、なかにはmacOSの業務システムを必要とする企業もあります。
企業の業務効率化などを目的に開発するケースが多いため、業務システム開発は処理速度が重視されやすい分野です。そのため、モバイルアプリ開発と同様に高速処理が可能なコンパイラ型言語がよく使われます。
業務システム開発は企業のIT環境に合わせて最適な言語を利用するため、開発言語は多岐にわたります。こちらの記事では業務システム開発に使われるプログラミング言語を7つ紹介していますので、ぜひご一読ください。
組み込みシステム開発
- 主なプログラミング言語:C言語、C++、Java
「組み込みシステム開発」は、電子機器に組み込まれるプログラムを開発する分野です。組み込みシステム開発では、限られたリソース(IT資源)の中で適切に動作するプログラムが求められます。
そのため、軽量なプログラムが作りやすい「C言語」が特にポピュラーです。また、電子機器の制御には高速な処理が求められるので、大抵の場合はコンパイラ型言語が使われます。
なお、最近注目されている「IoT(モノのインターネット)」の開発も、この分野に含まれます。IoTの基礎知識や活用事例を知りたい方には、次の記事がおすすめです。
プログラミング言語選びに迷ったら…
この記事を読んでいる方の多くは「プログラミングを学びたい」と思っているのではないでしょうか。しかしプログラミング言語は種類が多く、「簡単には選べない」という方もいますよね。
プログラミング言語を選びたい方には、人気のプログラミング言語を紹介しているこちらの記事をおすすめします。
また、無料で使える弊社の「学習プラン診断」も言語選びに役立ちます。3つの質問に回答するだけで、おすすめのプログラミング言語や学習プランを教えてくれるので、こちらもお試しください。
まとめ
今回はプログラミング言語の分類について、下記の6点をご紹介しました。
- プログラミング言語の分類方法3つ
- 主要なプログラミング言語の分類表
- 記述形式でのプログラミング言語分類
- 変換形式でのプログラミング言語分類
- 利用分野でのプログラミング言語分類
- プログラミング言語選びに迷ったら…
分類を把握することで各プログラミング言語への理解が深まり、言語選びがしやすくなります。今回の内容を参考にして、自分に合ったプログラミング言語を選んで習得してみてください。
この記事のおさらい
「記述形式」「変換形式」「利用分野」の3つがおもな分類です。それぞれの特徴を把握して、自分に合ったプログラミング言語を選びましょう。
「コンパイラ型」「インタプリタ型」に分類されます。コンパイラ型は処理速度が高く、インタプリタ型は学習しやすいといえます。