ときどきの雑記帖 RE* (新南口)
猫の散歩引き受けます
雨
梅雨明けしてからまーよく降ること。
たたき
とある深夜ドラマを観ていたら 「たたき台」を表しているであろう使い方の 「たたき」が出てきて、 この言葉某社ローカルじゃなかったんだ…と思ったり。
(前にも「たたき」ネタは書いていたような気もする…)
超蠅量級
南武線社内のディスプレイで流れる多言語ニュースで、 「超蠅量級」という記述を見かけた。 ボクシングの世界戦のニュースだったので 「スーパーフライ級」のことだろうかと思い調べてみた。
超蠅量級:超蠅量級,拳擊比賽體重的一個級別,對應體重為(115磅/52. -百科知識中文網
職業拳擊分為18個級別,18個級別又可歸類為7項:重量級、中量級、輕量級、羽量級、雛量級、蠅量級、草量級。草量級是最輕的
とあるのは順に
- ヘビー級
- ミドル級
- ライト級
- フェザー級
- バンタム級
- フライ級
- ストロー級
だろうか? ウェルター級が見当たらないのと、ストロー級はミニマム級と改称されていたような気がする。
別のページ 中量級:中量級(middleweight),體育運動中的等級,體重比次重 -百科知識中文網 を見ると17階級の名称が書かれていて、それによればこう。
職業拳擊比賽的17個級別:
- 重量級(201磅以上/91.25公斤級以上)
- 次重量級(200磅/90.8公斤級)
- 輕重量級(175磅/79.45公斤級)
- 超中量級(168磅/76.27公斤級)
- 中量級(160磅/72.64公斤級)
- 超次中量級(154磅/69.91公斤級)
- 次中量級(147磅/66.74公斤級)
- 國中量級/超輕量級(140磅/63.56公斤級)
- 輕量級(135磅/61.29公斤級)
- 次輕量級/超羽量級(130磅/59.02公斤級)
- 羽量級(126磅/57.2公斤級)
- 超最輕量級(122磅/55公斤級)
- 最輕量級(118磅/53.57公斤級)
- 超次最輕量級(115磅/52.21公斤級)
- 次最輕量級/蠅量級(112磅/50.84公斤級)
- 最次輕量級(108磅/49.03公斤級)
- 迷你輕量級(105磅/48公斤級)
こっちだと一番軽いクラスが「ミニマム」っぽい名前っすな。 そう言えば今「スーパー××」級と言っている階級って 昔は「ジュニア○○」級って呼んでいたけど いつ頃変わったんだろうかと思ったので調べたら
団体によっては今でもそうなのか!
ところで件のニュース、「チャンピオン」のことを「拳王」って書いてたような気がする…
ビデオシーバー
ベルトのデザインが気になる(引っかかる)。
- ウルトラセブン「ビデオシーバー」が腕時計に - 期間・数量限定で先行予約販売 | マイナビニュース
- 『ウルトラセブン』少年たちが憧れた夢のアイテム「ビデオシーバー」がデジタルウォッチに!作中のイメージを忠実に再現! | 電撃ホビーウェブ
- 「キリヤマだ!」ウルトラ警備隊のビデオシーバーが腕時計に! | アニメージュプラス - アニメ・声優・特撮・漫画のニュース発信!
時刻表示の文字が小さい気がするけど 現物を見ないと判断できないかもなあ。
Lessons from Writing a Compiler
コンパイラを自作して学んだこと。コンパイラ開発は二次元の表を埋める作業と考えることができる。これらは通常、上から埋める (waterfall) のが一般的だが、こうすると開発はつらい。別の方法として、左から埋めていく (vertical) 戦略がある。https://t.co/zNRi19uWFU
— 新山祐介 (Yusuke Shinyama) (@mootastic) July 15, 2022
というツイートから Lessons from Writing a Compiler を読みに行くと イキナリ
The prototypical compilers textbook is:
- 600 pages on parsing theory.
- Three pages of type-checking a first-order type system like C.
- Zero pages on storing and checking the correctness of declarations (the “symbol table”).
- Zero pages on the compilation model, and efficiently implementing separate compilation.
- 450 pages on optimization and code generation.
とあって大笑い(確かにそうだ😄)
ところで新山さんのツイートにある 「二次元の表」というのはこんなの (markdownで書くの辛い…)で
Modules | Constants | Type System | Type Declarations | Function Declarations | Class Declarations | |
Parser | ||||||
AST | ||||||
Semantics Analysis | ||||||
Optimizer | ||||||
Code Generation |
確かに上の段から順に下の段に、すべての列を…という進め方は辛いか。
One minute overtime can destroy the best of lectures.
もうひとつ新山さんのツイートから
(数学者として) 知っていたらよかった10のこと:
— 新山祐介 (Yusuke Shinyama) (@mootastic) July 15, 2022
- 授業は1分たりとも時間オーバーさせるな
- 1つの授業では1つのことしか言うな
- 同じ結果を何度も(別の人々に)発表せよ
- 人々が記憶に残るのは自分の説明だ
- 数学者の使う技はほんの数個である
- 謝辞は惜しみなく与えよ
…https://t.co/x6ex0LwwyZ
Ten Lessons I wish I had been Taught を見ると
MIT, April 20 , 1996 on the occasion of the Rotafest
とあるので書かれたのはずいぶんと前のもの?
それはさておき、リストでは確かに
- Lecturing
- Blackboard Technique
- Publish the same results several times.
- You are more likely to be remembered by your expository work.
- Every mathematician has only a few tricks.
- Do not worry about your mistakes.
- Use the Feynmann method.
- Give lavish acknowledgments.
- Write informative introductions
- Be prepared for old age.
と10項目挙げられているのだけど さらに細かく書かれているものもあって、 新山さんのツイートで挙げられているものは 上記のリストからではなかったり。
たとえば「授業は1分たりとも時間オーバーさせるな」は
1 Lecturing
The following four requirements of a good lecture do not seem to be altogether obvious, judging from the mathematics lectures I have been listening to for the past forty-six years.
の小項目
b. Never run overtime Running overtime is the one unforgivable error a lecturer can make. After fifty minutes (one microcentury as von Neumann used to say) everybody’s attention will turn elsewhere even if we are trying to prove the Riemann hypothesis. One minute overtime can destroy the best of lectures.
の最後からで、 「1つの授業では1つのことしか言うな」は
a. Every lecture should make only one main point The German philosopher G. W. F. Hegel wrote that any philosopher who uses the word “and” too often cannot be a good philosopher. I think he was right, at least insofar as lecturing goes. Every lecture should state one main point and repeat it over and over, like a theme with variations. An audience is like a herd of cows, moving slowly in the direction they are being driven towards. If we make one point, we have a good chance that the audience will take the right direction; if we make several points, then the cows will scatter all over the field. The audience will lose interest and everyone will go back to the thoughts they interrupted in order to come to our lecture.
からかな。
about which
名著「UNIXという考え方 - UNIX哲学」は本当に名著なのか? 〜 著者のガンカーズは何者なのかとことん調べてみた - Qiita
コメント欄の雰囲気がとげとげしい。が、それはさておき
オープンソース という用語は 1995 年までには一般的に使われていたようですが、1980 年代に使われていたという記録もあるようです。
という文章にちょっと引っかかった。
esr
Christine Peterson - Wikipedia
が言うより前にそういう単語(term)は使われていたというのはまあそうだろうし
The term “open source,” as related to “free” software, was in common use by 1995.[14] Other recollection have it in use during the 1980s.[15]
History of free and open-source software - Wikipedia
The term “open source,” as related to free software, was in common use by 1995.[35] Other recollection have it in use during the 1980s.[36]
ともあるんだけど、common use
というのは?🤔
(もちろん自分の観測範囲の問題だという線は大いにありうる。ただ80年代の方は「別物」だろう)
- Free software - Wikipedia
- Open-source software - Wikipedia
- Open-source-software movement - Wikipedia
ところで
[B! unix] 名著「UNIXという考え方 - UNIX哲学」は本当に名著なのか? 〜 著者のガンカーズは何者なのかとことん調べてみた - Qiita
“The preceding list contains tenets about which UNIX developers are dogmatic.” の訳出を間違っている。 The preceding list contains tenets. と UNIX developers are dogmatic about (the tenets). だから「ここまでの項目はUNIX開発者が信奉している教義を含む」
英語ムズカシイネ。
前置詞+whichはまあ。
UNIX: A History and a Memoir
日本語訳とな。
ブライアン・カーニハンが書いた UNIX の歴史の本、気になっていたんだけど、日本語に翻訳中と書いてるのに気づいた。いつ出版だろう?楽しみすぎる
— Koichi Nakashima (@ko1nksm) July 14, 2022
UNIX: A History and a Memoirhttps://t.co/ZHRrloR6Ejhttps://t.co/BEWX1VwJCy
> Translations into Japanese and other languages are underway.
確かに
Brian Kernighan’s Home Page
にはTranslations into Japanese and other languages are underway.
とあるな。
実はこの本、最初の方だけ読んで積んでる😓のだけど
2019年10月の発売だったか。 出たあとそれほど時間が経たないうちに買ってたはずだから 2年半くらい積んでる?😱
FORTRAN Compiler on IBM 704
ソースコードを眺めていたらとある定数が目についた。
BETAD2 OCT 3077775 3*2**18+(-3) -ARITHMETIC. 4F10365
なんだろうこの数値?
+(-3)
という書き方が気になるけど
とりあえずそのまま計算してみても
>ruby -e 'puts (3*2**18-3).to_s(8)'
2777775
>ruby -e 'puts (3*2**18).to_s(8)'
3000000
>ruby -e 'puts (2**18).to_s(8)'
1000000
となるのでしばらく悩んだ。
+(-3)
ってひょっとして
カッコ内は15ビットの数値で、
こういう値
-1 | 77777 |
-2 | 77776 |
-3 | 77775 |
を表現している? (2の補数を使った15ビット長の整数すな)
とすると
>ruby -e 'puts (3*2**18+077775).to_s(8)'
3077775
ふむ。
似たようなものに
BETAD1 OCT 77775077775 (-3(*2**18+(-3) -ARITHMETIC. 4F10365
というのもあるけど、こっちは…?
追記
こっちもこっちで悩んだけどたぶんこうだ。
>ruby -e 'puts (077775*2**18+077775).to_s(8)'
77775077775
式の最初の-3
も077775
にしてそれに2**18
を乗じる。
その積にもうひとつの077775
(-3)を加えると
コード上の数値が得られる。
Wheeler jump
ところで 704ではサブルーチンの呼び出しでWheeler jump を使っているのでは?と
思っていたのだけど(自己書き換えっぽいコードが散見されるし)、
インデックスレジスターに 「次の命令のアドレス」 現在の命令のアドレスを保存して
指定された番地に飛ぶという命令(TSX)がちゃんとあった。
デビッド・ホイーラーはこのプロジェクトで世界初の計算機科学のPhDを取得したが、サブルーチンの概念の発明者とされている。 ルーチンにジャンプする命令のあるアドレスに1を加えたアドレスをレジスタに格納した状態でルーチンにジャンプする (これを Wheeler jump と呼ぶ)。サブルーチン側はその渡されたアドレスで最後尾のジャンプ命令のアドレス部を書き換える。 この書き換えをサブルーチンの先頭で行えば、さらに別のサブルーチンコールを呼ぶ、入れ子を実現することもできる (再帰はできない、ということに注意)。
TSX
ということでソースコードからTSX
を検索するとたくさん見つかる。
その大部分は
TSX DIAG,4 * EOF ERROR - GO TO DIAGNOSTIC.
TSX DIAG,4 * 5 ATTEMPTS FAILE0 - GO TO DIAG.
TSX 5PS1R,4 * GO READ ASSIGN CONSTANTS.
TSX 5PS2C,4 * GO COMPILE ASSIGN CONSTANTS.
TSX 5PS1R,4 * GO READ FIXCON INTO BUFFER.
TSX 5PS2C,4 * GO COMPILE FIXCON ENTRIES.
TSX 5PS1R,4 * GO READ FORSUB INTO BUFFER.
TSX 5PS3D1,4 * GO WRITE FORSUB ONTO DRUM3.
のようにインデックスレジスター4を使っているのだけど、 ちらほら
D9 TSX SUB1,2 WRITE OFF ON F6A04090
TSX SUB1,2 GO WRITE A CIT RECORD ON TAPE 4. F6A04660
TSX SUB1,2 F6A04800
E13 TSX SUB1,2 WRITE OFF ON F6A05450
E16 TSX SUB1,2 F6A05710
のようなインデックスレジスター2を使ったものや
TSX SR6DC1,1 * RETURN HERE WITH RESULT IN ACC. 4F11674
TSX TET00,1 * GO TO PROGRAM TET TO ENTER EIFNO 4F11676
CD001 TSX CD900,1 * IF NOT ENDMARK OR ILLEGAL CHARACTER4F11684
CD003 TSX CD900,1 * CAN BE= 4F11690
CD004 TSX CD900,1 * IF NOT ENDMARK OR ILLEGAL CHARACTER4F11693
とインデックスレジスター1を使ったものもある (インデックスレジスターの指定に使われる数字は1,2,4で、3はない (正確には3や5、6、7もありうるんだけど話が長くなるので略))。 通常は4を使い、何か特別なものに対して1あるいは2を使う ように思えるけどよくわからん。
さらには
TSX COMP,B COMPILE TSX FXFX/FLEX/FLFL,4 4F15473
TSX TET00,A 4F15474
TSX AC0000,C ADDRESS COMPILE SYM1(S(I)) 4F15484
A、B、Cというものもあるのだけど
A EQU 1 4F1D0110
B EQU 2 4F1D0120
C EQU 4 4F1D0130
というのがあるので、それぞれ1、2、4と同じ意味だろう。 ソースコードの一部でだけそうしている理由はわからないけど。
linss
- Index of /pdf/ibm/704
- http://bitsavers.org/pdf/ibm/704/FORTRAN_paper_1957.pdf
- Transcription of Smithsonian IBM 704 Fortran II source code. ? Software Preservation Group
- 704 FORTRAN II - Software Preservation Group
- Assembly listing of transcription - Software Preservation Group
TAROMAN
あの70年代のカルト特撮ヒーローが帰ってきた!
— 藤井亮 @TAROMAN (@ryofujii2000) July 15, 2022
岡本太郎x巨大ヒーロー!
『TAROMAN 岡本太郎式特撮活劇』
解説は幼少時からのタローマンファンの山口一郎さん
(というていの狂気5分番組がはじまります)
来週月曜深夜からEテレ。https://t.co/oemCa6sbTN pic.twitter.com/izuZ08pnXT