ときどきの雑記帖 RE* (新南口)
チャイナさんの憂鬱
Zガンダム@テレ玉
「コロニーが落ちる日」
- サラがハイザックで偽装投降
- 「近々縁談あり」 ^ 作戦に成功すれば一週間の有給休暇
- ギャプランの弱点
- 正座を崩してはいけない
なんというか 1話の中で投降から カツの手引きで脱出までというのは 急ぎ過ぎな気も
次回「ジオンの亡霊」
勘考
聞き覚えのない単語だったので辞書ひいたら載っていたし、 IMEの変換候補にもちゃんと(?)出てきたので、「方言」とはちょっと違うような
魔改造
「走る電マ」「怪物電気ケトル」も NHK「魔改造の夜」歴代の“変態マシン”たちが一堂に、8月25日から展示会
お、行こうか。と思ったのだけど
入場料は、一般が2100円(24日まで販売する前売り券の場合は2000円)、
なお、当初は入場券があればいつでも来場可能にする予定だったが、 混雑緩和と熱中症対策を講じるとして、 全日程で参加を予約制にすることが19日に決まった。
んーむ
20th
[B! anime] 「ぱにぽにだっしゅ!」放送20周年記念 YouTubeで全話無料公開&楽曲サブスク解禁(動画あり) - コミックナタリー
本日の遠い目案件
The Untold Story of C++
初期の発展 1980年代後半には大学教育や企業採用が進む。C++は構造化・再利用・低レベル操作を両立し、OSやソフトウェア、ゲーム開発に広く利用される。
80年代後半で「大学教育や企業採用が進」でいたかなあ? Turbo C++ 1.0が1990年の発売らしいし
もちろんTurbo C++が最初のコンパイラーってことはないんだけど、 Turboの前と後でだいぶ違うんじゃないかなあ(要調査)
でもまあ
In 1985, the first edition of The C++ Programming Language was released, which became the definitive reference for the language, as there was not yet an official standard.[31] The first commercial implementation of C++ was released in October of the same year.[28]
In 1989, C++ 2.0 was released, followed by the updated second edition of The C++ Programming Language in 1991.[32] New features in 2.0 included multiple inheritance, abstract classes, static member functions, const member functions, and protected members. In 1990, The Annotated C++ Reference Manual was published.
ということなので、「見方の違い」なのかもしれない
The Untold Story of C++ - YouTube
00:00 - Prologue
00:50 - Chapter 1: Origins in Silence (1979–1985)
02:30 - Chapter 2: The Rise and the Chaos (1985–1998)
04:55 - Sponsor: ChatLLM by Abacus.ai
05:50 - Chapter 3: The Backlash and the Critics (1990s–2000s)
07:30 - Chapter 4: The Rebirth — Modern C++ (2011–2020)
09:15 - Chapter 5: Legacy or Lifeblood? (2020–2025)
10:45 - Closing: The Language Everything Runs On
for
つづき
while 文の処理で「0以外の定数かどうかは見ている」のだけど、 条件式が空の場合にtrue扱いにすることは考えなかった? という意見をちらほら見かけたので
case WHILE:
o1 = contlab;
o2 = brklab;
label(contlab = isn++);
cbranch(pexpr(), brklab=isn++, 0);
statement();
branch(contlab);
label(brklab);
contlab = o1;
brklab = o2;
return;
pexpr()で条件式、statement()でwhile文の本体の処理をしていて
/*
* A parenthesized expression,
* as after "if".
*/
struct tnode *
pexpr()
{
register o, t;
if ((o=symbol())!=LPARN)
goto syntax;
t = tree();
if ((o=symbol())!=RPARN)
goto syntax;
return(t);
syntax:
error("Statement syntax");
errflush(o);
return(0);
}
カッコの中身をtree()で処理と
/*
* Read an expression and return a pointer to its tree.
* It's the classical bottom-up, priority-driven scheme.
* The initflg prevents the parse from going past
* "," or ":" because those delimiters are special
* in initializer (and some other) expressions.
*/
struct tnode *
tree()
{
int *op, opst[SSIZE], *pp, prst[SSIZE];
register int andflg, o;
register struct hshtab *cs;
int p, ps, os;
struct tnode *cmst[CMSIZ];
struct lnode *lcp;
curbase = funcbase;
op = opst;
pp = prst;
cp = cmst;
*op = SEOF;
*pp = 06;
andflg = 0;
略
advanc:
switch (o=symbol()) {
case RBRACK:
case RPARN:
if (!andflg)
goto syntax;
goto oponst;
略
syntax:
error("Expression syntax");
errflush(o);
return(0);
}
コード的にはwhileのあとの空カッコ対はエラーすね。
まあそれはさておき、
C形式のfor文が存在していないところでwhile ()
と書くと無限ループにする(なる)
という発想はでないかもなあ。
んで、あとからこういうのを変えるのは色々面倒。と
んでそのC形式のforについて 予想もしなかったとことから面白い情報が。
数日前になぜかとある過去記事がはてブに載ったのだけど、どんな記事なのかというと
UNIX の父であるケン・トンプソンは、C言語の元になったB言語の開発者で、B言語の前に Bon という言語を作っていたことで知られています。 この Bon についての詳細は不明で、失われた言語だと思っていましたが、Bon のマニュアルがネットに落ちており、詳細が分かりました。
そういうわけで、Bon の概要解説という誰得情報をお伝えします。
というもの。
で、
制御構文
制御構文には while、until、if、unless、init があります。ただしこれは今日の言語で言うところの制御構文とはちょっと概念が異なります。
Bonでは1行1ステートメントで、ブロック構文(Begin~Endや{~})がなく、制御命令はステートメントの後ろに;に続ける形で付与し、 そのステートメント1行だけが対象になります。
for ループの記述は以下のようになります。
print(i := i+1); while i < 10; init i:=0
これはC言語で以下のような文と等価になります。
for (int i = 0; i < 10; i++) print(i);
なんとなくCのfor文に繋がりそうな見た目の気がしないでもない。
ところで
entry や assoc で確保した変数は、関数が終了すると解放されます。そう聞くと普通そうですが、 マニュアルではその説明の後に、「解放されると元の変数が復帰する」と書かれてあります。 これを文字通りに読めば、内部的にはグローバル変数しかなく、 ローカル変数として使えるようにバックアップしている、と受け取れます。
これ、 情報が少ないので断言には程遠いけど 変数のスコープがダイナミックスコープってことはないかなあ。
Scope (computer science) - Wikipedia
$ # bash language
$ x=1
$ function g() { echo $x ; x=2 ; }
$ function f() { local x=3 ; g ; }
$ f # does this print 1, or 3?
3
$ echo $x # does this print 1, or 2?
1
こういうやつね。 Perlのlocalなんかもこんな動作をする。
閑話休題。 Bonという名前を知ったところで改めて検索してみたけど 全然情報がない😓
- Bon programming language user’s manual (Ken Thompson, 1969) [pdf] | Hacker News
- Scan%204.PDF
- BON Programming Language
そしてうぃきぺのBのエントリが引っ掛かったりしたのだけど そこで面白そうな動画(YouTube)の情報があった
B (programming language) - Wikipedia
The semicolon version of the for loop was borrowed by Ken Thompson from the work of Stephen Johnson.[6]
つーてもBや初期のCにはforがなかったので
The semicolon version of the for loop
がどういうものなのかよくわからん
- For loop - Wikipedia
- What is the origin of C-style for loop syntax? Why was it made that way? - Quora
- Who/what invented for-loop in computer programming? - Quora
問題の動画はこちら
transcriptがあるので追いかけてみると 問題の発言はこの辺ですか
43:06 | this one over and over and over until the final version of be there was one |
43:13 | other added thing to be which was I saw Johnson’s semi colon version of the for |
43:20 | loop and I put that in I stole it and and and and and that went virtual |
前後をみても欲しい情報はなさげ
V6
V7までいかなくてもV6の時点のCコンパイラーにforがあった
struct kwtab {
char *kwname;
int kwval;
} kwtab[]
{
"int", INT,
"char", CHAR,
"float", FLOAT,
"double", DOUBLE,
"struct", STRUCT,
"long", LONG,
"auto", AUTO,
"extern", EXTERN,
"static", STATIC,
"register", REG,
"goto", GOTO,
"return", RETURN,
"if", IF,
"while", WHILE,
"else", ELSE,
"switch", SWITCH,
"case", CASE,
"break", BREAK,
"continue", CONTIN,
"do", DO,
"default", DEFAULT,
"for", FOR,
"sizeof", SIZEOF,
0, 0,
};
Go
前回Goのfor文の話がちょっとだけ出てきたので どうなっているのか調べてみた
The Go Programming Language Specification - The Go Programming Language
A “for” statement specifies repeated execution of a block. There are three forms: The iteration may be controlled by a single condition, a “for” clause, or a “range” clause.
ForStmt = "for" [ Condition | ForClause | RangeClause ] Block .
Condition = Expression .
ForClause = [ InitStmt ] ";" [ Condition ] ";" [ PostStmt ] .
InitStmt = SimpleStmt .
PostStmt = SimpleStmt .
Any element of the ForClause may be empty but the semicolons are required unless there is only a condition. If the condition is absent, it is equivalent to the boolean value true.
for cond { S() } is the same as for ; cond ; { S() }
for { S() } is the same as for true { S() }
構文定義上は
for ;; { S() }
と書けるような気がするんだけど、コンパイルするとどうなるんだろう?
新刊近刊
9月1日に本が出ます。コンピュータグラフィックス以前に、爆発などのエフェクトアニメーションを作るのに用いられていた手法を再発見して、発展させたプロジェクトの集大成です。ぜひ、手に取って、目の前で生まれる自分だけのアニメーションを体験してください。 https://t.co/D1auotQA0P
— ishikawa masaya (@kamone) August 14, 2025
お,表紙のビジュアル,解禁されたようです.#一目見たら忘れられない証明 #VisualProof #ProofWithoutWords https://t.co/mTVPcVpDIc
— lestroarmonico (@mathraphsody) August 17, 2025
<書籍紹介> もっと手を動かしてまなぶ 集合と位相ドリル(藤岡 敦 著)【数学】 https://t.co/l8ecLIeYAJ
— 藤岡敦 (@atsushifujioka) August 18, 2025
こんなん出ます。
よろしくお願いします m(_ _)m
9月下旬新刊予定
— 書泉_MATH (@rikoushonotana) August 17, 2025
『聞いて納得! 大学数学質問箱 群・環・体・ガロア理論 篇』数学セミナー編集部(日本評論社)
第1部 群論
宮本雅彦/堀田良之/原田耕一郎/雪江明彦/
千吉良直紀/見村万佐人/阿部紀行
第2部 環と加群と体
上野健爾/角皆 宏/徳永浩雄/柴田大樹/… pic.twitter.com/xbb74cSQzV
8/23新刊
— 書泉_MATH (@rikoushonotana) August 23, 2025
『若い読者のための数学史』スネザナ・ローレンス 田邊誠/訳(すばる舎)
エジプト人やバビロニア人からルネサンスの巨匠たち、さらには大戦下の暗号解読者まで、数学の魅力的な歴史をたどる一冊。
書泉オンラインショップ⇩https://t.co/OxILkOtipW pic.twitter.com/ODjSVhceIb
シンゴジ
このレビューは興味深いですね。
— オペラとメタルを愛好する限界会社員🦃 (@MegIronarmor) August 20, 2025
シン・ゴジラは2016年当時の日本政府の福島原発への対応を風刺したものなので🇺🇸人にはイマイチ刺さらなかったのが、コロナ禍でのパニックや自国政府への不信を経験することで類似の視点を持ったことが大ヒットの要因では、と分析しています。https://t.co/BsRcX5z05B