プログラミング言語の意味|プログラミング言語とは一体何なのか?初心者向けに徹底解説

皆さんはプログラミング言語についてどれくらい理解していますか?プログラミング言語=ソフトウェアを作るための言語と何となく理解している方は、ここで認識を改めておきましょう!

プログラミング言語はどんな言語?プログラミング言語を理解しよう

コンピューターは人間の言語を理解できない

まずは人間とコンピューターの言語について説明します。私たちは言葉を交わして意思疎通を図っており、動物も仕草や鳴き声などで同じ種族同士に意思を交わします。

コンピューターは人間が作り上げた人工物ですが、人間の言語をそのまま理解することができませんコンピューターにはコンピューター専用の言語が必要なのです。

そして人間もコンピューターの言語を理解することはできません。では人間がコンピューターと通ずるためにはどうすれば良いのか。それを解決するのがプログラミング言語なのです。

プログラミング言語はコンピューターのための言語

プログラミング言語はコンピューターのために開発された言語です。人間のように細かい表現はできませんが、一定の処理の流れを効率よく記述することができます。

またプログラミング言語と人間の言語との決定的な違いは、プログラミング言語は間違いを許さないという点です。人間同士の会話では、少しの文法誤りや単語の誤用などは脳内で自動的にある程度意味が通じ合うよう処理、認識されますが、プログラミング言語はそれが許されていません。

そのためプログラミング言語は、たったひとつの小さなミスでもエラーを発生させます。これはコンピューターが人間の脳と同じ処理ができないからなのです。

プログラミング言語は機械に命令を与える

プログラミング言語の主な目的は、人間がコンピューターに命令を与えることです。あまりパッとしないかもしれませんが、プログラムを書くということは「命令を書く」という動作に等しいのです。

コンピューターは人間が記述したプログラムに沿って処理を実行し、条件分岐では与えられたデータを、プログラムに当てはめて処理します。

まとめ
・プログラミング言語は人間が機械に命令を与えるための言語
・プログラミング言語は誤りが許されない

プログラム言語の違い

人間の言語にも国や地域での違いがあるように、当然プログラミング言語にも違いや種類があります。それぞれの特徴や目的を見ていきましょう。まずは以下の図をご覧ください。さらに細分化もできますが、ひとまずプログラミング言語の大分類として頭の片隅に入れておいてください。

汎用プログラミング言語

まずプログラミング言語という大分類から、汎用プログラミング言語が派生します。汎用プログラミング言語とは、特定の使用用途に依存しない言語のことを指します。

低水準言語(低級言語)

汎用プログラミング言語の中には、低水準言語と高水準言語の2つがあります。ここでいう低水準とは、レベルが低いというわけではなく、コンピューターが理解できる機械語に近いもののことを指します。

低水準言語は機械語(後述)に近い言語であるため、人間が理解できる言語からコンピューターが理解できる言語への翻訳処理が少ないのが特徴です。

機械語(マシン語)

機械語、またの名をマシン語と呼ばれる言語は、0と1の電気信号のみで作られており、人間には理解することはできません。機械語は完全にコンピューターのための言語なのです。

アセンブリ言語

先述した機械語は人間には理解不能です。そのため人間が機械に命令を与えるために作られたのが、このアセンブリ言語です。

アセンブリ言語は「アセンブラ」という翻訳プログラムを介して、人間が最低限理解できる状態から機械語に翻訳し、それを命令としてコンピューターに実行させているのです。機械語よりは分かりやすくなったとはいえ、一目見て即座に理解するのは難しい言語です。

高水準言語(高級言語)

低水準言語に対し、高水準言語はより人間らしい書き方ができる言語といえます。高水準言語の場合は機械語への翻訳や解釈という動作が、顕著に必要になります。

コンパイラ言語

高水準言語から機械語などの元より低い水準の言語に変換される言語のことを指します。人間が理解できる言語から機械が理解できる言語に変換するために、しっかり翻訳をしなければなりません。

