TOPS-20 プログラミング言語の解説書
2020年3月、Amazonから『超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界』という本を出版しました。
技術を極める知的冒険の旅へようこそ
本書は、レトロなOS TOPS-20で動作する11種類のプログラミング言語とその世界について記載したもので、超マシン シリーズの第2作となります。
項番 | 言語 | 開発時期 | 対話型 | 一言説明 |
---|---|---|---|---|
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は、DECのPDP-10マシンで動作するOSで、1970年代から1980年代にかけてUNIXと共に人気のあったOSです。従って、TOPS-20で動作する言語処理系は半世紀以上前に生まれた言語であり、21世紀の現在では使われていない言語もあります。
本書で紹介するプログラム言語は、いろんな時代背景で生まれそのユーザーと共に進化してきました。例えば、FORTRAN言語は科学の強力な道具となり、COBOL言語はデータ処理ユーザーに支えられ、C言語はUNIXと共に普及し、LISP言語は人工知能(AI)研究と共に進歩してきました。
本書では、11種類のプログラミング言語を取り上げています。その言語が注目された昭和の時代には日本語で解説した書籍がありましたが、現在は入手が困難です。そういう意味でも、本書は貴重な資料となります。
その言語を理解するには実際に使うことが早道です。例題によるサンプルコードでは、3つの共通例題について11種類のプログラミング言語で記述しています。従って、あるプログラミング言語を知らなくてもどのように記述すれば良いかが比較的簡単に理解できます。また、例題プログラムは本書を見ながらタイプしなくても、QRコードにより簡単に入手可能です。
プログラミング言語の世界の魅力は、本書だけでは語り尽くせません。TOPS-20ワールドは、ワクワクでいっぱいです。この本を出発点として、探究心と好奇心の扉を開いて技術を極める知的冒険の旅へ出発してください。
ソフトウェアの宝庫
偉大な先人が開発したTOPS-20は、歴史的に貴重なソフトウェアの宝庫です。
筆者は1976年から1977年の2年間に大学のDECSYSTEM-2040でTOPS-20を使いました。タイムシェアリング(TSS)方式でターミナルに向かってひとりで独占して使っているかのごとく対話方式で使えました。TOPS-20では、いろいろな言語処理系が動作していました。プログラミング言語の講義の他に、自分でマニュアルを読んでBASICやSNOBOLを使って遊びました。
本書のサンプル
本書の内容を紹介します。
第1章 超マシン復活
超マシンTOPS-20の復活について記述します。TOPS-20は、DECがPDP-10マシン向けに開発した基本ソフト(OS)で、Linuxで動作するKN10エミュレーターにより復活します。
第2章 Let’sプログラミング
『技術を極める知的冒険の旅』に出るために必要な予備知識を解説します。
また、本書で解説するプログラム例題について説明します。
例題A:時刻のAM/PM変換
例題B:斜方投射の軌道
例題C:階乗の計算
第3章 FORTRAN言語
史上初の高級言語であり科学技術計算を得意とするFORTRAN言語とその世界を紹介します。科学技術計算の世界では、重要な言語です。
第4章 COBOL言語
ビジネスの分野で使われて事務処理が得意なCOBOL言語とその世界を紹介します。企業の基幹システム構築に利用されています。
第5章 ALGOL言語
アルゴリズム(論理的な思考)の記述を得意とするALGOL言語とその世界を紹介します。アカデミックな世界で使われた先駆的な言語です。
第6章 SIMULA言語
オブジェクト指向という概念を生み出したSimula言語とその世界を紹介します。ALGOLに先進的な概念を組み込んだ革新的な言語です。
第7章 PASCAL言語
豊富なデータ構造と構造化した制御構造を持つPASCAL言語とその世界を紹介します。プログラミングの教育を目的とした読みやすい言語です。
第8章 C言語
高水準から低水準までカバーした万能ツールであるC言語とその世界を紹介します。アプリ、システム記述、組み込みシステムなどで使われる汎用性が高い言語です。
第9章 SNOBOL言語
強力なパターンマッチと高度なテキスト処理によるSNOBOL言語とその世界を紹介します。パターンプログラミングという魔法の言語です。
第10章 BASIC言語
思考を助ける強力な道具であるBASIC言語とその世界を紹介します。対話的にプログラミングできるので初心者でも使える言語です。
第11章 LISP言語
関数型言語でリスト処理の得意なLISP言語とその世界を紹介します。数学的な記法を実行可能にした言語です。
第12章 LOGO言語
体験と発見から思考方法を学ぶ教育用のLOGO言語とその世界を紹介します。使いやすくて非常に強力な言語で、思考を大きく増幅する道具です。
第13章 FORTH言語
仮想スタック・マシンで動作する一風変わったFORTH言語とその世界を紹介します。小さな核に拡張性を備えたパワフルな言語です。
付録F 例題プログラムのQRコード
本書のような電子書籍では、掲載したプログラムコードのコピペは困難です。
読者の皆さんが手軽に例題のプログラムを試せるように、プログラムコードをQRコードにしました。
超マシン復活 #2 コラム
本書は、プログラミング言語の説明だけではなく、所々にコラムをはさんでいます。コラムは、ちょっとした疑問、豆知識、こぼれ話などを書いていますので、読み物としても楽しめるでしょう。
【コラム】バロースとALGOL
バロースの大型機B5000は、スタックマシン型命令セットを採用して高級言語「ALGOL 60」向けに最適化しました。
【コラム】BNF記法とは
バッカス・ナウア記法(BNF:Backus-Naur Form)とは、ジョン・バッカス(John Backus)とピーター・ナウア(Peter Naur)がALGOL60の文法定義のために考案したメタ言語です。
【コラム】1バイトは何ビットか
あまり考えたことが無いと思いますが、1バイトは何ビットでしょうか? そうです。バイトとは、1文字のビット数を表す単位です。
英数字(26+26+10文字)と記号を定義したASCIIコードで7ビット必要です。さらに、半角カナを追加したANKコードでは8ビット必要になります。
しかし、昔のコンピューターには、1バイトが6ビットや9ビットのマシンもありました。これらのマシンは、ワードサイズをいくつかに分割してバイトとしていました。本書で説明しているDECのPDP-10は、36ビットワードマシンなので、1ワードを6ビット×6文字や9ビット×4文字に分割して扱っていました。
【コラム】構文グラフとは
PASCALは、構文グラフで文法を定義しています。『アルゴリズム+データ構造=プログラム』[19]という書籍の付録に記載があります。
【コラム】DECとLISP
DECはLISPと深い関わりがあります。
なんとLISPの創案者であるマッカーシーがPDP-6マシン開発プロジェクトに参画していたのです。
【コラム】LISP S式とM式
現在のLISPプログラムは、S式(Symbolic-expression)という括弧が多く読みづらい表記法を使っています。しかし、ジョン・マッカーシーが最初にLISPを考案したときは、M式(Meta-expression)という表記法を使っており、S式はリスト構造を表現するデータ形式でした。
では、なぜLISPはS式で書くようになったのでしょうか。
【コラム】IBM 704の特別な命令
LISPを初めて実装したIBM 704は、36ビットワードマシンでした。そして、LISPの2つのポインターをAddressフィールドとDecrementフィールドに格納するよう実装しました。
【コラム】BBNとLOGO
BBNテクノロジーズは、MITで教授をしていたレオ・リロイ・ベラネック(Leo Leroy Beranek)らが設立した研究機関で、コンピューターサイエンス研究と革新的なアプリケーションにおいて重要な技術を創出しました。
【コラム】バロースとFORTH
FORTHを設計したMoore氏は、バロース*7の大型機B5500を使った経験からスタックアーキテクチャーに強い影響を受けました。
超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界
『超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界』は、ラズパイで動く超マシンシリーズ2です。
シリーズ | 書 名 |
---|---|
1 | 超マシン復活#1 DEC TOPS-20 レトロOSワールド |
2 | 超マシン復活#2 DEC TOPS-20 プログラミング言語 その世界 |
本の情報
- 超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界
- 2020年3月25日
- フォーマット: Kindle版
- ファイルサイズ: 55157 KB
- 紙の本の長さ: 1082ページ
- 出版社: 私の計算機科学研究
- 販売: Amazon Services International, Inc.
目次
はじめに
第1章 超マシン復活
1.1 DEC TOPS-20の世界
1.2 エミュレーターで復活
1.3 システム設定
1.4 TOPS-20コマンド
1.5 知的冒険の旅
第2章 Let’sプログラミング
2.1 プログラミング言語
2.2 プログラムの宝庫
2.3 ビルドと実行
2.4 引数伝達方式
2.5 論理演算
2.6 プログラミング 例題
2.6.1 例題A:時刻のAM/PM変換
2.6.2 例題B:斜方投射の軌道
2.6.3 例題C:階乗の計算
第3章 FORTRAN言語
3.1 科学技術計算向け言語
3.2 FORTRAN 解説
3.3 FORTRAN の実行
3.4 FORTRAN の例題
第4章 COBOL言語
4.1 基幹システムを支える言語
4.2 COBOL 解説
4.3 COBOL の実行
4.4 COBOL の例題
第5章 ALGOL言語
5.1 アルゴリズム記述言語
バロースとALGOL
BNF記法とは
5.2 ALGOL 解説
1バイトは何ビットか
5.3 ALGOL の実行
5.4 ALGOL の例題
第6章 SIMULA言語
6.1 初のオブジェクト指向言語
6.2 SIMULA 解説
6.3 SIMULA の実行
6.4 SIMULA の例題
第7章 PASCAL言語
7.1 計算機科学の教育用言語
構文グラフとは
7.2 PASCAL 解説
7.3 PASCAL の実行
7.4 PASCAL の例題
第8章 C言語
8.1 システム記述の標準言語
8.2 C 解説
8.3 C の実行
8.4 C の例題
第9章 SNOBOL言語
9.1 強力なテキスト処理言語
9.2 SNOBOL 解説
9.3 SNOBOL の実行
9.4 SNOBOL の例題
第10章 BASIC言語
10.1 思考を助ける対話型言語
10.2 BASIC 解説
10.3 BASIC の実行
10.4 BASIC の例題
第11章 LISP言語
11.1 関数型リスト処理言語
DECとLISP
11.2 LISP 解説
LISP S式とM式
11.3 LISP の実行
11.4 LISP の例題
11.5 CARとCDR ルーツ探訪
IBM 704の特別な命令
第12章 LOGO言語
12.1 思考方法を学ぶ教育用言語
BBNとLOGO
12.2 LOGO 解説
演算子記法と関数型言語
12.3 LOGO の実行
12.4 LOGO の例題
第13章 FORTH言語
13.1 パワフルなスタック型言語
バロースとFORTH
13.2 FORTH 解説
13.3 FORTH の実行
13.4 FORTH の例題
13.5 FORTHのギミック
付録A マニュアル
付録B エディターの操作
付録C TOPS-20起動と停止
付録D アカウント登録
付録E 端末出力の制御
付録F 例題プログラムのQRコード
おわりに
参考文献
索引
改訂履歴
著者紹介
著者書籍 一覧
奥付
内容紹介
アマゾンの内容紹介を下記に示します。
プログラミング言語別に、次に示す内容を書いています。
* プログラミング言語の概要・特徴・沿革
* プログラミング言語の解説
* TOPS-20での実行方法
* 例題によるサンプルコード本書は、11冊の解説書をセットにしたような書籍ですが、
それだけではありません。
同じ例題を11種類のプログラミング言語で記述しているので、
他の言語ではどのように記述するのかがわかります。本書では、11種類のプログラミング言語を取り上げています。
その言語を理解するには実際に使うことが早道です。
例題によるサンプルコードでは、3つの共通例題について
11種類のプログラミング言語で記述しています。
従って、あるプログラミング言語を知らなくても
どのように記述すれば良いかが比較的簡単に理解できます。
また、例題プログラムは本書を見ながらタイプしなくても、
QRコードにより簡単に入手可能です。■ TOPS-20の動作環境
本書では、Panda TOPS-20 Distributionを利用して
KLH10というPDP-10エミュレーターを使います。
そして、「TOPS-20 Monitor 7.1」を起動します。
Panda Distributionには、TOPS-20をインストールした
ディスク・イメージが付いています。
しかも、本書で説明する11種類のプログラミング言語も
インストール済みなので動作します。■ 本書の主な対象読者
☆ ソフトウェア技術者をめざして情報技術を学ぶ学生
☆ 経験の浅い新人の技術者
☆ 経験豊富なベテラン技術者■本書の目的
本書の目的は、レトロなOSであるTOPS-20で動作する
数々のプログラミング言語とその世界に触れることです。
新しい言語を学ぶことは新しい世界を広げることになり、
プログラマーとしての見識を広めてくれます。プログラミング言語の世界の魅力は、本書だけでは
語り尽くせません。TOPS-20ワールドは、ワクワクでいっぱいです。
この本を出発点として、探究心と好奇心の扉を開いて
『技術を極める知的冒険の旅』へ出発してください。
超マシン 関連情報