はじめての C

[Learning GNU C]

第1章 C 入門

1.1. プログラミング言語とは なにか?

プログラミング言語は コンピュータによって 実行される 命令処理系統を レイアウトするための 様式 (format) と 定義される。 プログラミング言語は 3つの カテゴリーに 区分することが できる -- interpretted 言語、compiled 言語 それと 機械語だ。 これらの タイプのうち 機械語のみが 直接 コンピュータによって 理解される。

機械語は コンピュータの CPU (中央集積回路) が 理解できる 命令の 組み合わせだ。 全ての 命令と 情報は 数字で 表わされる -- コンピュータに 対しては 非常に 高速だが 人の 頭脳にとっては その読み書きが とても 困難だ。 コンピュータ プログラミングの 仕事を 容易にするため 人々は assembly 言語と よばれる より やさしい 言語を つくりあげた。assembly 言語は 機械語の コマンドを 利用するために text による name を 用意したものだ。 これは プログラマに 彼らの code に スペースや タブを 加えることを 可能にしたという 事実とともに assembly 言語では はるかに やさしく プログラムが 作成された。 そして assembly code により assembler を 提供することで 該当する コンピュータの CPU の 機械語に 翻訳させることが できた。

assembly 言語の 使用は すみやかに 拡大し それは 「第2世代の 言語」 として 知られるように なったが assembly 言語には まだ 2つ 問題が ある。 まず 第1に それぞれの コマンドは 2つの 数の 加算や メモリからの 値の load のような 非常に 基本的な 仕事しか できない。 こうした 小さな コマンドを 使うのは まったく 面倒だ。 2つ目の 問題は ずっと 大きい。 assembly 言語で 書かれた プログラムは 特定の CPU の タイプに 制限される。 それぞれの タイプの CPU は それ自身の 機械語を もち そのため それ自身の assembly 言語を もつ。 その次の 仕事が 多くの CPU の 機械語に 翻訳できる 言語の 設計だった。

そうした 機械から 独立した 新しい 言語は 「第3世代」 の または "High-level" 言語として 認知されていった。 容易に 読めるよう 設計された そうした 言語は 英単語、数字記号 そして わずかな 句読点文字から なっていた。 これらの 言語では 例えば 次に 示すように 2つの 数の 加算と 結果の メモリへの 割り当てを 簡潔に 表現した 単純な 命令文を 可能にした。

data = 10 + 200;

rather than:

Load R1, 10
Load R2, 200
Addi R1, R2
Store R2, L1

(追記) 訳文を 全体に わたって 訂正 ...oLr