C、C++、Objective-C、Java、C#など
インタプリタ言語

処理を一行ずつ解釈しながら実行する言語のことを指します。

Ruby、Python、JavaScript、PHPなど
手続き型言語

コンピューターが実行する命令を順に沿って記述した言語を指します。

C言語、COBOL、BASIC、Pascaなど
非手続き型言語

手続き型言語に分類されない言語を指します。例として関数型言語や論理型言語があります。

Java、SQLなど

スクリプト言語

スクリプト言語はプログラミング言語の中でも簡易的で、なおかつ複雑な処理を行うことができる言語です。

JavaScript、Python、Ruby、PHPなど

第4世代言語(4GL)

第4世代言語とは新しく開発されたプログラミング言語で、エンドユーザー(商品を使う人・消費者)自らが開発を行えるようにした言語です。

開発は対話形式で行え、事務処理のデータベース・帳票作成・操作が言語に組み込まれているのが特徴です。

エンドユーザー言語

エンドユーザー言語とは先述した第4世代言語と同じく、エンドユーザーが特定の機能のみを操作できるように設計されたプログラミング言語のことです。

特殊問題向き言語

使用用途が限られていない汎用プログラミング言語に対し、特定の問題にのみ対応できるよう作られたのが特殊問題向き言語です。

注意
新しく開発されている言語は常に前世代の言語の問題点を解決し、良い部分のみを摘まみとって作られています。

そのため今回紹介した具体的な言語の例は完全に定義されているものではなく、大まかに分類がなされたものになります。

HTMLとCSSはプログラミング言語ではない?

ここで理解しておいてほしいのが、HTMLやCSSはプログラミング言語ではないということです。初心者向けのプログラミング言語として、様々なサイトでHTMLやCSSが勧められていますが、厳密にはこの2つはプログラミング言語とは異なります。

HTMLはマークアップ言語

HTMLは正式にはHyperText Markup Language(ハイパーテキスト マークアップ ランゲージ)と呼ばれる、マークアップ言語です。マークアップ言語は組版指定(原稿やレイアウトに沿って文字や図を配置する作業)に使用される言語で、視覚的な表現ができる言語なのです。

CSSはスタイルシート

対してCSSはマークアップ言語ではありません。正式にはCascading Style Sheets(カスケーディング スタイル シート)の頭文字をとった略称で、HTMLやXMLなどの「要素」の修飾方法を決定する仕様のことを指します。

初心者にはなぜHTML/CSSがおすすめなのか?

初心者にはHTML/CSSが勧められることが多いと紹介しました。これは機械に命令を与えるという動作が、視覚的に捉えることができるからなのです。

HTMLではコードエディターなどでコードを書き、それをChromeなどのブラウザで実行することで実際の変化を確認することができます。

しかも、Webページはとても身近なものなので認識や理解のしやすさも格別。HTMLやCSSがしっかり身に着けば、HTML内に記述するJavaScriptの学習もスタートできます。

こうした理由からHTML/CSSが初心者にお勧めされるのです。

まとめ

今回は「プログラミング言語の意味」についてご紹介しました。プログラミング言語は身近ではないため、意識や理解がしづらい部分ですが、これからプログラミング言語を学びたい、IT業界に進みたいという方は必須の知識です。

ぜひこの記事を参考にして、プログラミング言語に対する理解を深めてみてください。またプログラミング言語に対する理解が深まることで、次に何を学ぶかや、自分がやりたいことを実現するには何を学ぶべきなのかも見えてくるはず!挫折せずにコツコツ頑張りましょう!

参考文献:
Cascading Style Sheets – Wikipedia
マークアップ言語 – Wikipedia
スクリプト言語とは?
低水準言語と高水準言語とは?違いとメリットを分かりやすく解説!
アセンブリの意味とは?エンジニアが知っておくべき基礎知識
低水準言語 – Wikipedia
プログラミング言語 – Wikipedia
汎用プログラミング言語 – Wikipedia

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?