<< 豆知識 >>



 

Fortran以外の言語


 もう既に知っていると思いますが、プログラミング言語はFortranだけではありません。有名な言語だけでも50近くあります。もちろん全ての言語が使用されているわけではありませんが、頻繁に使われる言語は結構あります。科学計算においてはFortranもその一つです。プログラミングの授業ではC言語がかなり使われると思いますし、インターネット上のプログラムはJavaですね。
 ところで、どんな言語がFortran以外にあるかご存知ですが? 色んな言語があるのは知っているけれども、どんな名前のがあったっけな、という人は結構多いと思います。僕も少ししか知りませんし、やったことのあるのも4つです(HTML、C言語、HSP、Fortran)。言語にはその言語の特徴があります。その特徴を知ることで、「今度はこれがやりたい」というときに、どんな言語を使用したらいいのかがすぐに分かります。そうすれば、自分の目的に合った言語の勉強がしっかりと選択でき、「とりあえずC言語が有名だからC言語を勉強すれば大丈夫だろう」ということにならなくてすみます。
 言語には得意分野と不得意分野があります。オールマイティに通じる言語はあったとしても、その道のプロの言語にはやっぱりかないません。C言語は科学計算にも使うことができますが、Fortranのほうが扱いやすいとか安全でしっかりしたプログラムが作れるという人は多いですし、どんなOSを使っていても作ったプログラムを使用できるJavaはC言語よりも汎用性に優れています。ですから、言語の特徴を知っておくことは非常に大事です。
 以下に、どんなプログラミング言語の種類があるのか、そしてどんな特徴を持っているのかをまとめておきます。もちろん言語はこれだけではありません。とは言っても、大抵の目的なら下の言語だけで足りると思います。もしその機能に興味を持ったら、ぜひその言語を扱っているサイトや本を利用して、言語の習得にチャレンジしてみてください。

  • 機械語・・・アセンブリ言語が登場するまで使われていた記述方式です。今でもソースコードを最終的にはこの機械語に翻訳・解釈します。それは、コンピュータは機械語しか理解することができないためです。機械語というのは、簡単に言うと数字の羅列で、0と1の二つの数字を使って、2進数や16進数で表現します。機械には理解できても、人間がこの記述方式でプログラムを組むことは大変です。しかし、昔は高級言語が存在しない時期があったので、この言葉を使ってプログラムを作っていた時期がありました。
  • アセンブリ言語・・・機械語によるソースコードの記述が余りにも大変なため、これを少しでも軽減するために生まれた言語です。「ニーモック」という変換形式を使います。数字の羅列では何を命令しているのか理解するのが人間には難しいので、「mov」といった慣れ親しんでる英単語でソースコードを記述し、ソースコードが完成したらそれをニーモックで規定された変換方法に従って機械語に変換していきます。もちろん作業の量は変換する分増えますが、機械語で直接記述するよりもソースコードがとても理解しやすくなります。当初はこの変換作業を手作業で行なっていました。このことを「ハンドアセンブル」といいます。しかし、コンピュータを利用しているのですから、この作業をコンピュータで自動化したいという考えが生まれ、「アセンブラ」という変換プログラムが生まれました。しかし、これでもまだソースコードの作成が大変であったため、もっと人間に近い言葉で記述できる「高級言語」が生まれました。ちなみにアセンブリ言語は低級言語です。
  • ALGOL・・・ALGOrithmic Language の略で、アルゴリズムを意識した言語体系です。現在では使用されていませんが、C言語やPascalのような構造化プログラミングを備えた言語の開発の基になった、歴史的に重要な言語です。Fortranと同じく科学計算用の言語で、Fortranがアメリカで開発されたのに対し、ALGOLは欧州で開発されました。Fortranよりも自然に近い構文で記述が可能です。
  • BASIC・VisualBasic・・・Beginners All purpose Symbolic Instruction Codeの略で、64年に米ダートマス大学のケメニー教授とカーツ教授が開発した言語です。Fortranの文法を基に開発されました。BASICの最大の特徴は、その使いやすさです。Fortranと同じように、非常に分かりやすく単純な記述方式であったので、BASICという名前のせいもあってか、プログラミングの教育用としても使われました。しかしその手軽な操作の反面、整数演算ができないや他のパソコンで作ったBASICだと起動しないなど問題が多く出ました。またFortranと同様に、goto文を使用しないとプログラムが成立しないとか、行番号を必要とするその構造に批判が集中しました。今ではBASICが使用されることは少なくなりました。
     その代わりに活躍しているのが、VisualBasicです。VisualBasicは視覚的要素を備えた開発環境を提供する言語です。普通プログラミング言語というとテキストだらけの開発というイメージがありますが、VisualBasicは実際にプログラムを実行した状態を画面に表示しながらプログラミングをすることができます。イメージとしてはホームページビルダーやペイントソフトで、開発段階でボタンのオブジェクトを設置したり、そのボタンを押して実行してみるといったことが可能です。もちろんBasicの進化系なので、使いやすさも備えており、Basicをさらに進化させ、構造化プログラミングやオブジェクト指向も可能です。VisualBasicは多くの場面で使用され、開発ツールとして重要な位置を占めています。
  • C、C++、VisualC++、C#・・・C言語はB言語の進化系で、米AT&Tベル研究所のリッチー氏が開発した言語です。C言語は今の言語の中でもっとも有名な言語で、昔に比べればその地位は下がりましたが、今でも人気の言語です。C言語はOSであるUNIXを開発する目的で作られた、システム開発社用のプログラミング言語です。記述レベルがFortranほどではありませんが簡潔で、それでいて機械語のような高度な処理も行なうことができるのが特徴です。UNIXの普及により、C言語の普及が高まりました。Fortranに向けられた批判の一つである構造化プログラミングを備えているため、80年代に人気の言語になりました。
     C言語を進化させた言語がC++です。「++」はC言語で「インクリメント」と呼ばれるもので、「少し(ずつ)増加」という意味です。多くのコンパイラはこのC++とC言語の両方をコンパイルできるように作られています。C++はC言語の系列であるため、命令文の多くがC言語と同じです。C++の最大の特徴はデータと処理をひとまとめにした「オブジェクト指向」で、C++のプログラミングはクラスの作成から始まります。C++に視覚的要素を加えたのが、「VisualC++」です。CやC++を基に米マイクロソフトが開発した、オブジェクト指向の言語として「C#」というのもあります。
     
  • COBOL・・・COmmon Business Oriented Languageの略で、大量の事務処理や管理に向いた言語です。科学計算用のFortranとALGOLとこのCOBOLが、初期の高級言語の3大巨頭です。アメリカの事務処理用言語として使用されたことがきっかけで世界的に有名になりました。Fortranよりもより英語に近い言語で自然な書き方です。COBOLのプログラムは4つの基本構造から成り立っていて、それは見出し部、環境部、データ部、手続き部となっています。拡張されたCOBOLには、オブジェクト指向COBOLもあります。
  • Delphi・・・ObujectPascalというPascalを拡張した言語のことです。言語の由来は古代ギリシャの都市、デルポイからきているようです。普通Delphiというと、ボーランドが開発した、VisualBasicのようなプログラム開発ツールのことを言うようです。宣言のない前方参照を許さない構文などの特徴をもつこの言語の採用によって、コンパイルのはやさが他の開発ツールより群を抜いたものとなっています。データベースに向いていて、データベースアプリケーションの開発に利用されることが多いです。
  • HSP・・・Hot Soup Processerの略で、フリーで配布されている言語です。Fortranよりも簡単に記述できる言語で、小学生でも理解可能といわれるほど簡単な言語です。インタプリタ言語で、windowsアプリケーションが作成できる言語です。Fortranではコマンドプロンプト画面(コンソール画面)による実行ですが、HSPであればボタンや画像を使用したソフトを作成することが可能となります。
  • HTML・・・スクリプト言語と呼ばれる言語で、ホームページ作成用の言語として有名です。「タグ」と呼ばれる道具を使って文の書式設定や画像の配置、オブジェクトの作成を行なうことができます。操作は単純で、最近のワープロソフトやNetscapeには、文書を作成した後、その通りになるようにHTMLに内容を変換する機能を備えたものが多いです。HTMLに似たものに、XHTMLがあり、今後はこちらがホームページ作成のメインツールとなるそうです。HTMLで記述した内容が全てのブラウザに反映されるわけではなく、例えば「bordercolor」命令は、IEでは機能しますが、Operaでは無効となってしまいます。
  • Java・・・米サン・マイクロシステムズが開発した言語です。言語の由来はジャワ島のコーヒー豆から来ているそうです。C++をベースにし発展させた言語で、C++の特徴でもある、オブジェクト指向をメインにし、Cでは有名だが危険性の高いポインタ機能やクラスの多重継承を排除しています。もともとは家電に組み込む目的で開発されたが、家電メーカーからの需要が少なく、一時は座礁しましたが、インターネットの普及により、その地位を一気に高めた。Java仮想マシンを使用しバイトコードを生成することで、どのOSであってもそのOSの機械語の方式にあわせ使用することができる汎用性や、アプレットといいWebからダウンロード後ブラウザ上でもプログラムが作動するところが、他のプログラミング言語に勝っています。実行速度の遅さを除けば、Javaは何でもできる言語といわれます。
  • Javascript・・・米ネットコミュニケーションズが開発したスクリプト言語です。オブジェクト指向を備えたもので、HTMLと同じくホームページ作りに活躍します。Javaという名前が付いていますが、Javaとは別の言語で、Javaの特徴であるバイトコードの生成は行ないません。Javaが付いているのは、Javaが流行していたその波に乗っかるためにつけたといわれています。Javascriptだけで使用されることはまずなく、HTMLで書かれた文章に、追加したい機能をJavaScriptで記述された文を挿入することで使用します。画像が一定時間後に変化する昨日など、HTMLでは表現できないことをWeb上に実現し、ページの内容を多彩にすることが可能です。HTML同様、ブラウザによってその機能が使用可能出ない場合があります。
  • Pascal・・・スイス連邦工科大学のヴィルト教授が発表した言語で、名前の由来は、世界で最初の機械式計算機を発明したブレーズ・パスカルの名前にちなんだものだそうです。ALGOLの影響を強く受けた言語でもあり、構造化プログラミングの普及をC言語と共に担った言語でもあります。プログラミング自体の教育を目的としていて、発表者であるヴィルト教授がこの言語を用いてこの言語のコンパイラを作って、「言語仕様と最適化は独立した問題である」ことを証明しました。シンプルな構造、豊富なデータ型を持ち、有名な言語になりました。今ではボーランドのDelphiで、後継の「Turbo Pascal」を使用されています。
  • Perl・・・Practical Extranction and Report Languageの略で、名前が示すように実用性を重視した仕組みの言語です。ホームページによく使用される掲示板やアクセスカウンターはCGIと呼ばれるもので、このCGIを作るのに適しているのがこのPerlです。その他テキストやファイルを処理するのに向いています。インタプリタ言語でソース作成が快適で、強力な文字列演算機能や正規表現、許容度の高い記述方法が特徴です。
  • Python・・・Guido van Rossumによってつくられた、オブジェクト指向のスクリプト言語です。使用が簡単で、幅広い支持層があり、教育用として中学生での使用もあるようです。インタプリタ型で、Javaと似た方向性の言語です。見た目の美しさを重視する面があり、他の言語と特に違うのは、インデントによる文字位置の調整が義務となっているところです。FortranやC言語では見た目をわかりやすくするためにIF文の下の文を数文字分右に移動させますが、Pythonの場合はこの文字位置の移動をしないと文が成立しないのです。この使用の目的は、診ていて分かりやすい文章の作成を追及するということのようです。そのほか、CやJavaなど他の言語に機能を追加することができたり、拡張の際にコンパイルが必要ないなどが特徴として挙げられます。
  • Ruby・・・オブジェクト指向のスクリプト言語で、まつもとゆきひろ氏が作成したものです。テキスト処理に向いていて、オブジェクト指向の作りがシンプルになっています。名前の由来は同じテキスト処理向けのPerlを宝石のパールにたとえ、ルビーということでこの名前が付いたそうです。Perlにオブジェクト指向を付加したもので、Pythonとよく似た存在で、一時どちらのほうがいいのか争われたこともありました。開発者の方針としては、とにかくストレスなくいろいろな記述の仕方ができる・言語使用によるエラーを最小化するなどがあります。



参考: ウィキペディア
ASCIIデジタル用語辞典
コマンドプロンプトを使ってみよう!
コマンドプロンプトで作業効率UP
FORTRANの歴史
Fortranを使おう



表紙へ戻る