本文へスキップ

《 A Engineer Den 》知的冒険の旅へ出かけよう

#2 プログラム言語 その世界【概要】 Super machine revival #2 DEC TOPS-20 Program language The World


概要

本書の位置づけ

『ラズパイで動く超マシン』シリーズは、DEC PDP-10マシンのTOPS-20 OS活用テクニックなどを 解説したシリーズ本で、本書はシリーズの第2巻となります。

本書は、DECのPDP-10マシンで動作する11種類のプログラミング言語について記載したものです。

ラズパイで動く超マシン シリーズ
巻数シリーズ 書籍
1 DEC TOPS-20 レトロOSワールド
2 DEC TOPS-20 プログラミング言語 その世界
3 DEC TOPS-20 太古のPDP-10 アセンブラの世界
4 DEC TOPS-20 伝説の8080エミュレーターとALTAIR
5 DEC TOPS-20 レトロなOSの散歩道
6 DEC TOPS-20 OS起動と停止のギミック
プログラミング言語の一覧
項番言語 開発時期 対話型一言説明
1 FORTRAN 1954年 No科学技術計算向け言語
2 COBOL 1959年 No基幹システムを支える言語
3 ALGOL 1958年 Noアルゴリズム記述言語
4 Simula 1967年 No初のオブジェクト指向言語
5 PASCAL 1970年 No計算機科学の教育用言語
6 C 1972年 Noシステム記述の標準言語
7 SNOBOL 1962年 No強力なテキスト処理言語
8 BASIC 1964年 Yes思考を助ける対話型言語
9 LISP 1958年 Yes関数型リスト処理言語
10 LOGO 1966年 Yes思考方法を学ぶ教育用言語
11 FORTH 1971年 Yesパワフルなスタック型言語

プログラミング言語別に、次に示す内容を書いています。

  • プログラミング言語の概要・特徴・沿革
  • プログラミング言語の解説
  • TOPS-20での実行方法
  • 例題によるサンプルコード

本書は、11冊の解説書をセットにしたような書籍ですが、それだけではありません。 同じ例題を11種類のプログラミング言語で記述しているので、 他の言語ではどのように記述するのかがわかります。

本書で説明する11種類のプログラミング言語を実際に使用した経験豊富な技術者は少ないでしょう。 しかし、あなたがこのうちひとつでも知っていたら、 同じ例題で記述したサンプルコードを読むことで知らなかった言語の理解が深まります。

あなたは、どのプログラミング言語を使ったことがありますか。 UNIXを使ってCでプログラミングした技術者は多いかと推測します。 ベテラン技術者は、FORTRANやCOBOLで多くのプログラムを開発してきたかと思います。 また、1980年代のパソコンブームの世代ならば、BASICでプログラミングした経験があるでしょう。 その一方で、ALGOLは名前を聞いたことあるけどどんな言語か知らないとか、Simulaなんて聞いたことないとか。


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

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

また、コンパイル型で実行速度が速い言語、対話環境のインタープリター型で効率良く開発できる言語、 手続き型言語や関数型言語など、それぞれのプログラミング言語に特徴があります。

本書では、11種類のプログラミング言語を取り上げています。 その言語が注目された昭和の時代には日本語で解説した書籍がありましたが、 現在は入手が困難です。そういう意味でも、本書は貴重な資料となります。

その言語を理解するには実際に使うことが早道です。 例題によるサンプルコードでは、3つの共通例題について11種類のプログラミング言語で記述しています。 従って、あるプログラミング言語を知らなくてもどのように記述すれば良いかが比較的簡単に理解できます。 また、例題プログラムは本書を見ながらタイプしなくても、QRコードにより簡単に入手可能です。

その反面、共通例題という形式にしたために残念ながらその言語の特徴を十分に紹介できませんでした。 例えば、COBOL言語のファイル入出力、SNOBOL言語の強力なストリング処理やパターンマッチ、 LOGO言語のタートルグラフィックス、LOGO言語とLISP言語のリスト処理などは、割愛しました。

