09/18 『プログラミング言語 温故知新』が出ました

onkochisin001

  • 出版社:カットシステム
  • 定価:本体3,200円+税
  • 発行日:2014年10月10日
  • ISBN978-4-87783-328-2

数年前(2008年ごろ?)から書いていた単行本が,ようやく出版にこぎ着けました。時間掛けすぎですが,古いプログラミング言語の話なので,鮮度は落ちていません(という話じゃないだろう)。『プログラミング言語 温故知新』というタイトルでFortran,Lisp,COBOL,Algol,Pascal,Prolog,Smalltalkという7つの言語について入手方法・インストール方法から簡単な文法の説明,サンプルプログラムを掲載しています。

2011年にオーム社から発行され,話題になった本に『7つの言語 7つの世界』(Bruce A. Tate著)というのがあります。これをまねたんじゃないかと言われそうですが,『温故知新』の方が先に書き始めていました。それに『7つの・・・』はRuby,Io,Prolog,Scala,Erlang,Clojure,Haskellという,現在進行形のプログラミング言語を扱っています。文体もストーリー性があり,ぐっと読ませます。それに対して私の本は教科書みたいで面白みに欠けるかも。

なんでこの7つの言語を選んだか。ご存じの方は分かるように,『温故知新』で取り上げた言語は,今ではほとんど使われていません。Fortranはスーパーコンピュータ御用達だったり,COBOLはまだレガシーシステムで動いているとか,Lispもコンピュータサイエンスの世界ではけっこう使われていますが。AlgolやProlog,Smalltalkなどは解説書を手に入れるのも困難です。Prologの解説書などAIブームの80年代には数十冊並んでいたというのに,哀しいものです。結局,古書でどうにか探しました。

今,これらの言語を習得してもビジネスには結びつかないのです。私も30年近くソフトハウスを経営していますが,PrologやSmalltalkで開発したことは一度もありません。だけど,これらの言語はその時代時代に輝き,後の言語に大きな影響を与えました。

Fortranは言うまでも無く歴史上最初の汎用高級言語だし,COBOLは最初の業務系言語でした。CやJavaなど,現在の言語が「Algol系」と言われているように,Algolは最初の構造化言語でした。単なるノスタルジーではないのです。

いずれも,私がこの仕事を始めた頃には非常に高価だったり,そもそもパソコンでは使うことができなかったりといった,高嶺の花でもありました。

それが現在ではどれも無償のオープンソースとなり,Windows上で実行できるのです。日本語だって表示できます。ツールやアプリケーション,Webシステムなどを開発することは十分可能です。何より,現在のコンピュータプログラミングに影響を与えている源流を知ることで,今のプログラミングに何かヒントになるかもしれません。

25日配本開始で,早ければ26日ぐらいから書店店頭に並ぶそうです。私もすべての言語のエキスパート,プロパーではありません。「この言語はこんな書き方しないんだよ!ボケ」といったご批判,多々あると思いますがお待ちしています。

目次
はじめに
第1章Fortran
1.1 Fortran の歩み
1.2 Fortran の特徴
1.3 Windows で使えるFortran
1.4 tdm-gcc をインストールする
1.5 Fortran 用エディタを用意する
1.6 「Hello, World」を出力する
1.7 自由形式でプログラムを書く
1.8 四則演算をやってみよう
1.9 繰り返し処理を行うプログラム
1.10 ファイル操作と配列を使う
1.11 条件判定を行う
1.12 サブルーチンを使う
1.13 Fortran を学ぶには

第2章Lisp
2.1 Lisp の方言とCommon Lisp
2.2 Common Lisp,Emacs Lisp,Schme
2.3 Windows 用のCommon Lisp
2.4 Lisp の統合開発環境
2.5 Lispbox をインストールする
2.6 lispbox の簡単な使い方
2.7 Lisp の特徴
2.8 「Hello, World」を出力する
2.9 数値計算を行う
2.10 繰り返し処理を行うプログラム
2.11 ファイル操作と条件分岐を使う
2.12 Hanoi の塔

第3章COBOL
3.1 COBOL の歩み
3.2 COBOL の特徴
3.3 Windows で使えるCOBOL
3.4 OpenCOBOL をインストールする
3.5 COBOL プログラムの記述法
3.6 「Hello, World」を出力する
3.7 四則演算をやってみよう
3.8 繰り返し処理を行うプログラム
3.9 ファイル操作と条件判定を行う
3.10 COBOL を学ぶには

第4章 ALGOL
4.1 ALGOL の歩み
4.2 ALGOL の子孫たち
4.3 ALGOL の特徴
4.4 バッカス・ナウア記法とは
4.5 Windows で使えるALGOL
4.6 NASE A60 をインストールする
4.7 ALGOL 用のエディタ
4.8 「Hello World」を出力する
4.9 繰り返し処理を行うプログラム
4.10 再帰的呼び出しを使う
4.11 NASE A60 の起動オプション
4.12 ALGOL 60 の文法
4.13 関数
4.14 名前渡し(call-by-name)

第5章 Pascal
5.1 Pascal の特徴
5.2 Pascal に対する二つの反論
5.3 Windows で使えるPascal は
5.4 Pascal 用のエディタ
5.5 「Hello, World」を出力する
5.6 四則演算をやってみよう
5.7 繰り返し処理を行うプログラム
5.8 ファイル操作と配列を使う
5.9 case 文による条件分岐,手続きを使う
5.10 再帰的呼び出しを使う
5.11 Pascal を学ぶには

第6章 Prolog
6.1 Prolog の歩み
6.2 人工知能ブームとProlog
6.3 Windows で使えるProlog
6.4 Swi-Prolog をインストールする
6.5 Prolog 用IDE
6.6 「Hello World!」を出力する
6.7 三段論法とユニフィケーション
6.8 バックトラック
6.9 カットでバックトラックを禁止する
6.10 地図の塗り分け問題
6.11 Prlog のデータ
6.12 Prolog のプログラム
6.13 四則演算をやってみよう
6.14 親子関係を記述する
6.15 1 項関係
6.16 逆の関係を論理的言明で定義する
6.17 再帰的呼び出しを使う
6.18 リスト
6.19 再帰を使ってハノイの塔を解く

第7章 Smalltalk
7.1 DynaBook のための純粋オブジェクト言語
7.2 Pharo をインストールする
7.3 Pharo を使う
7.4 Smalltalk の文法
7.5 制御構造
7.6 Smalltalk でFizzBuzz

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください