第1章 プログラムとは何か
プログラムとは何か
プログラムは、コンピュータに対して特定のタスクを実行するように命じる一連の指示や命令の集合体を指します。これらの命令は、特定のプログラミング言語を使用して記述され、通常はソースコードと呼ばれるテキスト形式で書かれます。
プログラムは、算術計算からデータベースの管理、インターネットを通じた情報の送受信、グラフィックスの生成、人工知能のアルゴリズムなど、さまざまなタスクを実行するために使用されます。一つのプログラムが他のプログラムと連携して動作することもあります。
ソースコードは通常、コンピュータが直接実行できる形式(バイナリコード)に変換されるか、またはインタープリタと呼ばれる特別なプログラムによって直接実行されます。
ソフトウェアは、一つ以上の関連するプログラムと、それらを実行するために必要な関連データや設定情報を含むより大きな単位を指します。例えば、ウェブブラウザやワードプロセッサ、オペレーティングシステムなどはすべてソフトウェアの例です。
プログラミングとは何か
プログラミングとは、コンピュータに特定の動作をさせるための指示を作成する過程です。これらの指示は「コード」と呼ばれ、プログラミング言語という特定の文法と構文を使用して書かれます。プログラミング言語は非常に多様で、Python、Java、C++、JavaScriptなど、目的や用途に応じてさまざまなものがあります。
プログラミングの主な目的は、自動化、計算、アルゴリズムの実装、データの操作、インターフェースの作成などです。これらのタスクはソフトウェアアプリケーション、ウェブサイト、モバイルアプリ、組み込みシステムなどを作成するために使用されます。
プログラミングには、解決すべき問題を理解し、その解決策を効率的に表現するための論理的思考と問題解決スキルが必要です。また、コードを書くだけでなく、デバッグ(エラーの特定と修正)、テスト、ドキュメンテーションの作成など、コードのライフサイクル全体を管理する一連のプロセスも含まれます。
したがって、プログラミングとは、特定の問題を解決または特定のタスクを達成するために、コンピュータに対する具体的な指示を作成するプロセスと言えます。
プログラミング言語とは何か
プログラミング言語とは、人間がコンピュータに命令を与えるために使用する特殊な言語のことを指します。プログラミング言語は、ソフトウェアプログラムやスクリプトを作成するためのツールとして使用され、コンピュータに対する命令のセットを定義します。
プログラミング言語には、それぞれ特定の構文(命令の書き方)とセマンティクス(命令がどのように動作するか)があります。これらの言語は一般的に、以下のカテゴリに分類されます。
- 手続き型言語: これらの言語(例:C、Pascal、Fortran)は、一連の手続き(または関数)によってプログラムの状態を変更します。
- オブジェクト指向言語: これらの言語(例:Java、C++、C#)は、データと機能をオブジェクトという単位にまとめて操作します。これにより、リアルワールドのオブジェクトを模倣することでコードをより理解しやすくします。
- 関数型言語: これらの言語(例:Haskell、Erlang、Clojure)は、数学的な関数の計算に基づいています。副作用を避けることを目指し、プログラムの状態を変更せずに計算を行います。
- 宣言型言語: これらの言語(例:SQL、HTML、CSS)は、「何をするか」ではなく「何であるべきか」を記述します。
- スクリプト言語: これらの言語(例:JavaScript、PHP、Python)は、通常、特定のタスクを自動化したり、既存のソフトウェアコンポーネントを組み合わせたりするために使用されます。
各プログラミング言語は、特定の問題を解決するために設計されており、それぞれが得意とする領域や使用シーンが異なります。
プログラミング言語とその概要
多くの開発者や企業が使用している、または歴史的な影響力を持つ20の著名なプログラミング言語とその概要を挙げます。
- C: プログラミングの基本を学ぶのに適した低レベル言語。多くのシステムソフトウェアや組み込みシステムの開発に使用されます。
- C++: C言語にオブジェクト指向と一部の高レベル機能を追加した言語。システム/アプリケーションソフトウェア、ゲーム開発、リアルタイムシステムなどで使われます。
- C# (C Sharp): Microsoftが開発したオブジェクト指向言語で、Windowsアプリケーションやゲーム開発エンジンUnityでよく使われます。
- Java: プラットフォームに依存しない言語で、一度コンパイルすれば異なるハードウェアやOS上で実行できます。エンタープライズ環境やAndroidアプリ開発でよく使用されます。
- Objective-C: C言語にSmalltalk型のメッセージベースのオブジェクト指向システムを追加した言語。かつてはiOSやmacOSのアプリケーション開発で主に使用されました。
- Swift: Appleが開発し、iOSおよびmacOSのアプリケーション開発に使用されるモダンなオブジェクト指向言語。
- PHP: サーバーサイドのウェブ開発で広く使われるスクリプト言語。HTMLと混在して使うことが可能。
- Python: 高レベルで汎用性のあるプログラミング言語で、特にデータサイエンスとAI開発で人気です。簡潔で読みやすいシンタックスが特徴。
- Ruby: オブジェクト指向を強く重視したスクリプト言語。Ruby on Railsというウェブフレームワークで広く使われています。
- Perl: 強力なテキスト処理機能を持つスクリプト言語で、システム管理やウェブ開発で使われます。
- R: データ分析と統計計算に特化したプログラミング言語。
- SQL: データベースの構築と管理に使われる言語で、データの追加、更新、削除、検索などを行います。
- Go (Golang): Googleが開発した静的型付けのコンパイル言語で、シンプルさと並行処理の機能が特徴。
- Kotlin: 静的型付けのオブジェクト指向言語で、特にAndroidアプリケーション開発で人気。
- Rust: メモリ安全性と並行性を重視したシステムプログラミング言語。
- Scala: 静的型付けのマルチパラダイム言語で、Javaの互換性と関数型プログラミングの特性を組み合わせています。
- JavaScript: ウェブページに動的な要素を追加するために使用される言語で、ウェブブラウザ上で直接実行できます。
- TypeScript: JavaScriptに型システムを追加したスーパーセット。大規模なJavaScriptアプリケーションの開発に利用されます。
- Lua: 埋め込み可能なスクリプト言語で、主にゲーム開発や組み込みシステムで使用されます。
- Shell script (bash, sh, etc.): コマンドラインインターフェースの操作を自動化するためのスクリプト言語