超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界 (無料サンプル)

『超マシン復活#2』の無料サンプル

『超マシン復活#2』の無料サンプル

 

無料サンプル

2020年3月、Amazon『超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界』の無料サンプルについて紹介します。

 

本屋で本を購入するときは「はじめに」と「目次」を確認し、パラパラとめくって読みやすい本かどうかを確認してから購入します。電子書籍の場合は、紙の本と違って中身の確認ができないので、本の紹介文などにより、購入するかどうかを判断することになります。

『超マシン復活#2』の無料サンプル送信

『超マシン復活#2』の無料サンプル送信

Amazonの電子書籍は、「無料サンプル」という機能があります。[無料サンプルを送信]というボタンを押すと、書籍の10%程度を無料でダウンロードすることができます。

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

超マシン復活 #2の無料サンプル

『超マシン復活 #2 DEC TOPS-20 プログラム言語 その世界』の無料サンプルは、「はじめに」、「目次」、「第1章 超マシン復活」、「第2章 Let’sプログラミング」の途中までが含まれています。

この本は、どんな内容か無料サンプルをダウンロードしてみてください。

 

 

 

『超マシン復活#2』タイトルページ

『超マシン復活#2』タイトルページ

 


以下、本書から抜粋します。


はじめに

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

本書の位置づけ

本書は、レトロなOS TOPS-20で動作する11種類のプログラミング言語とその世界について記載したもので、超マシン シリーズの第2作となります。

本書について

本書では、表1に示すプログラミング言語を解説します。

表1: プログラミング言語の一覧
項番 言語 開発時期 対話型 一言説明
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種類のプログラミング言語を実際に使用した経験豊富な技術者は少ないでしょう。しかし、あなたがこのうちひとつでも知っていたら、同じ例題で記述したサンプルコードを読むことで知らなかった言語の理解が深まります。

あなたは、どのプログラミング言語を使ったことがありますか。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ワールドは、ワクワクでいっぱいです。この本を出発点として、探究心と好奇心の扉を開いて技術を極める知的冒険の旅へ出発してください。

本書の構成

本書は下記に示す章から構成しています。第1章と第2章を読んだ後は、順に読み進めなくても良いです。第3章から第13章は、気になったプログラミング言語の章を読んでください。プログラミング言語の説明だけではなく、所々にコラムをはさんでいます。コラムは、ちょっとした疑問、豆知識、こぼれ話などを書いていますので、読み物としても楽しめるでしょう。

第1章「超マシン復活」では、超マシンTOPS-20の復活について記述します。TOPS-20は、DECがPDP-10マシン向けに開発した基本ソフト(OS)で、Linuxで動作するKN10エミュレーターにより復活します。

第2章「Let’sプログラミング」では、『技術を極める知的冒険の旅』に出るために必要な予備知識を解説します。また、本書で解説するプログラム例題について説明します。

第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言語とその世界を紹介します。小さな核に拡張性を備えたパワフルな言語です。

付録A「マニュアル」では、DECが発行した貴重なマニュアル(英文)を公開しているサイトへのリンクを示しています。

付録B「エディターの操作」では、EMACSとラインエディターの操作方法について説明しています。

付録C「TOPS-20起動と停止」では、TOPS-20のブートアップ起動、ログイン、ログアウト、シャットダウン停止について説明しています。

付録D「アカウント登録」では、TOPS-20のアカウント登録について説明しています。

付録E「端末出力の制御」では、端末出力の制御について説明しています。

付録F「例題プログラムのQRコード」では、例題プログラムのソースコードを入手する方法について説明しています。

目次

はじめに
第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コード
おわりに
参考文献
索引
改訂履歴
著者紹介
著者書籍 一覧
奥付