ときどきの雑記帖 RE* (新南口)
Not Long Before the End
コンビニの雑誌コーナー
近くのコンビニが少し前に改装で数日間休業していた。 新装開店で行ってみると変わった箇所はいくつかあるのだけど やはりというかそうだよねというのが 雑誌コーナーの縮小。 周辺のほかのコンビニ含めてここでしか扱ってなかった 雑誌もあったのだけどコーナー縮小でどうなるか (問題の雑誌の発売日はこれから)。
T-tree
いろんなデータ構造があるなあ(つい最近知った)。
Excel
つい最近気がついたExcelの挙動で、調べてもよくわからなかった (良い検索キーワードが思い浮かばなかった)こと。
たとえばA1セルに100
、
A2セルに=A1+100
という計算式を入力すると、
A2セルの表示は200
になる(これは当然)。
ここでA1セルに$100
を入力すると…
なんだこれ。 さらに日本語環境だと \100 や €100 で試しても同じようになる。
Google Spreadsheetでも$に関しては同じような動作をするので、 昔からの動作なんだろうか。
Power Automate for desktop
Power Automate for desktop のフローの編集画面で 選択→コピーの動作をすると フローのテキスト(うまい表現が見つからん) が取れるのだけど、 いつのバージョンでなのか そのテキストが変わっていた。
いくつか例を挙げるとこんな感じ。 上の行が古い方、下が新しい方。
Variables.IncreaseVariable Value: Row IncrementValue: 1 IncreasedValue=> Row
Variables.IncreaseVariable Value: Row IncrementValue: 1
Variables.RemoveDuplicateItemsFromList List: FileNameList1 IgnoreCase: True NewList=> FileNameList1
Variables.RemoveDuplicateItemsFromList List: FileNameList1 IgnoreCase: True
Variables.AddItemToList Item: Replaced List: List NewList=> List
Variables.AddItemToList Item: Replaced List: List
Power Automate desktopが無償配布される以前は robin.exe とかいう実行ファイルでこのテキストを直接実行できたみたい (現在は公開・配布されていない)なんだけど。
SVE
Implementing ‘strlen’ using SVE – Daniel Lemire’s blog という記事で。
size_t sve_strlen(const char *s) { size_t len = 0; while (true) { svuint8_t input = svldff1_u8(svptrue_b8(), (const uint8_t *)s + len); svbool_t matches = svcmpeq_n_u8(svptrue_b8(), input, 0); if (svptest_any(svptrue_b8(), matches)) { return len + svlastb_u8(svbrka_z(matches, matches), svindex_u8(0, 1)); } len += svcntb(); } }
というCのコードから
In assembly, the code looks as follows…
mainloop: ldff1b { z0.b }, p0/z, [x10, x8] add x8, x8, x9 cmpeq p1.b, p0/z, z0.b, #0 b.eq .mainloop
のようなアセンブリが出てくるという話なんだけど、
どういう命令なんだかよくわからんな>ldff1b
そもそもARMはよく知らんのだった😓
Perl
Perlネタ×2。
その1
12/19が「Perlの誕生日」だったらしい? って読み返したら日付の記述が見当たらない…
joinクイズ - 北海道苫小牧市出身の初老PGが書くブログ
しばし考え込んでしまった(正解率がどうだったかはナイショ)。
一問だけ引用するとこう
joinクイズ 第1問
以下のコードを実行すると、何が表示されるでしょう? 3 つの中から正しい物を選んで下さい。
$ perl -E 'say join "0" .. "9"'
- 何も表示されない
- 0123456789
- 10203040506070809
答えが気になる向きはこちらへ joinクイズの答え - 北海道苫小牧市出身の初老PGが書くブログ
FORTRAN Compiler on IBM 704
【メモ帳】Fortran の value 属性 - fortran66のブログ
GNU FORTRANのαテスター募集(だったと思う)で テスターに理解しておいて欲しいFORTRANに関する質問で これに関係するようなものがあったかすかな記憶があるんだけど 見つからんなあ(GNU ダイジェストで見たような気がしたんだが)。
DIM
つい最近気がついたのだけど(このパターン多いな)、
FORTRANの組込み関数にDIM
というのがある。
REM DICTIONARY OF OPEN SUBROUTINES FOLLOWS 4F14907
OPSUB OCT 672122626060 XABS 4F14908
OCT 212262606060 ABS 4F14909
OCT 673145636060 XINT 4F14910
OCT 314563606060 INT 4F14911
OCT 674446246060 XMOD 4F14912
OCT 444624606060 MOD 4F14913
OCT 674421670060 XMAX0 4F14914
OCT 442167016060 MAX1 4F14915
OCT 674421670160 XMAX1 4F14916
OCT 442167006060 MAX0 4F14917
OCT 674431450060 XMIN0 4F14918
OCT 443145016060 MINI 4F14919
OCT 674431450160 XMIN1 4F14920
OCT 443145006060 MIN0 4F14921
OCT 264346216360 FLOAT 4F14922
OCT 672631676060 XFIX 4F14923
OCT 623127456060 SIGN 4F14924
OCT 676231274560 XSIGN 4F14925
OCT 672431446060 XDIM 4F14926
OCT 243144606060 DIM 4F14927
BSS 10 4F14928
どんな関数かというと、
DIM (The GNU Fortran Compiler)
Description:
DIM(X,Y) returns the difference X-Y if the result is positive; otherwise returns zero.
どういうところで使う関数だろう?
Standard:
Fortran 77 and later
あれ?🤔
Grace Hopper
THE EARLY DEVELOPMENT OF PROGRAMMING LANGUAGES を読んでいると、初期の商用コンピューターでのHopperの働きが目立つ。 「バグ」を見つけただけではないのだな。
p.51 Early American “Compilers”.
p.56 Laning and Zierler.
Grace Hopper was particularly active as a spokeperson for automatic programming during the 1950’s; she went barnstoming throughout the country, significantly helping to accelerate the rate of progress. One of the most important things she accomplished was to help otganize two key symposia on the topic, in 1954 and 1956, under the sponsorship of the office of Naval Research, These symposia brought together many people and ideas at an important time. (On the other hand, it must be remarked that the contributions of Zuse, Curry, Burks, Mauchly, Boem, and Glennie were not mensioned at either symptom, and Rutishause’s work was cited only one – not quite accurately [GO 54, p.76] Communication was not rampant!)
COBOL-60 and COBOL-61
HOPLでCOBOL関連の記事を追いかけてみると詳細はよくわからないものの、
COBOLのあの四つのなんたら DIVISION
はどうもCOBOL-61からのもののように思える。
一年ほどで新しい標準になっていることから、 以前にも書いた Hopperの
In 1980, Grace Hopper commented that “COBOL 60 is 95% FLOW-MATIC” and that COMTRAN had had an “extremely small” influence.
という発言がさらに気になるものに。 COBOL-60(と61)の内容を確認できるところないかなあ…
COBOL - Wikipedia によると四つのDIVISIONが揃ったのはやはり61での模様。 ただし60の時点でいくつかあったのかどうかは不明。
CODASYL COBOLの言語仕様の変遷
CODASYLでは常時言語仕様の改定をおこなっており、その成果を1~5年ごとにとりまとめてCOBOLの仕様書を発行していた。
- COBOL-60
- 最初の版
- COBOL-61
- 手続き部の構成の変更、4つの部が出揃う
- 拡張COBOL-61(1963年)
- (追加)ソート機能
- 追加)報告書作成機能
- 追加)算術文での複数の答え
- 追加)CORRESPONDING機能
PDP-1
史上最初のデバッガーはPDP-1上に実装されたらしい。