MENU

YouTube

「YouTube」始めました!
、だからさらに・・・分かる!

プロフィール

よし

「IT」をこよなく愛する大手メーカーの現役エンジニア
IT技術を独自の視点で、初心者の方にもわかりやすく解説します!


\Follow me/
YouTube始めました!

プログラミングとは? 〜これからプログラミングを始める方へ〜

プログラミングとは?

どうも、みなさんこんにちは、よしです。

この記事では、「プログラミングとは?」について解説します。

IT製品は「プログラム」に従って動作しており、プログラムを作成する行為を「プログラミング」と呼びます。このプログラミングの全体像を初心者の方にも理解いただけるように簡単に、分かりやすく説明します。

ほな、いきましょう!

なぜプログラミングが必要なのか?

人間は暮らしをより豊かにするために、コンピューターやスマートフォンなどのIT製品を開発してきました。

地図アプリと音楽アプリ

このIT製品に対する人間の要求は、例えば「目的地までの行き方を調べたい」、「音楽を聴きたい」など日々多様化しています。

そのため、人間の沢山の要求を予測し、その機能を予め製品に備えておくことは非常に難しいでしょう。

プログラムの追加・更新

そこで、スマートフォンなどの現代のIT製品は指示書に従って動作する作りになっており、指示書を更新、追加してもらうことで、刻々と変化する人間の要求に応え続けています。

この指示書のことを「プログラム」と呼び、プログラムを作成することを「プログラミング」と呼びます。

プログラミングによって人々の要求を満たすプログラムを随時作成し、それをスマートフォンへインストールすることで、暮らしを支え続けています。

プログラミングとは?

プログラムの意味

一般的に「プログラム」とは、「催物などの予定、順序、配役などを書いた実行計画書」を意味します。

ITの分野におけるプログラムとは、「コンピューターなどのIT製品をどのように動かすのかを記載した実行計画書」です。

つまり、コンピューターに備わっているハードウェアのうち、どれを、どの順番で、どのようなルールで動かすのかを記載した指示書です。この指示書を作成する行為を「プログラミング」と呼びます。

プログラムはCPUへの指示書

CPUはコンピューターの装置を制御

コンピューターには様々なハードウェアが備わっており、それら装置を制御しているのはCPUであることを説明しました。

CPUとは? CPUとは? 〜なぜコンピューターの頭脳と言われる?〜 プログラムはCPUへの指示書

つまり、コンピューターへの指示書とは、厳密に言えばCPUへの指示書になります。CPUはコンピューターの全ての装置を制御する装置であり、その制御装置に対して制御の仕方を教える指示書がプログラムなのです。

従って、冒頭に示した地図アプリや音楽アプリなどのように、プログラミングをすることでコンピューターを自由自在に操作するソフトウェアを作成することができます。

プログラムとソフトウェアの違い

ここで、「プログラム」と「ソフトウェア」の違いについて少し触れておきます。

プログラムとソフトウェアの違い

「プログラム」と「ソフトウェア」は同じ意味を表し、プログラムをソフトウェア、ソフトウェアをプログラムと言い換えることができます。

  • プログラミングにより生成したモノに焦点を当てる場合は「プログラム」という言葉を使い、
  • ハードウェアと対比したモノに焦点を当てる場合は「ソフトウェア」という言葉を使います
。


例えば、アプリケーションソフトウェア、通称アプリはプログラミングにより作成するプログラムの一つです。

人間がプログラミングによりアプリ(プログラム)を開発し、個々人が自分のニーズに合ったアプリをスマートフォンへインストールして使用しています。

アプリケーションとは? アプリケーションとは? 〜アプリはなぜアプリと呼ばれるのか?〜

プログラムミングの工程と用語

プログラムはいくつかの工程を経て作成されます。その工程と生成されるモノの用語について解説します。

コーディング

コーディングとは?

初めに、プログラムを作成するエンジニアを「プログラマー」と呼びます。

プログラマーは「プログラミング言語」と呼ぶ人間が理解できる言語を使い、「こういう条件になったら、あれを動かしなさい」とコンピューターへ、厳密にはCPUへの命令を記述します。

このプログラミング言語を使ってコンピューターへの命令を記述したモノを「ソースコード」と呼びます。単に「ソース」や「コード」と呼ぶ場合もあります。

つまり、「CPUへの命令を作成する」とは「コードを記述する」ことに他ならないため、その行為を「コーディング」と呼びます。

コンパイル

コンパイルとは?

さて、このコーディングによって作成したソースコードは人間が理解できる言語で記述されており、このままではCPUは理解することができません。

CPUは「0」と「1」のみ理解できるように作られているため、ソースコードを「0」と「1」の組み合わせに変換する必要があります。

このように、人間が理解できる言語で書かれたソースコードを、CPUが理解できる「0」と「1」へ変換することを「コンパイル」と呼び、この変換を担当するソフトウェアを「コンパイラー」と呼びます。

また、コンパイルによって生成されたモノを「オブジェクト」と呼びます。「オブジェクトコード」や「オブジェクトファイル」と呼ぶ場合もあります。