TOPS-20の動作環境

TOPS-20はDECのPDP-10マシンで動作するOSです。 21世紀の現在、PDP-10マシンはもう現存していません。 そこで、TOPS-20 OSを復活するために、 Linuxマシンでエミュレーターを実行して本物のTOPS-20用バイナリーコードを実行します。

本書では、Panda TOPS-20 Distributionを利用してKLH10というPDP-10エミュレーターを使います。 そして、「TOPS-20 Monitor 7.1」を起動します。 Panda Distributionには、TOPS-20をインストールしたディスク・イメージが付いています。 しかも、本書で説明する11種類のプログラミング言語もインストール済みなので動作します。

拙著『超マシン復活#1 DEC TOPS-20 レトロOSワールド』に従って、 LinuxマシンにTOPS-20の動作環境を準備してください。 Linuxマシンは、Windowsで使用していた古いパソコンでも良いですし、 低価格の小型ボードコンピューターRaspberry Piでも良いです。 エミュレーターの導入方法やTOPS-20の起動・停止や基本的なコマンド操作などは、 『超マシン復活#1』を参照してください。 冒険の旅へ出発するための便利な使い方を掲載しています。

ソフトウェアの宝庫

偉大な先人が開発したTOPS-20は、歴史的に貴重なソフトウェアの宝庫です。

筆者は1976年から1977年の2年間に大学のDECSYSTEM-2040でTOPS-20を使いました。 タイムシェアリング(TSS)方式でターミナルに向かってひとりで独占して使っているかのごとく対話方式で使えました。 TOPS-20では、いろいろな言語処理系が動作していました。 プログラミング言語の講義の他に、自分でマニュアルを読んでBASICやSNOBOLを使って遊びました。

本書の主な対象読者

本書は、下図に示すような読者を対象としています。

  • ソフトウェア技術者をめざして情報技術を学ぶ学生
  • 経験の浅い新人の技術者
  • 経験豊富なベテラン技術者

情報技術を学ぶ学生は、 基本的なプログラミング言語を学んでいるところだと思います。 目的に向かってまっすぐに必要な技術を修得するのは大事なことです。 しかし、時には別の言語に寄り道してはどうでしょうか。 寄り道を楽しみながら、新しい世界をのぞいてください。 本書は、同じ例題について11種類のプログラミング言語で記述していますので、 別の言語だとどのように記述するのかが比較的わかりやすくなっています。

経験の浅い新人技術者は、 あるプログラミング言語での業務経験があると思います。 しかし、名前は知っているけれどプログラミング経験がない言語もあるでしょう。 気になる言語について、探究心と好奇心の扉を開いて、読み進んでください。 何かの気づきや発見があるでしょう。

経験豊富なベテラン技術者あなたは、 本書で説明するプログラミング言語のいくつかについて経験しているでしょう。 同じ例題について11種類のプログラムを比較してみることで、忘れていた何かを思い出したり、 何か新しい発見をしたりするでしょう。

本書の目的

本書の目的は、レトロなOSであるTOPS-20で動作する数々の プログラミング言語その世界に触れることです。 新しい言語を学ぶことは新しい世界を広げることになり、プログラマーとしての見識を広めてくれます。

TOPS-20は、昭和50年代に人気のあったレトロなOSです。 令和の時代になり昭和は遠く感じます。時代とともに技術は進化しています。 例えば、昭和の時代の公衆電話は今ではほとんど見かけません。 平成には持ち運びできる携帯電話に進化し、 令和の時代ではみんながスマートフォンを使うようになりました。 現在のスマートフォンの処理能力は、当時のPDP-10大型マシンをはるかに超えていると言われています。

ソフトウェア技術も進化していますが、その元になった古典的な言語を訪ねることで、新しい発見があるでしょう。 レトロなTOPS-20の世界に、コンピューターの歴史におけるあなたのランドマークをみつけて、 再び訪れてください。

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

ある技術者の書斎

探究心と好奇心の扉を開いて
知的冒険の旅に出かけよう