BLOGinSPACE
インストール型ブログ
セキュリティコード
GoogleSitemapsジェネレータ
サイト探索
Google Sitemaps
Flash programming リンク集
Perl & CGI リンク集
PROGRAMING リンク集
プログラミング言語の種類
ActivePerl
Perlドキュメント(和訳)
Perlデータ構造
Apache JP
Apache 中核機能
« 自宅サーバを公開 | index | PROGRAMING リンク集 »
大きな定義からいうと 低水準言語と高水準言語に分けられます
#-----------------------------------
# 低水準言語
#-----------------------------------
機械語とアセンブリ言語が代表的
■機械語
CPUがそのまま解釈できる命令の集まりで、人間が直接書くことはまずない
参考書: 『マシン語・機械語・真心語』 (参考書: は『Amazon.co.jp各商品詳細ページ』へのリンクです)
■アセンブリ言語
英単語に近いニーモック表記で、機械語の命令に1対1に対応したプログラムの作成が可能となる
ただし、CPU毎に命令体系が異なるため、CPUの種類だけ機械語やアセンブリ言語は存在することになる
アセンブリ言語は、CPUの全ての動作を制御することができ、非常に細かい部分までプログラム可能である
つまり、アセンブリ言語を学習・理解することはCPUの動作自体を理解することになるので、コンピュータの基礎的な学習をする際には必修となる
参考書: 『アセンブリ言語』 『アセンブリ言語の教科書
』 『アセンブリ言語の基礎―CASL2によるプログラミング
』
#-----------------------------------
# 高水準言語
#-----------------------------------
■FORTRAN (FORmula TRANslation)
FORTRANは、1956年にIBM社が開発した科学技術計算向けの言語
高水準言語としては最も歴史があるもので、その後何度か改定を受けながら進化している(FORTRAN 66、FORTRAN 77、FORTRAN 90)
現在でもLISPとならんで科学技術計算を行う際にはよく利用されている
参考書: 『わかりやすいFORTRANプログラミング』 『Fortran 77プログラミング
』 『FORTRAN77とFortran90
』
■COBOL (COmmon Business Oriented Language)
COBOLは、1959年にアメリカ国防総省が計算機利用者と製造業者の代表を集め、CODASYL(COnference on DAts SYstems Languages:データシステム言語協議会)を作り、そこで発表された
COBOLの特徴は、事務処理作業の中心となるデータ処理を容易にしている点と読みやすく、書きやすい表現として、英語に近い表現でプログラムできるようにしている
最近ではCOBOLを使った、ネットワークプログラミングも注目を集めている
参考書: 『標準COBOLプログラミング』 『.NETのしくみとVB.NETプログラミング入門―COBOLユーザーに捧げる
』
■Pascal
Pascalとは、世界で最初に機械式計算機を発明した哲学者B.Pascalにちなんで名づけられたもので、1971年にスイス連邦工科大学のNiklas Wirth教授によって言語仕様が公開された
Pascalは、構造化プログラミングと言語体系が最も一致しており、アルゴリズムの表現がし易いという特徴を持っている
そのため、厳格な書式を要求することから、情報系学生の教育用やアルゴリズムの表現方法として最も利用されている
その後PascalはWirth教授自身によって、拡張され、また後継となる言語も開発されてきている
代表的なものとしては、オブジェクト指向の拡張がなされたObject-Pascal(Delphi)やシステム開発用に再設計されたModula、Modula-2、Modula-3などがある
参考書: 『PASCAL』 『はじめてのObject Pascalプログラミング
』 『Delphi Object Pascalリファレンスブック
』
■C
C言語は、1972年から73年にかけてAT&Tのベル研究所のDennis M. Ritchieによって開発された
C言語はUNIXと呼ばれるOSを開発するために作られた言語で、構造化プログラミングへの対応しているだけではなく、アセンブラ言語のようにハードウェアの近い部分の制御も可能としている
そのため、現在ではOSをはじめとして各種アプリケーションの開発がC言語でなされるようになっている
また、C言語をオブジェクト指向の機能を付加した言語としてC++が、更に派生したC#等も登場して新しいシステム開発の主流になりつつある
参考書: 『やさしいC 第2版』 『プログラミング言語C ANSI規格準拠
』 『新版 明解C言語 入門編
』
■BASIC (Baginner's All-purpose Symbolic Instruction Code)
BASICは、1964年ダートマス大学でFORTRANをベースにして 大型コンピュータの教育用言語として開発された
BASICの特徴は、教育現場での利用を考え、対話性に優れたインタプリタ方式を採用したことにある
そのためスピード的には、他のコンパイラ言語と比較にならないが、プログラムが作りやすく、また初期のパソコンに標準で採用されたこともあり、大変普及した
現在では、オブジェクト指向の拡張がなされ、コンパイラ方式のBASICが主流となりつつある
参考書: 『これから始めるBASIC』
■VBA (Visual Basic for Application)
Visula Basicとはマイクロソフト社によって開発されたオブジェクト指向のBASIC言語である
Windowsに代表されるように、現在パソコンはGUIにより操作が主流となっている
これらのウィンドウやボタンといった部品をオブジェクトとして扱うように拡張された言語で、Windowsの機能をフルに使ったプログラムの作成が可能で
マイクロソフトの製品(アプリケーション、例えばExcel,wordなど)用のマクロ言語としてVisual Basicのサブセットを実装したもので、個々のアプリケーション内でしか利用出来ないという制限を持つ
また、マクロ言語として対話性を重視していることからインタプリタ言語と位置づけられている
参考書: 『やさしくわかるExcel VBAプログラミング』 『Access VBAプログラミング開発工房―2003/2002/2000 (入門・基礎編)
』
■LISP (LISt Processor)
LISPは1960年にマサチューセッツ工科大学(MIT)のJohn McCarthyによって発表された関数型のプログラミング言語で高水準言語の中では古いものに属する
LISPは、その名称が示すようにリスト(LIST)と呼ばれる文字や数字(個々の文字や集合のことをアトムと呼ぶ)の集まりとして表現し、そのリストを処理するために開発された関数型の言語
人間の知的活動を抽象化すると文字列と文字列のつながり方の操作に還元できる
すなわちリストとリスト操作というLISPそのもので表現できることを利用して、人工知能の分野で利用されている
現在では、数式処理システムなど実用化されたシステムも多い
ただ、LISPは関数型言語であるため各自が勝手に関数を拡張した結果、数多くの方言が出来てしまい互換がとれなくなってしまった
このような状況を打破するため統一化が図られたのがCommon-LISPで
教育用にシンプルで美しい意味体系で再構築されたSchemeと言うのもある
参考書: 『ANSI Common Lisp』 『やさしいLisp入門
』 『Common Lisp 入門
』
■Prolog (Programming in Logic)
Prologは、1970年フランスのマルセイユ大学でAlain Colmerauerによって作られた論理型のプログラミング言語
Prologの特徴は、「述語論理」と呼ばれる人間の言語の論理体系をベースとしたもので、まず「事実」を定義し(表明)、事実間の関係を「規則」として定義する(公理)、そして最後に、「質問」を行うと、Prologは、「事実」と「規則」に従い「質問」を解釈し、その結果を返す
つまり、他の高水準言語とは全く異なるプログラミングとなる
参考書: 『わかる Prolog』 『Prolog入門
』 『Prolog入門―知識情報処理の序曲
』
■LOGO
LOGOは、1970年代にマサチューセッツ工科大学(MIT)のグループが、LISPをベースに、子供を含み人間との対話を重視した教育用言語として開発
LOGOは、子供に対する創造性開発、情報開発を目指して、柔軟な処理を可能とする言語設計とユーザーにとって使いやすさを追求した設計を行っている
その代表といえるのが「タートル・グラフィックス」と呼ばれるもので、運動場にライン引きで絵を描くのと同じようにコンピュータ上で絵が書ける
参考書: 『LOGO入門』 『LOGO空間プログラミング
』 『入門・Logoの世界
』
■Haskell
Haskellは関数型言語の基礎となる記号論理学に従事したHaskell Brooks Curryにちなんで名付けられました
Haskellは汎用の純粋関数型プログラミング言語で、プログラミング言語設計の分野での最近の革新の多くが取入れられています
Haskellが提供するのは、高階関数、非正格の意味論、静的多相型付け、利用者定義の代数的データ型、パターン照合、リストの内包表記、モジュールシステム、モナド I/O システムで
遅延評価型関数型言語に関する長年の研究を凝縮したもので、モジュールシステムなどプログラミング言語の設計としての言語
■Python
Pythonは 1990年代にGuido van Rossum 氏に設計されたもので、英国 BBC 放送のコメディ番組「モンティ パイソン」から名づけられた
当初からオブジェクト指向言語として設計されたわけではないがオブジェクト指向とは相性がいい
Pythonは、「シンプル」で「習得が容易」で言語自体の機能は最小限に押さえ、必要な機能は拡張モジュールとして追加するという柔軟性豊かな言語
標準で多くのGUIライブラリやネットワーククライアント機能も搭載されていて、商用 RDB用のモジュールも数多く公開されている
参考書: 『初めてのPython』 『Pythonテクニカルリファレンス―言語仕様とライブラリ
』
■C++
C言語から派生した言語でAT&Tベル研究所のBjarne Stroustrup氏がC言語を拡張してSimula67から取り入れたクラスの概念を取り込んで開発した言語
1983年にRick Mascitti氏によってC++と名づけられました
現実のC++には多くのバージョンが存在します
1985年に商業ベースのRelease1.0が販売され、Stroustrup博士自身が1986年に出版した"The C++ Programming Language"がRelease1.0の解説書です
1990年にStroustrup博士とMargaret A. Ellisとの共著"The C++ Programming Language"で多重継承などの機能が追加されて、大幅な改良が行われ Release2.0, Release2.1と進化し続けています
参考書: 『やさしいC++ 第2版』 『詳説C++ 第2版
』 『C++標準ライブラリの使い方 完全ガイド
』
■JAVA
James Gosling によって開発された言語が "Oak" であり、後のJavaとなった
1993年に発表された、WebブラウザMosaic のクローンであり、Java(Oak)ベースのブラウザ "WebRunner"をSun Microsystemsが開発した
オブジェクト指向の言語でどのような環境でも動くと言うのが売りだが、現在ではサーバサイドでの開発が主になってきている
参考書: 『やさしいJava 第3版』 『Javaネットワークプログラミング
』 『Javaクックブック―Java開発者のためのレシピ集
』
■Perl(Practical Extraction And Report Language)
Perlは1986年、Larry Wall氏によって開発されたスクリプト言語で現在ではオブジェクト指向にも対応している
Ver1 1987年外部に始めて公開
Ver2 1988年正規表現パッケージを導入
Ver3 バイナリデータを扱えるように
Ver4 1991年
Ver5 1994年
と、精力的に進化している言語で 特にテキスト処理に優位を持っており現在ではCGIに代表されるように 広く一般に広がった
参考書: 『初めてのPerl』 『プログラミングPerl〈VOLUME1〉
』 『Perlクックブック〈VOLUME1〉
』
■Ruby
まつもと ゆきひろ氏が設計した本格的な日本発のオブジェクト指向言語
まつもと ゆきひろ氏はPerlを尊敬するとだけあって Perlに似たオブジェクト指向言語でテキスト処理関係の能力などに優れている
参考書: 『たのしいRuby―Rubyではじめる気軽なプログラミング』 『Rubyプログラミング入門
』 『RubyによるCGIプログラミング
』
ウィキペディアの「Hello world」を見てるとさすがにあきてきます
このエントリーのトラックバックURL: http://sieg.xeong.com/mt-tb.cgi/15
このエントリーを含むはてなブックマーク![]()
» やさしいJava 第3版 from AML Amazon Link
やさしいJava 第3版 [続きを読む]トラックバック時刻: 2006年05月01日 10:30
サイン・インを確認しました、 さん。コメントしてください。 (サイン・アウト)
(いままで、ここでコメントしたとがないときは、コメントを表示する前にこのウェブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)