そもそも、プログラミング言語とは何か
プログラミング言語とは、コンピュータに特定の動作を指示するための人工言語です。私たちの周囲には、パソコンやスマートフォン、家電製品、自動車、交通インフラ、金融機関の基幹システムなど、多くのコンピュータが存在し、これらはすべてプログラムによって制御されています。
プログラムとは、コンピュータに対してどのように作業を行うかを指示する命令の集合体であり、その作成作業をプログラミングと呼びます。プログラミング言語は、このプログラミングを行う際に使用される言語であり、Pythonをはじめとして多種多様な種類が存在します。
プログラミング言語には多くの種類があり、それぞれに特徴や用途があります。例えば、Web開発、モバイルアプリ開発、データ分析、人工知能など、目的に応じて適切な言語を選択することが重要です。
プログラミング言語を選ぶ際には、学習のしやすさ、需要、市場価値などを考慮することが大切です。初心者にとっては、コミュニティが活発で学習リソースが豊富な言語を選ぶと良いでしょう。
プログラミング言語は、私たちの生活を支える多くのシステムやアプリケーションの基盤となっており、その理解と習得は現代社会において非常に有用です。
プログラミング言語は、コンピュータに指示を与えるための手段であり、さまざまな種類が存在します。以下に、主要なプログラミング言語とその特徴をまとめました。
言語名 | 特徴 |
---|---|
C言語 | 最も古いプログラミング言語の一つで、多くの言語の基礎となっています。システムプログラミングや組み込みシステムで広く使用されています。 |
C++ | C言語を拡張し、オブジェクト指向プログラミングをサポートしています。高性能なアプリケーションやゲーム開発に適しています。 |
Java | オラクル社によって開発され、プラットフォームに依存しない特性を持ちます。エンタープライズ向けのアプリケーションやAndroidアプリの開発に利用されています。 |
Swift | Apple社が開発した言語で、iOSやmacOS向けのアプリケーション開発に使用されます。モダンで安全性の高い構文が特徴です。 |
PHP | サーバーサイドのWeb開発に特化した言語で、多くのWebサイトやWebアプリケーションで使用されています。 |
Ruby | 日本人によって開発された言語で、シンプルで読みやすい構文が特徴です。WebアプリケーションフレームワークのRuby on Railsで広く知られています。 |
Python | シンプルで読みやすい構文を持ち、Web開発、データ分析、人工知能など幅広い分野で使用されています。近年、特に人気が高まっています。 |
JavaScript | Webブラウザ上で動作するスクリプト言語で、インタラクティブなWebページの作成に不可欠です。フロントエンド開発で広く使用されています。 |
これらのプログラミング言語は、それぞれ特定の用途や特徴を持ち、開発するプロジェクトの目的や要件に応じて選択されます。
コンピュータが理解するマシン語
コンピュータは、0と1のビット列からなるマシン語(機械語)を直接理解します。しかし、マシン語はCPUの種類やOSによって異なり、プログラムの移植性や開発効率の面で課題があります。
高級言語の登場
これらの課題を解決するために、高級言語が開発されました。高級言語は、人間が理解しやすい構文を持ち、プログラムの移植性や開発効率を向上させます。例えば、FortranやCなどが高級言語として知られています。
コンパイラとインタープリタ
高級言語で書かれたプログラムは、コンパイラやインタープリタを使用してマシン語に変換されます。コンパイラはプログラム全体を一度に変換し、実行可能な形式を生成します。一方、インタープリタはプログラムを逐次的に解釈しながら実行します。
このように、プログラミング言語の進化は、コンピュータの性能向上とともに、より効率的で柔軟なソフトウェア開発を可能にしてきました。
コンピュータはマシン語(機械語)のみを理解しますが、人間にとってマシン語は理解しにくいため、高級言語が使用されます。高級言語は、人間が比較的理解しやすい言語であり、Pythonや他の多くのプログラミング言語もその一種です。
コンパイラとインタープリタ
高級言語で書かれたプログラムは、コンピュータが直接理解できないため、マシン語に変換する必要があります。この変換方法には主にコンパイラとインタープリタの2つがあります。
- コンパイラ: プログラム全体を一度にマシン語に変換し、その後実行します。
- インタープリタ: プログラムを実行しながら、逐次マシン語に変換していきます。
これらの違いは、プログラムをマシン語に変換するプロセスの方法にあります。コンパイラは全文を一括変換するのに対し、インタープリタは実行時に逐次変換を行います。この違いにより、実行速度や開発効率に影響を及ぼします。
プログラミング言語の分類を理解したところで、その中におけるPythonの位置づけを確認しましょう。
Pythonはインタープリタ型のスクリプト言語
Pythonは、インタープリタ型のプログラミング言語であり、同時にスクリプト言語としても分類されます。スクリプト言語とは、記述や実行が容易な言語群を指します。これらの言語は、一般的にシンプルで覚えやすい構文を持ち、プログラミング初心者にも親しまれています。
マルチプラットフォーム対応
Pythonのもう一つの特徴は、異なるOS上で同じプログラムを利用できる点です。各OS用のインタープリタをインストールすれば、プログラム自体を変更することなく、複数のプラットフォームで実行できます。
Pythonのバージョン体系
Pythonには主に2つの系統が存在します。一つは古い2.x系、もう一つは新しい3.x系です。これらのバージョン間には互換性がないため、2020年に2.x系のサポートが終了したことを受け、現在では3.x系の使用が推奨されています。
Pythonは学習が容易でありながら、高い実用性を持つプログラミング言語です。YouTube、Instagram、Dropboxといった有名なウェブサービスの開発にも使用されています。なぜPythonはこれほどまでに学びやすく、かつプロフェッショナルにも適した本格的なプログラミング言語となったのでしょうか?その背景には、Pythonの誕生に関する興味深い歴史があります。
Pythonは1990年にオランダのグイド・ヴァン・ロッサム(Guido van Rossum)によって開発されました。彼は以前、ABCという教育用プログラミング言語の開発プロジェクトに関わっていましたが、そのプロジェクトは中止となりました。その後、Amoebaというオペレーティングシステムの開発プロジェクトに参加しましたが、システムが複雑であったため、既存のプログラミング言語では開発が思うように進みませんでした。この経験から、より使いやすい言語があれば開発がスムーズに進むだろうと考え、ABCをベースにしてPythonの開発を始めました。当初は個人的な興味から始めたものであり、クリスマス休暇の暇つぶしとして開発を開始したそうです。しかし、その後Pythonは世界中で広く使用されるようになり、多くの有名企業が最先端の技術開発に活用するほどの言語へと成長しました。
Pythonとは何か
1プログラミング言語とは何か
私たちの身の回りには、たくさんのコンピュータが存在します。パソコンやスマートフォン、ゲーム機はもちろん、自動車や家電製品、電車などの交通インフラや、金融機関の基幹システムなど、さまざまな領域でコンピュータが活躍しています。
コンピュータに動作を命令するのがプログラムコンビュータを制御するには、どのように仕事や作業をするかということを指示する必要があります。その指示のことをプログラム(program)といい、それを作る作業のことをプログラミング(programming)といいます。
そしてプログラミングに必要な言葉を、プログラミング言語といい、本書で扱うPython以外にもさまざまな種類が存在します。
https://docs.google.com/document/d/1eDay_-eD7bpiSGa1y8GnUFwWxKcvN50p/edit
Python以外のプログラミング言語
Python 以外にプログラミング言語にはどのようなものが存在するのでしょうか? 主なプログラミング言語を表にまとめました。
主なプログラミング言語
言語名 特微 | ||
C言語 | 現在使われている主流な言語の中で、最も古い言語。多くの言語が、C 言語をベースに作られている | |
C++言語 | C言語をさらに拡張した言語。オプジェクト指向という考え方に対応している | |
Java | C/C++をベースにして開発され、現在オラクル社によって公開されている。スマートフォンのOSの1つであるAndroidなどで使われている言語 | |
Swift | アップル社が開発した言語。iPhoneやiPadのアプリ開発に使われる | |
PHP | Webアプリケーションの開発に特化した言語 | |
Ruby | 日本人によって開発された言語。こちらもWebアプリケーションを作る際によく使われる |
マシン語と高級言語
手始めにプログラミング言語の仕組みについて説明します。
コンピュータが直接理解できるマシン語
プログラミング言語は数多くありますが、コンビュータが直接理解できるのは、Z シン語(機械語)と呼ばれる言語だけです。マシン語は、CPUと呼ばれるコンピュータの心臓部が直接処理できる言語であり、中身は0と1の数値の羅列だけなので、人間がこれを読み解くことはほぼ不可能です。
このマシン語は、CPUの種類によって系統が変わってきます。例えば、パソコンなどで主に利用されているインテル社のCorei シリーズと、スマートフォンなどのモバイル端末で主に使われているARM とでは、まったく系統の異なるマシン語が使われています。
また、パソコンにはWindowsやLinux、macOSなど、多様なOSが存在します。そのような中、CPUが同じでもOSが異なっていると、マシン語のプログラムはまず動きません。それは、ほとんどのプログラムがOSの機能を利用しているからです。こうしたCPUやOSの違いまで考慮しながら、マシン語だけで実用的なプログラムを作ることは、ほぼ不可能といってよいでしょう。
https://docs.google.com/document/d/1e0KWMx2feJTJDK5Js6a47XsSOqks1o2k/edit
人間が理解できる高級言語
マシン語だけで実用的なプログラムを作ることはほぼ不可能です。そこで使われるのが、高級言語です。これは人間にとって比較的理解しやすい言語のことで、Python やすでに紹介したさまざまなプログラミング言語も高級言語の一種です。
コンパイラとインタープリタ
高級言語はそのままではコンピュータが理解できないので、マシン語に変換する必要があります。変換する方法は、大きく分けてコンパイラとインタープリタの2つがあります。
これらの違いは、高級言語で書かれたプログラムをマシン語に変換するプロセスの違いにあります。コンパイラは、一度にすべてのプログラムをマシン語に変換(コンバイル)し、変換後のマシン語を実行するという方式です。それに対し、インタープリタはプログラムをマシン語に変換しながら実行するという構造になっています。外国語の翻訳で例えるならば、コンパイラは「全文翻訳」、インタープリタは「同時通訳」といった感じでしょうか。
コンバイラとインタープリタの仕組み
コンパイラは、コンパイル作業に時間が取られますが、コンパイル後のプログラムの実行速度が速い傾向にあります。逆にインタープリタは、コンパイル作業がなく、すぐにプログラムを実行することができますが、変換作業を行いながらの動作なので、実行速度が遅い傾向があります。
https://docs.google.com/document/d/1eXpqg3c-NHFo_-a759-CHk-RjERw6Dqe/edit
プログラミング言語の分類がわかったところで、その中でのPythonの位置付けを確認しましょう。
Pythonはインタープリタ型のスクリプト言語
Python はインタープリタ型の言語ですが、同時に、スクリプト言語と呼ばれる言語の1つです。スクリプト言語とは、プログラミング言語のうち、記述や実行の方法が簡単になっている言語の総称です。
スクリプト言語の最大のメリットは、単純で覚えやすいことにあります。基本的に簡単な単語でプログラムを構成できるようになっており、プログラミング初心者でも親しみやすいという特徴があります。
マルチプラットフォーム
その他の Python 言語の特徴としては、仕様が異なる複数のOS上で同じプログラムを利用できるという点があります。実行する環境(インタープリタ)は各OS用のものをインストールする必要がありますが、OSごとにプログラム自体を書き替える必要はありません。
Python言語には系列がある
学習を始める前に注意が必要なのが、Pythonは大きく分けて2系統に分かれているということです。
バージョンが古い2.x系と、バージョンが新しい3.x系の2系統があり、これらには互換性がありません。2.x系は2020年にサポートが終了します。そのため、本書では3.x系統を前提として解説を進めます。
こちらでは、Python3をベースに解説しています。実行環境を準備する際に間違えないようにしましょう。
https://docs.google.com/document/d/1eh5BCJdks-GwZtH0oTyzoB641KkLdcOa/edit
Python は学習が容易な言語であると同時に実用性の高い言語でもあります。有名なところでは、YouTubeやInstagram、さらにはDropboxといったWebサービスなどの開発にも Python が使われています。
なぜ Python はこのように学びやすいうえに、プロでも使えるような本格的なプログラミング言語になったのでしょうか? その秘密はPython誕生の歴史に隠されています。
Python が誕生したのは1990年。開発者はオランダのグイド·ヴァンロッサム(Guido van Rossum)という人物です。
彼はもともとABCという教育用プログラミング言語の開発プロジェクトに携わっていましたが、残念ながらプロジェクトは中止になり、その後AmoebaというOS の開発プロジェクトに参加します。
Amoeba は非常に複雑なシステムで、既存のプログラミング言語では思うように開発が進みませんでした。そのため、もっと使いやすい言語を使って開発ができたなら······という動機で ABCをベースに開発されたのがPythonでした。
ただ、当初はあくまでも個人の思いつきレベルのものであったため、彼はPython 言語の開発をクリスマス休暇の暇つぶしとして始めます。それが今となっては世界中の有名企業が最先端の技術開発で利用するような言語になってしまったのです。
Python は学習が容易な言語であると同時に実用性の高い言語でもあります。有名なところでは、YouTubeやInstagram、さらにはDropboxといったWebサービスなどの開発にも Python が使われています。
なぜ Python はこのように学びやすいうえに、プロでも使えるような本格的なプログラミング言語になったのでしょうか? その秘密はPython誕生の歴史に隠されています。
Python が誕生したのは1990年。開発者はオランダのグイド·ヴァンロッサム(Guido van Rossum)という人物です。
彼はもともとABCという教育用プログラミング言語の開発プロジェクトに携わっていましたが、残念ながらプロジェクトは中止になり、その後AmoebaというOS の開発プロジェクトに参加します。
Amoeba は非常に複雑なシステムで、既存のプログラミング言語では思うように開発が進みませんでした。そのため、もっと使いやすい言語を使って開発ができたなら······という動機で ABCをベースに開発されたのがPythonでした。
ただ、当初はあくまでも個人の思いつきレベルのものであったため、彼はPython 言語の開発をクリスマス休暇の暇つぶしとして始めます。それが今となっては世界中の有名企業が最先端の技術開発で利用するような言語になってしまったのです。