プログラムに用いる言語の種類


FORTRAN (フォートラン)
科学技術計算用に開発された言語で、1956年に IBM 製コンピュータに用いられた。 現在でも科学技術分野の計算においては、しばしば用いられる。

BASIC (ベーシック)
1964年に米国ダートマス大学でプログラム言語の教育用に開発された。 1975年に Bill Gates (ビル ゲイツ) がパソコン用に移植したことで急激に普及した。

C言語
1972年頃 Dennis Ritchie (デニス リッチ) により DEC 製コンピュータのオペレ−ティング システム (OS) である UNIX (ユニックス) のプログラム記述言語として開発された。 現在では、C言語を更に発展させた C++ がコンピュータのプログラム記述言語として、 ソフト開発等に幅広く用いられている。

HTML (エッチティーエムエル)
HTML は Hyper Text Markup Language の略語であって、Web ブラウザ表示用ファイルを作成するための テキスト編集に限定したインタプリタ方式の言語である。 プログラムとしての機能は限定されているが、使用法は極めて簡便である。 インターネットにおいてホームページ閲覧に頻繁に利用される Web ファイルのソースコード記述言語 としては、主にHTML が用いられる。
なお HTML は制御構造を持たないため、厳密にはプログラム言語の範疇には入らない。

JavaScript (ジャバ スクリプト)
Netscape (ネットスケープ) 社により開発され、Web ブラウザ表示用言語の HTML 内に直接記述することが 可能なインタプリタ方式の言語であって、Java と類似した仕様をもつ。 プログラムとしての機能はあまり豊富ではないが、使用法は比較的簡便である。 Web ファイルの作成に際して、HTML の機能を補完するために用いられる。

Java (ジャバ)
1995年に、Sun Microsystems (サン マイクロシステムズ) 社により発表された言語で、C言語や C++ に類似した仕様をもつ。 Java には HTML (エッチティーエムエル) ファイルから簡単に呼び出して利用することが可能な Applet (アプレット) と呼ばれるプログラム処方がある。

上記の各プログラム言語の記述において、FORTRAN, BASIC, HTML は大文字と小文字を 区別せずに使用できる。 ただし C言語, Java, JavaScript は大文字と小文字を区別して用いなければならない。 プログラム言語には、上記の他に COBOL (コボル) , ALGOL (アルゴル) , LISP (リスプ) , Pascal (パスカル) など様々な言語がある。 なお パソコンのオペレーティング システム (OS) の中、Windows (ウィンドウズ) または MS-DOS (エムエス-ドス) においては、大文字と小文字は区別されない。 一例として、MS-DOS上のファイル名やファイル拡張子では、大文字と小文字の相異は区別されない。 ただし サーバー等で主に用いられているOS言語 UNIX (ユニックス) では、大文字と小文字は区別される。

インタプリタ方式
ソースファイルをバイナリーコード (2進数) で記述される機械語に逐次変換しながら プログラムを実行する。 この方式は、実行速度が遅いという欠点があるが、使用法は簡便である。 この方式のプログラム言語には、JavaScript 並びに HTML と一部の BASIC などがある。

コンパイラ方式
ソースファイルをコンパイラにより予め一括してバイナリーコード (2進数) で記述される機械語に 変換しておき、後に このプログラムをコンピュータにロードして実行する。 コンパイラとは、ソースファイルを機械語のファイルに一括変換するための専用ソフトである。 この方式では実行速度は速いが、予めコンパイラによるコードの変換操作が必要となるために 使用法は簡便ではない。 多くのプログラム言語は、このコンパイラ方式を採用している。

コンパイラ方式のプログラム作成手順
(1) 各言語の仕様や文法に基づいてプログラムを記したソースファイルを作成する。
(2) ソースファイルの内容をコンパイラによって機械語に変換する。
    コンパイラの出力ファイルは、すべて2進数で記述されたバイナリーファイルとなっている。
    各プログラム言語のコンパイラは、最終的には実行形式ファイルを出力する。
(3) コンピュータに実行形式ファイルをロードしてプログラムを走らせる。

