ときどきの雑記帖 RE* (新南口)
試験に出るX1
「後ろのドアが開きます」
最近、でもないと思うけど、 出口が二つあるエレベーターあるじゃないですか、 鉄道の駅の後付けエレベーターによくある フロアによって開く扉が変わるやつ。
数日前に使ったそんなエレベーターで、 乗ってから奥まで進んで降りる扉の前にいたのに 目的にフロアについたところで 「後ろのドアが開きます」ってアナウンスがあって、 そのアナウンスはどうなのかと思ったり。
渋谷
久しぶりにJRから井の頭線への乗り換えをしたのだけど 移動経路が大きく変わっていてちょっと面食らった。 以前は外回りの山手線からだと(改札口にもよるけど)ほぼ上下移動なしに一直線にいけたのだけど。 まあ東急百貨店(東横店)跡地の工事してるしねえ。
HDMIダミープラグ
なんてものがあったのね。
ダミーHDMIプラグ買ったった - いろいろやってみるにっき
そもそもの使い道はヘッドレス起動(モニタなし起動)する時にOSによっては起動しなかったりヘンになったりするのを避けたり、 これでモニタを一つ仮想で拡張しておいてリモートで入って使ったりなど。
BOX
ここでも「BOX化」になっててちょっとぐんにゃり。
Rustにおいて、すべての値はデフォルトでスタックに割り当てられます。Box
を作成することで、値を ボックス化 、 すなわちヒープ上に割り当てることができます。ボックスとは正確にはヒープ上におかれたTの値へのスマートポインタです。 ボックスがスコープを抜けると、デストラクタが呼ばれて内包するオブジェクトが破棄され、ヒープメモリが解放されます。
All values in Rust are stack allocated by default. Values can be boxed (allocated on the heap) by creating a Box
. A box is a smart pointer to a heap allocated value of type T. When a box goes out of scope, its destructor is called, the inner object is destroyed, and the memory on the heap is freed.
メタ構文変数
[意見交換] afoというメタ構文変数を知りませんか? - Qiita
本でプログラミングを学習中にどうしても理解できない単語が出てきて困ってます。『hoge』これはどんな意味を持つのでしょうか?→「割とマジで独学はこういうので詰む」 - Togetter
hogeがどうこうはおいといて、 コメント欄のやり取りにちょっと笑った。
iはintのiなんで本来別にループ専用ではないんですが、とはいえやっぱりループ以外で使うと気持ち悪いのも確か。
いや、iteratorのiだよ
indexのiだと思ってました。
後学のためにソースをお願いします。個人的にはK&Rの時代にiteratorなんて単語みたことないし、 元々数学の添え字でi,j,kは使われていたのでそちらの慣習に従った物と思っていますが
ソースも何も、「反復変数」という名前が示す通りなんだが。あと数学でΣの反復変数として使われるiがそもそもiterationのiであって。
FORTRANはK&Rより前から存在してたとかいう説明から必要なの?
FORTRANを持ち出すなら、それこそ暗黙宣言の整数がIJKLMNだから。ということになって、 Iから始まる理由は数学の下付き文字(添え字=index)から来てるんじゃないかと思うんですが (数学の添え字は行列とかでも使われて、反復子とは限らない)。まあ、由来をどれか一個に絞る必要はなくて、 integer,index,iterator等の頭文字だから定着した。でいい気がしますがね。
Iから始まるのはintegerだからと聞いた気がするけど違うんだろうか。少なくともiteratorだからなんて聞いたことないや。
https://stackoverflow.com/questions/4137785/why-are-variables-i-and-j-used-for-counters " I doubt it comes from integer. We use ℤ (blackboard bold Z) for the integers because it stands for the German word Zahlen… the German word for index is Index"
FORTRAN Compiler on IBM 704
Fortran 入門: 知識として必要な過去の Fortran
- 1 行あたり 72 カラムまでの制限がある。
- 1 カラム目から 5 カラム目には文番号を記述できる。 特に 1 カラム目に ‘C’ や ‘*’ などの数字以外が記述されている場合には、 その行がコメント行として解釈される。
- 6 カラム目は通常は空白にする。空白でない場合(何か文字を指定した場合には)前の行からの継続行とみなされる。
- 7-72 カラム目にプログラム文を記述する。
704の場合、6文字を一つのまとまりとして扱っていた (「バイトアクセス」できないから) わけで、この辺の仕様もそこから来たのかなあ という感じがありますね。 80桁まではあと8文字あるので 78文字目までプログラム記述に使ってもいいんじゃね? と思わないでもないけど、 先頭から72桁というところに意味があるのかとか 2桁残すよりは8桁残そうということなのか (最大8文字のコメントってそれほど有用か?)
REM C0180,2/ CALLS=C0190,DIAG. CALLERS=C0100,C0200,C0300,C0400, 4F10512
REM C1000,C1100,C1200,C1400,C1500,C0150. 4F10513
REM C0180 CONVERTS SUCCESSIVE NUMERICS STARTING IN THE MQ TO 4F10514
REM BINARY, PLACES RESULT IN 1G, AND LEAVES 1ST NON-NUMERIC IN 4F10515
REM THE AC. 1ST NUMERIC IS ASSUMED TO BE ALREADY IN THE AC. 4F10516
C0180X TSX C0190,4 * OBTAIN 1ST NUMERIC IN THE AC. 4F105165
C0180 STO 1G PLACE 1ST NUMERIC IN 1G. 4F10517
TSX C0190,4 * EXAMINE NEXT NON-BLANK CHARACTER, 4F10518
CAS L(9) AND IF NON-NUMERIC, THEN 4F10519
TRA 1,2 * RETURN TO CALLER. 4F10520
NOP IF NUMERIC, THEN 4F10521
STO 2G SAVE DIGIT IN 2G. 4F10522
CLA 1G MULTIPLY 4F10523
ALS 2 C(1G) 4F10524
ADD 1G BY 4F10525
ALS 1 10, 4F10526
ADD 2G AND ADD CURRENT DIGIT. 4F10527
DCF TXI C0180,0,-F REPEAT PROCESS FOR NEXT CHARACTER. 4F10528
REM END OF PROGRAM C0180. 4F10529
((x<<2)+x)<<1)
で10倍と。
昔Z80あたりでよく見た(使った)テクニックだ😄
どちらかというと10倍にするのは
x<<3 + x<<1
の方が好みなんだけど
2倍の中間結果を保存しておくところが必要になるしなあ。
新山さんのツイートから
(新山さんがツイートする前に) 「これは新山さんが紹介のツイートするんじゃないか」 と踏んだものがそうなるとちょっと嬉しい😄
C99で導入された VLA(可変長配列) はチューリング完全だった。ここでは配列の添え字にどんな式を入れてもよいので
— 新山祐介 (Yusuke Shinyama) (@mootastic) August 5, 2022
int main(int argc, char *argv[printf("Hello")])
{
printf(" world!\n");
}
のようなことができてしまう。
(C11ではVLAは標準でなくなった)https://t.co/PSasvEiZG5
こっちは(うかつにも)予想はしていなかったけど HNあたりで盛り上がっていたので気にはしていた。
新山さんのツイートから2
John Carmackインタビュー。計5時間もあるので全部は聞いていない。「C言語のいいところは、他の言語ほどプログラミングスタイルに多様性がないことだ。なのでCの基本を知っていれば、カーネルだろうが何だろうがいきなり読みだしても大体何をやっているかわかる」https://t.co/fTwMPzQsjE
— 新山祐介 (Yusuke Shinyama) (@mootastic) August 7, 2022
- Lex Fridman Podcast #309 – John Carmack | Hacker News
- John Carmack: Doom, Quake, Programming, Games – Lex Fridman Podcast [video] | Hacker News
- John Carmack interview: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets : programming
- #309 – John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and Rockets | Lex Fridman Podcast
podcastとYouTubeの内容って違うものなのかな?