DEC社 TOPS-20「hello, world」プログラミング(Ⅰ)

TOPS-20 Land

TOPS-20 Land

プログラミング言語の宝庫

2020年3月、歴史的に貴重なDEC社 TOPS-20で「hello, world」をプログラミングしました。

hello

hello

TOPS-20は、DECのPDP-10マシンで動作するOSで1976年に誕生して1970年代から1980年代にかけてUNIXと共に人気のあったOSです。
TOPS-20では、多くのプログラミング言語処理系が動作していました。
TOPS-20で動作する言語処理系は半世紀以上前に生まれた言語であり、21世紀の現在では使われていない言語もあります。

項番 言語 開発時期 一言説明
1 FORTRAN 1954年 科学技術計算向け言語
2 COBOL 1959年 基幹システムを支える言語
3 ALGOL 1958年 アルゴリズム記述言語
4 Simula 1967年 初のオブジェクト指向言語
5 PASCAL 1970年 計算機科学の教育用言語
6 C 1972年 システム記述の標準言語
7 SNOBOL 1962年 強力なテキスト処理言語
8 BASIC 1964年 思考を助ける対話型言語
9 LISP 1958年 関数型リスト処理言語
10 LOGO 1966年 思考方法を学ぶ教育用言語
11 FORTH 1971年 パワフルなスタック型言語

これらのプログラミング言語は、いろんな時代背景で生まれそのユーザーと共に進化してきました。例えば、FORTRAN言語は科学の強力な道具となり、COBOL言語はデータ処理ユーザーに支えられ、C言語はUNIXと共に普及し、LISP言語は人工知能(AI)研究と共に進歩してきました。

今回のブログでは、コンパイラー型の項番1から6までの「hello, world」を紹介します。

「hello, world」のルーツ

「hello, world」は、多くのプログラミング言語の入門書で最初にプログラムの例として説明しています。

それは、プログラムが単純で理解しやすいという理由に加えて、言語処理系が正しくインストールされていることの確認、および言語処理系の使用方法を説明するという目的もあります。

「hello, world」のツールは、1978年に出版したC言語のバイブル書『The C Programming Language』(K&R)だと言われています。
日本語版は、共立出版社から『プログラミング言語C』(1981年)、『プログラミング言語C 第2版 ANSI規格準拠』(1989年)が発売になっています。

The C hello

The C hello

ソースファイルをhello.cに作成して「cc hello.c」でコンパイルするとa.outという実行可能形式を作成するので、「a.out」というコマンドで走らせると「hello, world」と表示します。
他のシステムでは、このやり方と規則は異なるでしょう。周囲の専門家に確認してください。

『The C Programming Language』では、「hello, world」のソースプログラムをUNIXシステムで使用する方法を説明しています。

本ブログでは、DEC TOPS-20での流儀を説明します。

TOPS-20 C hello

TOPS-20 C hello

FORTRAN言語

EDITコマンドで、HELLO.FORというソースファイルを作成します。
FORTRANプログラムのファイルタイプは「.FOR」です。

FORTRAN言語

FORTRAN言語


C234567
      PROGRAM HELLO
      TYPE *,'hello, world'
      STOP
      END

EXECコマンドで、FORTRANをコンパイルして実行します。


@exec hello.for
FORTRAN: HELLO
HELLO
LINK:   Loading
[LNKXCT HELLO execution]
hello, world
CPU time 0.02   Elapsed time 0.03

COBOL言語

EDITコマンドで、HELLO.CBLというソースファイルを作成します。
COBOLプログラムのファイルタイプは「.CBL」です。

COBOL言語

COBOL言語


IDENTIFICATION DIVISION.
PROGRAM-ID.     HELLO.
ENVIRONMENT     DIVISION.
DATA            DIVISION.
WORKING-STORAGE SECTION.
01  DISP USAGE DISPLAY-7.
  10 FILLER     PIC X(12) VALUE "hello, world".