注釈

    「コンパイル」方式の対比として「インタープリター」方式があります。

    CPUが理解できる「0」と「1」の組み合わせに直接変換するのではなく、インタープリターがその解釈、翻訳(interpret)を肩代わりし、CPUへ間接的に指示を出します。

    コンパイル方式ではIntel系CPUやARM系CPUなど使用するCPUに合わせた命令へ変換する必要があるため、CPUが変わればソースコードを再度コンパイルする必要があります。

    一方、インタプリターはそれを肩代わりしてくれるため、CPUの種類に依存せずソースコードを実行できる利点があります。

    但し、インタープリターが介在する分、コンパイル方式より実行速度が遅くなるという欠点もあります。

リンク

リンクとは?

最後に、オブジェクトを複数組み合わせて最終成果物であるプログラムを作成します。複数のオブジェクトを結合することを「リンク」と呼び、この結合を担当するソフトウェアを「リンカー」と呼びます。

また、リンクによって生成されたプログラム、つまりCPUへの指示書を「実行ファイル」と呼びます。

プログラムは複数のプログラマーで分担して開発できる仕組みになっています。そのため、個々に作成したオブジェクトファイルを結合して一つの実行ファイルを作成する必要があるわけです。

ビルド

ビルドとは?

また、コンパイルとリンクを同時に実行することを「ビルド」と呼びます。ソースコードからいっきに実行ファイルを作成する行為がビルドです。

プログラミングをサポートするツールとして「統合開発環境」、英語で「IDE: Integrated Development Environment」があります。コーディングに必要なテキストエディタやコンパイラー、リンカー、デバッガー(後述)の機能を統合したソフトウェアです。

統合開発環境はビルド機能を持ち、ソースコードから容易に実行ファイルを作成することができます。

統合開発環境(IDE)

代表的な統合開発環境には以下があります。

  • Visual Studio: Windows用のプログラム開発IDE
  • XCode: MacやiPhone用のプログラム開発IDE
  • Android Studio: Android用のプログラム開発IDE

デバッグ

プログラミング言語の規則・ルール

プログラミングをする際に避けては通れない、デバッグについても説明します。

プログラミング言語には文法があり、その規則、ルールに従ってソースコードを記述する必要があります。プログラミング言語を学ぶとはこの文法、規則を学習することを指します。

そして、日本語や英語も文法に反していると意味が通じないのと同様に、規則に反した記述があると、コンパイラーはコンパイルすることができません。

デバッグとは?

記述したソースコードのうち、そのプログラミング言語の規則に反している箇所を「バグ」と呼びます。

そして、このバグの箇所を特定し訂正することを「デバッグ」と呼びます。デバッグは英語で「debug」と表記し、「de」は取り除くことを意味する接頭語です。つまり、デバッグとはバグを取り除く作業ということです。

デバッガーとは?

また、プログラミング言語の規則には従っているもののプログラムが仕様通りに動かない、つまり、自分の期待する振る舞いにならない場合もあります。その原因となる箇所を特定し修正することも同様にデバッグと言います。

その際、不具合箇所を特定する手助けをするのが「デバッガー」です。デバッガーを用いれば、ソースコードに記述した命令を一つずつ実行することが可能となり、どこで動作がおかしくなっているのかを探し出すサポートをしてくれます。


ここまでを整理すると、コーディングによってコンピューターに実行させたい命令を記述し、コンパイルによってCPUが理解できる「0」、「1」へ変換し、リンクによりプログラムを作成します。また、必要に応じてデバッグを行い、仕様通りの動作になるように不具合を修正します。この一連の作業をプログラミングと呼びます。

まとめ

最後に、ここまでの内容を振り返りながらまとめていきます。

プログラミングの必要性やその工程、用語と共に「プログラミングとは?」について解説してきました。

まとめ
  • プログラム:CPUへ各装置の制御の仕方を教える指示書
  • プログラマー:プログラムを作成するエンジニア
  • プログラミング言語:プログラムを記述する人間が理解できる言語
  • ソースコード:プログラミング言語を使ってコンピューターへの命令を記述したモノ
  • コーディング:ソースコードを記述すること
  • コンパイル:ソースコードをCPUが理解できる「0」と「1」へ変換すること
  • コンパイラー:コンパイルを担当するソフトウェア
  • オブジェクト:コンパイルによって生成されたモノ
  • リンク:複数のオブジェクトを結合すること
  • リンカー:リンクを担当するソフトウェア
  • ビルド:コンパイルおよびリンクを実行すること
  • バグ:プログラミング言語の規則に反している箇所、仕様通りに動作しない原因となっている箇所
  • デバッグ:バグを特定し修正すること
  • デバッガー:ソースコードに記述した命令を一つずつ実行するなどしてデバッグをサポートしてくれるソフトウェア
  • 統合開発環境(IDE):テキストエディタ、コンパイラー、リンカー、デバッガーの機能を統合したソフトウェア

ということで、今回は以上になります。

よし

ここまで、記事をお読み下さり、ありがとうございました。

「YouTube」で動画解説もしていますので、質問のある方はコメント欄へお気軽にメッセージください!

ほなね!