ソースファイルとは、各言語の文法に従ってプログラムが記された原本となるファイルをいう。 各言語ともソースファイルはアスキー文字によって記述され、コンパイラの入力ファイルとなる。 アスキー文字とは、アスキーコード表に登録されている文字であって、 英数字や句読点 ならびに 記号,括弧 などがある。 コンピュータ内での演算処理はすべてバイナリーコード (2進数) すなわち機械語で行われる。 なお Java に関しては、コンパイラ方式とインタプリタ方式を併用している。
コンパイラが出力する実行形式ファイルは、コンピュータがもつ CPU 固有の機械語でもって 記述されている。 したがって異なる CPU をもつコンピュータ間では互換性がない。 ここで CPU とは、Central Processing Unit の略語であって、中央演算処理装置のことである。 この CPU はコンビュータシステムの根幹をなす最重要部品である。
ソースファイルは一般にテキストエディター等を用いて作成並びに編集する。 ただし コンパイラによりバイナリーコードに変換された実行形式ファイルは、 通常のテキストエディター等では開くことが出来ない。 実行形式ファイルは専用のバイナリーエディターを用いて開く。 2進数表示のバイナリーコードは大変読み難いので、バイナリーエディター等においては 16進数に変換して 表示することが多い。 現在では特別の場合を除き、バイナリーコードを直接編集する必要性は生じ得ない。

10進数2進数16進数
 0 0 0
 1 1 1
 2 10 2
 3 11 3
 4 100 4
 5 101 5
 6 111 6
 7 1000 7
 8 1001 8
 9 1011 9
 10 1111 A
 11 10000 B
 12 10001 C
 13 10011 D
 14 10111 E
 15 11111 F
 16 100000 10



各プログラム言語について ソースファイルの記述例

二つの文字列 ABCDEFGHIJKLMNOPQRSTUVWXYZ と 0123456789 を行別に表示する。

[1] C言語の例
ファイル名 MyFile1.c

ディスプレイに出力するとき
----------------------------------------------
#include <stdio.h>

void main(void)
{
char *x1, *x2 ;
x1="ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
x2="0123456789" ;
printf("%s ¥n", x1) ;
printf("%s ¥n", x2) ;
}

----------------------------------------------
プログラム第一行の #include <stdio.h> は、 標準入出力ファイルの挿入を指示するコマンドで、プリプロセッサ制御文と呼ばれる。 すなわち定型的に使用される既成のプログラム群が、このコマンドにより最初に挿入される。 現在では、コンピュータを制御するための数多くの既成プログラム群があり、 それらは系統的に整理され関数として幅広く提供されている。 それら既成プログラムを使用可能にするために、プリプロセッサ制御文で指定する。
プログラム中の void main (void) {  } は main (メイン) 関数 と呼ばれる。 C言語のプログラムは、必ず一つの main 関数が存在しなければならない。 プログラムにおける関数とは、独立した処理プログラムの一つの単位を指し、 一般的には他のプログラムから呼び出して用いることが可能であり、 また 他のプログラムに対して、処理 (値) を渡すこともできる。 ただし void は、値を返さない関数の型を意味し、 この指定では他のプログラムからは呼び出し不能であるが、 他のプログラムに値を渡すことは可能な関数となる。
プログラム中の chr は文字列型宣言子である。 ここでは変数 x1x2 をそれぞれ文字列型変数として用いることを宣言している。 C言語の場合、文字列型を宣言するときは、各変数の前にスター印「*」が必要である。 変数に文字列を格納する際には、文字列をダブル クォーテーション「 " 」で囲うこと。 C言語系のプログラムにおいては、文の終わりに必ずセミコロン「 ; 」を記す。 また 小文字を主に用いる習慣がある。 なお C言語系のプログラムでは、大文字と小文字は区別される。
上記のプログラムにおいて printf ( ) は、ディスプレイ画面に変数を出力処理するための 関数としての既成プログラムを呼び出している。 関数 printf ("%s ¥n", x1) は、 二つの変数 "%s ¥n" と x1を受け取っている。 printf 関数内の %s は文字列の出力制御指定子であり、¥n は改行の指定である。 すなわち 文字列変数 x1 の内容が出力され、改行される。
Windows または MS-DOS 系のシステムにおけるC言語ソースファイルの拡張子は、「.c」 とする。 前述したようにC言語のソースファイルは、コンパイラを用いて実行形式ファイル (.exe) に 変換出力する必要がある。 この例の場合、Cコンパイラの出力ファイルは MyFile1.exe となる。 なお C++ のときの拡張子は、「.cpp」 とする。 ( これらは大文字でも可。)