PROCEDURE       DIVISION.
    DISPLAY DISP.
    STOP RUN.

EXECコマンドで、COBOLをコンパイルして実行します。


@exec hello.cbl
COBOL:  HELLO   [HELLO.CBL]
LINK:   Loading
[LNKXCT HELLO execution]
hello, world

ALGOL言語

EDITコマンドで、HELLO.ALGというソースファイルを作成します。
ALGOLプログラムのファイルタイプは「.ALG」です。

ALGOL言語

ALGOL言語


begin
  write("hello, world");
end

EXECコマンドで、ALGOLをコンパイルして実行します。


@exec hello.alg
ALGOL: HELLO
LINK:   Loading
[LNKXCT HELLO execution]
hello, world

End of execution.

SIMULA言語

EDITコマンドで、HELLO.SIMというソースファイルを作成します。
SIMULAプログラムのファイルタイプは「.SIM」です。

SIMULA言語

SIMULA言語


begin
  OutText("hello, world");
  outimage;
end

EXECコマンドで、SIMULAをコンパイルして実行します。


@exec hello.sim
SIMULA:  HELLO
LINK:   Loading
[LNKXCT HELLO execution]
hello, world

End of SIMULA program execution.
CPU time: 0.01  Elapsed time: 0.01

PASCAL言語

EDITコマンドで、HELLO.PASというソースファイルを作成します。
PASCALプログラムのファイルタイプは「.PAS」です。

PASCAL言語

PASCAL言語


program HELLO(output);
begin
  writeln('hello, world');
end.

EXECコマンドで、PASCALをコンパイルして実行します。


@exec hello.pas
PASCAL: HELLO
LINK:   Loading
[LNKXCT HELLO execution]
OUTPUT     :
hello, world

C言語

EDITコマンドで、HELLO.Cというソースファイルを作成します。
Cプログラムのファイルタイプは「.C」です。

C言語

C言語


#include <stdio.h>
int main(void)
{
  printf("hello, world");
}

EXECコマンドで、Cをコンパイルして実行します。


@exec hello.c
KCC:    HELLO
HELLO.PRE.1
HELLO.FAI.1
FAIL:  HELLO
LINK:   Loading
[LNKXCT HELLO execution]
hello, world

TOPS-20の魅力

UNIXや多のほとんどのOSでは、プログラミング言語ごとのコンパイルコマンドがあり、コマンドを使い分けなければなりません。
しかし、TOPS-20はプログラム言語別のコンパイルコマンドを使わなくても、EXECUTEコマンドだけでコンパイル・リンク・実行をします。
ファイルタイプにより適切なコンパイラーを選択してくれます。

ソースプログラムを編集してビルド・実行を繰り返す場合は、ファイル名は省略可能です。
EDITコマンドとEXECUTEコマンドを使うだけですみます。しかも、コマンドは省略名で入力できますので、ED、EXと短く入力することが可能です。

ユーザーは短いキータッチでプログラミングに集中できます。TOPS-20の設計哲学である『システムを学びやすく使いやすいものにする』が活きています。

TOPS-20 プログラミング言語の解説書

「hello, world」を実行できたら、もう少し複雑なプログラムを書いてみませんか。

プログラミング言語の詳細な解説や言語処理系の使い方は、『超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界』という書籍を参考にしてください。

|d|i|g|i|t|a|l| DECSYSTEM 20
技術を極める知的冒険の旅へようこそ

 


プログラミング言語の世界の魅力は、この書籍だけでは語り尽くせません。TOPS-20ワールドは、ワクワクでいっぱいです。この本を出発点として、探究心と好奇心の扉を開いて『技術を極める知的冒険の旅』へ出発してください。

超マシン 関連情報

『超マシン誕生』と『超マシン復活』

超マシン復活 #1 DEC TOPS-20 レトロOSワールド

超マシン復活 #1 DEC TOPS-20 レトロOSワールド (無料サンプル)

超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界