ハードウェアの発展とともに、より簡単にプログラミングをする方法が考えられてきた。最初は、処理を0と1で表現する機械語を使っていたが、その個々の命令を記号化したアセンブラ言語が開発された。さらに、色々な言語の開発により、日常語の表現に近い高水準言語によるプログラミングへ発展した。
機械語とアセンブラ言語は、機械には理解しやすいですが、人間には理解しにくいので、低水準言語と言う。
高水準言語は手続き型言語(手続き向き言語)と非手続き型言語(非手続き向き言語)に分かれる。前者は、処理の順序を流れ図に従ってプログラミングするが、後者は、プログラムに何をさせるか簡潔に記述するだけで、処理手順を細かく意識する必要はない。オブジェクト指向言語のJavaやC++などがある。
コンピュータの発展段階を世代で表すのと同様に、プログラム言語の発展段階は、機械語が第1世代、アセンブラ言語が第2世代、高水準言語が第3世代、その次が第4世代言語(4GL)。第4世代言語はソフトウェア開発の生産性向上を目標としており、定型的な業務処理に対し、簡単なパラメータの指定でプログラムを生成する機能をもつ。
また、パソコンやワークステーションが普及するにつれ、コンピュータに関する特別な知識を必要としないエンドユーザー言語が開発され、プログラミングの方法も多様化した。表計算やデータベース等を扱い、今までの言語とは使用形態が違うので、EUCツールとも言われる。
さらに、特殊問題向き言語はソフトウェアパッケージの意味合いが強く、特定分野の応用ソフトウェアの作成を目的とする。
Fortran | 科学技術計算用のプログラム言語で、通常の計算式がほぼそのままプログラムに使える。現在では、構造化プログラミングに対応している。発表当初、あまりの画期的な発明として自動プログラミングという言葉さえ使われた。 |
ALGOL | 普通の数学記法に近く、簡潔で厳密な文法等、アルゴリズムを表現しやすい仕様。後に開発されたPL/I・Pascalに影響を与えた。 |
COBOL | 事務処理用のプログラム言語。英語に近い表現で記述でき、ファイルの入出力機能が充実している。 |
PL/I | 事務計算や科学技術計算等、色々なデータ処理分野に適用できる。ALGOL・COBOL・Fortran等の言語の特徴を取り入れた、非常に大きな言語仕様。 |
Pascal | 当初からパソコン用の言語として使われ、構造化プログラミングに適した命令がある。JIS規格になっている。 |
RPG | 報告書作成用の言語で、所定の用紙にパラメータを記述する方法でプログラムを作成する。処理に応じて、プログラム指示書・入力ファイル指示書・出力指示書・処理指示書等が用意されている。流れ図の作成の必要がなく、プログラムの生産性を上げられる。 |
BASIC | TSSの会話型プログラム言語として使われた。命令が短くて使用しやすいので、パソコンの入門者用の言語。また、インタプリタ型の代表的な言語。 |
LISP | リスト処理用の言語。データやプログラムをリストで表現し、関数を多く利用する言語で、人工知能用ソフトウェア開発言語として使われている。 |
APL | 計算処理の手順を簡潔に表現するために考案された言語。文法規則が少なく、特殊な記号で記述するため、他の言語より短い記述でプログラムを作成できる。対話型インタープリター言語 |
C | UNIXを開発するために設計されたプログラム言語。もともとシステム記述用として開発され、アセンブラ言語に近い処理が可能ですが、現在ではパソコンでも使われている。 |
Smalltalk | オブジェクト指向プログラミングのための言語。 |
C++ | Cをオブジェクト指向型言語に改良したもので、Cの機能はほぼそのまま使える。データとその処理手続きを1つにまとめたクラスが追加された。 |
Java | C++をベースとしたオブジェクト指向の言語ですが、ポインタ等の機能を外してシンプルにしている。多重継承は実装していない。Javaを実行するソフトウェア等(Java仮想マシン)を用意できれば、どのコンピュータでも実行できる。インターネットからアプリケーションをダウンロードし、ブラウザ上で実行させることもできる。クライアント側で動作するJavaアプリケーションをJavaアプレットと言う。さらに、Java言語を使って、サーバ側で実行し、動的にウェブページを生成し、クライアントに送信する技術にはJSPや Javaサーブレット (Java Servlet) がある。 |
機械語への変換作業を省略して簡単に実行できるようにした簡易プログラムを記述するためのプログラミング言語。スクリプト言語で作られたプログラムはスクリプトと呼ばれる。「簡易プログラミング言語」と呼ばれることもある。
コンピュータが実行できる形式への変換は自動的に行われるため、手間をかけずに実行することができる。
小規模なプログラムをすばやく作成することが主な目的であるため、一般のプログラミング言語に比べて機能は少ないが、習得が容易で記法も簡便であることが多い。
Perl | テキストの検索や抽出、レポート作成に向いたインタプリタ型の言語。CGIの開発に使われる。 |
PHP | 動的にウェブページを生成するウェブサーバの拡張機能の1つであり、そこで使われるスクリプト言語。XHTMLファイル内に処理を記述したスクリプトを埋め込み、結果に応じて動的に文書を生成して送出できる。また、XMLのサポートや各種データベースとの連携に優れている。言語仕様やプログラムはオープンソースである。 |
Python | 文法の仕様等を最低限に抑える代わりに、利便性の高い大規模な標準ライブラリを備えている。言語仕様はオープンソースで、多くのプラットフォームで動作する。プログラムの文書化が重視され、適切なインデンテーションを行う必要がある。 |
Ruby | インタプリタで実行する高機能なスクリプト言語であり、オブジェクト指向機能をもつ。位置づけがPythonと似ているが、開発者は日本人。 |
ECMAScript (エクマスクリプト) |
Netscape社のJavaScriptと、Microsoft社のJScriptの動作を統一するために作られた、プログラミング言語の仕様。 両方の言語に共通する部分を取り入れて作られた。Ecma International によって策定されたスクリプト言語である。 Java言語のようなクラスベースではなく、プロトタイプベースのオブジェクト指向を採用している。 |
共通言語基盤(CLI)は,Microsoft社などが進めている.NETにおいて,各種のプログラム言語をサポートする安全で高機能な環境を提供するもので,2006年11月にJIS X 3016(ISO/IEC 23271:2003)として公示された。.NET Frameworkによって提供される機能のうち、仮想計算機の標準仕様
CLIは、プログラミング言語やコンピュータ・アーキテクチャに依存しない環境を定義しており、様々な高級言語で書いたソースコードが書き直すことなく他のプラットフォームでも使える。
CLR(共通言語ランタイム)はCLIの仕様を実装したものの一つである。CLIに適合するプログラムは全て共通中間言語 (CIL) へコンパイルされる。CILは、ハードウェアから抽象化された中間言語であり、実行時にはVESが機械語へコンパイルする。
www.it-shikaku.jp