コルメン本
アルゴリズム・イントロダクション 第3版 総合版
14000円だしページ数が1000超えだしなんじゃそりゃあと思ったら
原著丸ごとなのね。ではこれまでに出た二巻の立場は…
近代科学社
本書は,原著の第1〜35章,および付録A〜Dまでの完訳総合版である.また巻末の索引も圧巻で,和(英)‐英(和)という
構成により,「数理用語辞典」としてもまことに有用である.
アルゴリズムイントロダクション 第3版 総合版
[丸善出版] 旧・ピアソン桐原より翻訳刊行されていた書籍を、一部再出版することになりました。
「デザインのためのデザイン」は漏れたかー。
「人月の神話」、「珠玉のプログラミング」は復活と。
History of FORTRAN and FORTRAN II — Software Preservation Group
に、
History of FORTRAN and FORTRAN II — Software Preservation Group
ource code
FORTRAN II compiler source listing. Smithsonian Institution - National Museum of American History, Catalog
number 304,349. Originally donated by Peter Zilahy Ingerman. Assembly language (SAP) listing of 4K and 8K
drum versions of the final IBM 704 FORTRAN II compiler. Three volumes. Pages I-III of Volume I are a table
of contents. Digital scan is Computer History Museum Lot X3435.2006.
というのが。
で、こっちはなんだろう II ってついてないし。
History of FORTRAN and FORTRAN II — Software Preservation Group
Microfiche with "specifications, flowcharts, mathematical analysis and source code for FORTRAN". Two sets,
each consisting of 23 microfiche of size 5.8"x4.1" (14.7cm x 10.5cm), each microfiche containing 50
images of size .51"x.58" (1.3cm x 1.5cm). Property of the family of Roy Nutt.
300 dpi scan of microfiche #1: JPEG
2400 dpi scan of image 6 of microfiche #1: JPEG
For background, see the Dusty Decks article As you sow so shall you reap.
リンク先の blog 記事も見るとやっぱりIIのものっぽい?
さらに
An Interview with Bob Hughes
には面白そうな話題がごろごろと。
An Interview with Bob Hughes
GAM: When you went to the FORTRAN project, did you have a specific assignment or was it just to go back there
and tell them about the kind large codes we were developing?
BH: No, no, no. Each person in the FORTRAN development group had a specific assignment. Holland Herrick, for
example, was in charge of all tape I/O; that was his baby. To backtrack, FORTRAN was a table driven scheme.
GAM: Oh?
BH: Many tables. TEIFNO was a typical table of IF and GOTO entries. "TEIFNO" stood for the Table of
External Form of the IF Number versus its internal form. There were also "close-up" tables to close
everything when finished. There were just tables, tables, tables. Later on, they discovered that the way to
compile really fast was to collect everything and assemble it in a single symbol table. But, in those days, we
were still learning how to walk and so, initially, it was a table-driven scheme.
GAM: Also, on your first swing back there, you started the idea that if a variable's name began with i, j, k, l,
m or n, it's an integer.
BH: Yes, and for all other letters, it was a floating point quantity by default. Well, later on and when we
started doing our own compilers, all those features were added. Different groups came up with different ideas
when produced the second version of FORTRAN. I think even IBM allowed you to override the i, j, k, l, m, n
convention.
BH: Another was mixed-mode arithmetic. In the first FORTRAN, you couldn't do mixed-mode arithmetic. An
expression had to evaluate to be a real or an integer. We got around those hurdles by allowing the programmer
to declare any main variable to be integer or real. There was quite a bit of awkwardness in the original
FORTRAN. Using numbers for statement numbers. You had to number your statements, as opposed to allowing a
lphanumeric statement numbers. There were a number of other embellishments, such as IF-THEN-ELSE logic, In the
1970's, structured programs tried to avoid the use of statement labels. I don't know if the IF-THEN-ELSE logic
was ever put into the IBM FORTRAN. We put it into ours.
GAM: I think an early real mistake in their first FORTAN, which induced us to have bad habits, was the three-way
branching IF statement. That wasn't very good.
BH: Oh, sure. Then they introduced IFs where you could have two branches. Less than or greater than.
GAM: Well, true or false.
BH: Yes, it was a logical step.
The FORTRAN Builders
おお、なんか並んでいるタイトルがすごいぞ
Index to Bemer's Computer History Vignettes
ということでこの話は続く(かどうかは気分次第)
texinfoファイル眺めてたら、参照する環境変数に結構見慣れないものが
@node Other Environment Variables
@subsection Other Environment Variables
A number of other environment variables affect @command{gawk}'s
behavior, but they are more specialized. Those in the following
list are meant to be used by regular users.
@table @env
@item POSIXLY_CORRECT
Causes @command{gawk} to switch POSIX compatibility
mode, disabling all traditional and GNU extensions.
@xref{Options}.
@item GAWK_SOCK_RETRIES
Controls the number of time @command{gawk} will attempt to
retry a two-way TCP/IP (socket) connection before giving up.
@xref{TCP/IP Networking}.
@item GAWK_MSEC_SLEEP
Specifies the interval between connection retries,
in milliseconds. On systems that do not support
the @code{usleep()} system call,
the value is rounded up to an integral number of seconds.
@item GAWK_READ_TIMEOUT
Specifies the time, in milliseconds, for @command{gawk} to
wait for input before returning with an error.
@xref{Read Timeout}.
@end table
The environment variables in the following list are meant
for use by the @command{gawk} developers for testing and tuning.
They are subject to change. The variables are:
@table @env
@item AVG_CHAIN_MAX
The average number of items @command{gawk} will maintain on a
hash chain for managing arrays.
@item AWK_HASH
If this variable exists with a value of @samp{gst}, @command{gawk}
will switch to using the hash function from GNU Smalltalk for
managing arrays.
This function may be marginally faster than the standard function.
@item AWKREADFUNC
If this variable exists, @command{gawk} switches to reading source
files one line at a time, instead of reading in blocks. This exists
for debugging problems on filesystems on non-POSIX operating systems
where I/O is performed in records, not in blocks.
@item GAWK_NO_DFA
If this variable exists, @command{gawk} does not use the DFA regexp matcher
for ``does it match'' kinds of tests. This can cause @command{gawk}
to be slower. Its purpose is to help isolate differences between the
two regexp matchers that @command{gawk} uses internally. (There aren't
supposed to be differences, but occasionally theory and practice don't
coordinate with each other.)
@item GAWK_STACKSIZE
This specifies the amount by which @command{gawk} should grow its
internal evaluation stack, when needed.
@item TIDYMEM
If this variable exists, @command{gawk} uses the @code{mtrace()} library
calls from GNU LIBC to help track down possible memory leaks.
@end table
この説明だけ読んでもピンとこないのがいくつかあるな。
ソースも見るか。