Cドライブのハードディスクにファイル出力するとき
-----------------------------------------------------
#include <stdio.h>

void main(void)
{
FILE *fp ;
char *x1, *x2 ;
fp = fopen("c:file1.txt", "w") ;
x1="ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
x2="0123456789" ;
fprintf(fp,"%s ¥n", x1) ;
fprintf(fp,"%s ¥n", x2) ;
fclose(fp) ;
}

-----------------------------------------------------
プログラムの中、FILE *fp において fp はファイルを指定する変数として宣言している。 C言語の場合、ファイルを指定する変数を宣言するときは、変数の前にスター印「*」が必要である。 この変数 fp は fprintf関数やfclose関数に渡される。 なお fprintf 関数は、ファイルに変数の内容を出力処理するための関数であり、 fclose 関数は、ファイルを閉じる処理をするための関数である。 関数 fopen ("c:file1.txt", "w") は、 二つの変数 "c:file1.txt""w"を受け取っている。 fopen 関数内の file1.txt は出力ファイル名である。 すなわち fopen ("c:file1.txt", "w") は、Cドライブの ハードディスク上にテキストファイル file1.txt を作成して開く。 ここで "w" は上書きモードを指定している。 書き込みモードのときは "a" とする。
関数 fprintf (fp ,"%s ¥n", x1) は、 三つの変数 fp"%s ¥n"x1 を受け取っている。 fprintf 関数内の fp は出力ファイルの指定である。 関数 fclose (fp) は、ファイル fp を閉じる。


[2] HTML (エッチティーエムエル) の例
ファイル名 MyFile2.htm
--------------------------------------
<html>
<body>

ABCDEFGHIJKLMNOPQRSTUVWXYZ <br>
0123456789 <br>

</body>
</html>

--------------------------------------
HTMLにおいては、 <html></html> ならびに <body></body> などをタグという。 ここで <html><body> などを開始タグ、 スラッシュ「 / 」の入っている </html></body> などを 終了タグという。 この開始タグと終了タグは、必ず対になるように記述する。 HTML本文は、<body></body> の間の領域に記す。 <br> は改行タグである。 HTMLプログラムのコマンド (制御命令) においては、大文字と小文字は区別されない。
Windows または MS-DOS 系のシステムにおける HTMLソースファイルの拡張子は、 「.html」または「.htm」 とする。(これは大文字でも可。) HTML は、インタプリタ方式なのでコンパイラは必要なく、ソースファイルから直接に実行可能である。

[3] JavaScript (ジャバ スクリプト) の例
ファイル名 MyFile3.htm
-------------------------------------------
<html>
<body>

<script language="JavaScript">
x1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
x2 = "0123456789" ;
document.write(x1, "<br>") ;
document.write(x2, "<br>") ;
</script>

</body>
</html>

-------------------------------------------
JavaScriptはHTMLファイル中のスクリプトブロック内に直接記述することが出来る。 スクリプトブロックとは、HTMLタグ <script language="JavaScript"></script> で囲まれた領域のことである。
document.write ( ) は、画面に変数の内容を表示するための関数に該当する。 document.write (x1, "<br>") では、 二つの変数 x1 <br> を受け取っている。 すなわち 変数 x1 の内容が表示され、改行される。 ( <br> は HTMLの改行コマンド。)
JavaScriptのプログラムにおいては、文の終わりに必ずセミコロン「 ; 」を記す。 スクリプトブロック内では、大文字と小文字は区別される。 JavaScript では、変数に対して型宣言をする必要はない。 JavaScript は、インタプリタ方式なのでコンパイラは必要なく、 ソースファイルから直接に実行可能である。


[4] Java (ジャバ)の例
Applet (アプレット) 側のファイル名 MyFile4.java
-----------------------------------------------
import java.applet.* ;
import java.awt.* ;

public class MyFile1 extends Applet
{
 public void paint(Graphics gr)
 {
  String x1, x2 ;
  x1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" ;
  x2 = "0123456789" ;
  gr.drawString(x1, 20,30) ;
  gr.drawString(x2, 20,50) ;
 }
}

-----------------------------------------------
Applet (アプレット) とは、HTMLから呼び出されて Webブラウザ内で実行される Javaプログラムのことをいう。 Applet は一種のクラスファイル (.class) であって、実行形式ファイル (.exe) とは 異なり単独では実行出来ない。 クラスとは、プログラムの構成単位のことであり、それ自身も小さなプログラムとして 独立にファイル管理されることが多い。 クラスの内容は主にメソッドなどからなる。 メソッドとは、C言語の関数に該当するプログラム単位のことを指す。
プログラム中の import は既成のプログラム群を用いるための指定である。 import java.applet.* は、アプレット関係の既成プログラムを用いることを指定している。 import java.awt.* は、ウィンドウ画面関係の既成プログラムを用いることを指定している。 Java のプログラムにおいては、文の終わりに必ずセミコロン「 ; 」を記す。
public class MyFile1 extends Applet { } は、 クラスファイル名が MyFile1 のアプレットであることを定義している。 この場合、Javaコンパイラの出力ファイル名は、MyFile1.class となる。 アプレット領域内すなわち{ }中にメソッドなどのプログラムを記述する。 public は、アプレットが他のプログラムから呼び出し可能であることを指定している。
プログラムの中、String は文字列宣言子である。 すなわち 変数 x1x2 は文字列型として用いることを宣言している。
public void paint (Graphics gr) { } は、アプレットの画面 gr を指定して 作成するためのメソッドである。 Java においては、画面のような対象を、一般にオブジェクトという。 ここでは gr を、画面を指定するオブジェクト名として用いている。
gr.drawString ( ) は、gr で指定された画面に、 変数の内容を表示するためのメソッドである。 gr.drawString (x1, 20, 30) の場合、文字列型変数 x1 の内容を、 表示領域の左端から横方向 20ピクセル,上端から縦方向 30ピクセルの位置に表示する。 Javaのプログラムでは、大文字と小文字は区別される。
Windows または MS-DOS 系のシステムにおける Javaソースファイルの拡張子は、 「.java 」とする。 Java のソースファイルは、コンパイラを用いてクラスファイル (.class) に 変換出力する必要がある。

HTML側のファイル名 MyFile4.htm
----------------------------------------------------------------
<html>
<body>

<applet code= "MyFile1.class" width=500 height=300>
</applet>

</body>
</html>

----------------------------------------------------------------
HTML側ファイル中、タグ内の数字 500300 は、 ピクセル単位での Applet表示範囲指定である。 ここでは、幅が 500ピクセル,高さを 300ピクセル に指定している。
Java は JavaScript のように HTMファイル中に直接記述することが出来ないために、 別に HTMLファイルを作成し、そこから Javaで作られたクラスファイルを呼び出す方式をとる。
異なる CPU をもつコンピュータ機種間での互換性を維持するために、Java コンパイラで出力される Applet は、他言語コンパイラとは異なり、CPU 固有の機械語まで変換されずに バイトコードと呼ばれる中間のコードで記述されたクラスファイルとなっている。 実行するときは、HTML ファイル側から Applet が呼び出されたとき、 Web ブラウザに組み込まれているJava仮想マシンが、Applet のバイトコードを CPU固有の機械語に逐次変換しながらインタプリタ方式で実行する。


 HTML (エッチティーエムエル) へ進む

 情報技術 へ戻る

 トップページ へ戻る