プログラミング言語
内容
· 1 プログラミング言語の種類
o 1.1 高レベル対低レベル
o 1.2 宣言的プログラミングとインパーティブプログラミング
o 1.3 機能的対手続き的
o 1.4 スタックベース
o 1.5 オブジェクト指向
o 1.6 流れ重視
· 2つのルール
· 3 オブジェクト指向プログラミング
· 4つの例
o 4.1 Visual Basicの例
o 4.2 Pythonの例
o 4.3 C#の例
o 4.4 Haskellの例
· 5 関連ページ
プログラミング言語とは、コンピュータが動作するために何をすべきかをコンピュータに指示するための記述言語の一種です。プログラミング言語は、すべてのコンピュータプログラムやコンピュータソフトウェアを作るために使用されています。プログラミング言語とは、コンピュータが何かをするために従う命令セットのようなものです。
プログラマーは、プログラムを作成するためにプログラミング言語でソースコードのテキストを書きます。通常、プログラミング言語は、人間が読みやすいように、コマンドの一部に実際の言葉を使用しています。多くのプログラミング言語では、通常の言語と同じように句読点が使われています。現在、多くのプログラムは「コンパイル」されています。これは、コンピュータがソースコードを別の言語(アセンブリ言語や機械語など)に翻訳することを意味します。
コンピュータのプログラムは非常に慎重に書かれなければなりません。プログラマがミスをしたり、プログラマが設計していないことをプログラムが行おうとしたりすると、プログラムは「クラッシュ」したり、動作を停止したりすることがあります。コードの書き方に問題がある場合、これを「バグ」と呼びます。非常に小さなミスが、非常に大きな問題を引き起こすことがあります。
プログラミング言語の種類
プログラミング言語には多くの種類があります。ほとんどのプログラミング言語は1つのタイプだけでは追随しないので、言語ごとにタイプを割り当てるのは難しい。それぞれのタイプの例は、そのタイプの中で最もよく知られている例であるため、以下の各セクションでは、それぞれのタイプの例を示しています。
高レベル対低レベル
| この項ではさらに情報を必要としています。(2018年8月) |
高レベルのプログラミング言語は、低レベルのプログラミング言語に比べてハードウェアに関する知識を必要としません。高レベルプログラミング言語は、ソースコードを低レベルプログラミング言語に変換するためのインタプリタを必要とします。
宣言的プログラミングと命令的プログラミング
宣言的プログラミング言語は「問題」を記述しますが、通常、問題がどのように解決されるべきかは述べません。問題の記述には論理が使われ、問題を「解決」することは、論理的公理のシステムを自動的に証明するように見えることが多い。このようなプログラミング言語の例としては、Prolog、XSLT、LISP、SQLなどがあります。
インペレーティブプログラミング言語は、状態変化のシステムを記述します。開始時には、プログラムは特定の状態にあり、コンピュータにはアクションを実行するために従うべきステップが与えられています。ステップに従うことで、プログラムは「状態を変える」ことになります。
一般的には、宣言型プログラミング言語の方が安全で短いです。反復的プログラミング言語は、より使いやすいため、より一般的になっています。
機能的対手続き的
関数型プログラミングは、数学の関数のようなプログラミングを見ています。プログラムは、何らかの情報とともに入力を受け取り、その情報を使って出力を作成します。間に状態を持たず、計算に関係のないものを変更することもありません。
プロシージャルプログラムは、ステップや状態変化のセットを指定または記述します。
スタックベース
スタックベースの言語は、プログラムのメモリの一部をカードのスタックのように見ています。スタックでできることはほとんどありません。データ項目をスタックの一番上に置くことができます。この操作は一般に「プッシュ」と呼ばれています。データ項目をスタックの一番上から削除することができます。この操作は一般に「ポップ」と呼ばれています。スタックの一番上にある項目を削除せずに見ることができます。これを「のぞき」といいます。
プログラムを「push 5; push 3; add; pop;」と書くと、スタックの一番上に5を置き、5の上に3を置き、一番上の2つの値を足して(3 + 5 = 8)、3と5を8に置き換えて、一番上の(8)を出力します。スタックベースのプログラミング言語の例としては、PostscriptやForthなどがあります。
オブジェクト指向
オブジェクト指向プログラミング言語では、データを一つの単位に変えるデータや関数を配置します。この単位を「オブジェクト」と呼びます。オブジェクトは相互に作用し、別のオブジェクトのデータを変更することができます。これは通常、カプセル化や情報の隠蔽と呼ばれています。最近のプログラミング言語のほとんどはオブジェクト指向であるか、少なくともこのスタイルのプログラミングを可能にしています。Java、Python、Ruby、C++、C#などのC言語がその例です。
流れを重視した
フロー指向プログラミングは、異なるコンポーネントを接続するようにプログラミングを見ています。これらのコンポーネントはメッセージを前後に送ります。単一のコンポーネントは、内部的に変更する必要がなく、異なる「プログラム」の一部になることができます。
ルール
すべてのプログラミング言語には、できることとできないことについてのルールがあります。これらには次のようなものがあります。
- 正しい数字(数字の種類、数字の大きさや小ささなど
- 言葉(予約語、大文字小文字の区別
- プログラミング言語でできることの限界
ほとんどの言語には、ソースコードの書き方のルールを定義する公式の標準があります。プログラミング言語の中には、2つ以上の標準を持っているものもあります。これは、新しい標準が古い標準に取って代わるときに起こることがあります。例えば、Perl 5 標準は 1993 年に Perl 4 に取って代わられました。これは、2人の人が同時に2つの標準を作ったために起こることがあります。例えば、APLにはいくつかの標準があります。
オブジェクト指向プログラミング
オブジェクト指向プログラミング(OOPと短縮されることもあります)は、プログラムのすべての部分がオブジェクトであるプログラミングの一形態です。オブジェクトとは、同じ構造を持つメモリの断片であり、何度も繰り返し使用することができます。銀行口座、ビットマップ、ビデオゲームのヒーローなどは、すべてプログラム内のオブジェクトになります。オブジェクトは、プロパティ(オブジェクトが保存する情報の断片)とメソッド(オブジェクトができること)で構成されています。Dog オブジェクトは、身長や hairColor などのプロパティを持っているかもしれません。メソッドには bark() や wagTail() などがあります。
すべてのオブジェクトは、クラスと呼ばれるテンプレートから作成されます。クラスは、オブジェクトを作るための型と考えることができます。クラスは、そのオブジェクトが持つすべてのプロパティとメソッドを定義します。クラスから作成されたオブジェクトは、そのクラスのインスタンスと呼ばれます。クラスは他のクラスを拡張することができます。つまり、そのクラスのすべてのプロパティとメソッドを受け取り、独自のメソッドを追加することができます。
プログラミング言語では、あるクラスがどのように見えるかの例を紹介します。
class Dog extends Mammal { //これらはプロパティです。 String breed = "Collie" String type = "Herding Dog" // これらはメソッド です void wagTail(){ // 多少の毛づくろいをします } bark(){ //ここで void bark(){ // ここで毛づくろいをします } //ここで毛づくろいをします}DogクラスはMammalクラスを継承しているので、すべての犬は毛の長さなどの哺乳類のプロパティと、eat()やsleep()のようなメソッドを持っています。
オブジェクト指向プログラミングは、Java、C#、Objective-C、C++、Python、Ruby、Javascript、ActionScriptなど、今日最も人気のあるプログラミング言語の多くで使用されています。
例としては、以下のようなものがあります。
ビジュアルベーシックの例
ここではVisual Basicで書かれた簡単なプログラムを紹介します。
このプログラムは、ユーザーに年齢を尋ね、ユーザーが入力したものに基づいて応答します。ユーザーが何か数字以外のものを入力した場合は、そのように表示されます。ユーザーがゼロ未満の数字を入力した場合は、そのように表示されます。ユーザーが100歳以上と入力した場合は、"それは古い!"と表示されます。ユーザーが正しい年齢を入力した場合、プログラムはユーザーに彼または彼女が何歳であるかを返します。
Pythonの例
上のプログラムと同じことをPythonで行うプログラムを紹介します。
C#の例
上のプログラムと同じですが、C#で。
Haskellの例
またしても同じことですが、Haskellで。
関連ページ
- プログラミング言語一覧
- プログラマー
- コンパイラ
- コンピュータプログラミング
質問と回答
Q:プログラミング言語とは何ですか?
A:プログラミング言語とは、コンピュータに何をすべきかを指示する記述言語の一種です。コンピュータが何かをするために従う命令のセットのようなもので、人間が理解しやすいように、命令の一部に実際の言葉を使うのが普通です。
Q:プログラミング言語の例にはどのようなものがありますか?
A:プログラミング言語の例としては、Python、Ruby、Java、JavaScript、C、C++、C#などがあります。
Q:プログラミング言語では、どのようにプログラムを書くのですか?
A:プログラムは、プログラミング言語のソースコードにテキストを記述することで作成されます。通常、句読点も使用します。
Q:プログラミング言語で書かれたプログラムはどうなるのですか?
A:プログラミング言語で書かれたプログラムは、コンパイルされなければなりません。これは、コンピュータがソースコードを、コンピュータが読むことができるけれども人が読むのはずっと難しい別の言語(アセンブリやマシン語など)に変更したり翻訳したりすることを意味します。
Q:プログラムを書くときに間違いがあるとどうなるのでしょうか?
A:プログラムを書くときに間違いがあったり、プログラムが設計されていないことをしようとしたりすると、プログラムが動かなくなることがあり、これを「クラッシュ」と呼びます。これは「クラッシュ」と呼ばれるもので、コードの書き方が原因で起こる場合は「バグ」と呼ばれます。小さな間違いでも、大きな問題を引き起こす可能性があるのです。
Q:なぜコンピュータのプログラムは慎重に書かなければならないのですか?
A:コンピュータのプログラムは慎重に書かなければなりません。小さな間違いでも大きな問題を引き起こし、クラッシュやバグにつながる可能性があるからです。