プログラミング
この記事はPlan 9 Advent Calendar 2019 - Qiitahttps://qiita.com/advent-calendar/2019/plan9の21日目のために書いた。 Plan 9由来なら何でもどうぞとの事なので、このOSから派生した特異なOSについて触れてみた。Inferno (オペレーティングシステム)https…
この記事はアセンブラ Advent Calendar 2019 - Qiitahttps://qiita.com/advent-calendar/2019/asmの9日目のために書いた。 しかし、カテゴリが「OS」になっていて、他のカレンダーはWindows Subsystem for Linuxとか何とかBSDとかPlan 9とかを題材にしている…
この記事は言語実装 Advent Calendar 2019 - Qiitahttps://qiita.com/advent-calendar/2019/lang_devの5日目のために書いた。 言語実装に興味のある人ならコンパイラにも興味があるはずで、コンパイラに興味のある人なら、一度はコンパイラを実装しようとし…
とってもお手軽な割にそこそこ高速で高品質な疑似乱数生成アルゴリズム「xorshift」。 32bit版などの実装では、乱数生成一回あたりxor演算とshift演算を3組、計6回演算命令を使わねばならない。 ところが64bit版実装では、xorとshiftの組を2組しか使わずとも…
20年くらい後の予言ではない。 2年くらい前の記憶。 私はLinux使いであり、主に使っているパソコンもLinuxを入れているが、テストプログラム用などのためにWindowsを入れた仮想マシンも用意している。 現在はWindows10だ。 当然、Windowsの本格使用は考えて…
現在、私はprintfデバッグに頼っているのに、 わたしがprintf()デバッグをする理由 http://freak-da.hatenablog.com/entry/20090325/p1 が半分どころか3/4ネタのようなので、真面目に言い訳してみた。 Coders at Work プログラミングの技をめぐる探求 | Pete…
備忘録。 本の虫: C++標準化委員会の10月の興味深い文書 https://cpplover.blogspot.com/2018/10/c10.html 「 不自由で低能なWindowsはプロセスの作成もスレッドの作成も遅いし、ましてやファイルの作成に至っては、i7でNVMeのSSDを積む高性能なコンピュータ…
There are repeated holy wars at byte-code virtual machine interpreters - stack-machine vs register-machine. One of the benefits of stack-machines is ease of allocating host machine's register at JIT compilation. There is a decent assumptio…
個人的な事情により、コンピュータの基礎知識を得る方法を探していたところ、 プログラミングを学ぶ時に人工知能から入門することがなぜ合理的なのか - WirelessWire News(ワイヤレスワイヤーニュース): https://wirelesswire.jp/2017/08/60921/ を見つけ…
あるいは、マイクロソフトに貢ぐべき、たった一つの理由。 オープンソースのOSであるLinuxを自分のパソコンのメインOSにして10年以上、「タコ」を「初心者」の意味だと、私は勘違いしていた。 前書き - 賢い質問のしかた http://www.ranvis.com/articles/sma…
ryzen7は8つのCPUコアを持ちL3キャッシュ容量は16Mバイトと唱われている。 ダイ写真をみるとCPU4コアとL3キャッシュ8Mバイトをまとめたグループが二つ載っている。 ならば、この二つのグループ間での通信は遅い恐れがある。 例えば、片方のグループのCPUコア…
When you build a micro-processor which achives good code density, you tend to choose a ISA(instruction set architecture) which instruction length is short. Likewise, you want to make each instruction have same length which demands less amo…
When we want to write a fast interpreter, Threaded code http://en.wikipedia.org/wiki/Threaded_code is a important technic. As Mike Pall(auther of Luajit http://luajit.org ) said, implementing threaded code is difficult when we use a C lang…
RISC-V http://riscv.org/ は高速なCPU向けの命令セットを謳っていてる。 例えば、即値のデコード。 RISCなので各命令の位置はアラインメントされていて、ジャンプ先アドレスの最下位ビット(least significant bit, 以下lsb)は0であることが分かりきっている…
海外では知られているようだが、 Fixing sluggish write performance of USB flash (thumb) drives | Old Computer Junk http://blog.oldcomputerjunk.net/2012/fixing-sluggish-write-performance-of-usb-flash-thumb-drives/ 国内では AFTドライブをXpやDO…
最近、立て続けにadobe flash プラグインのセキュリティホールが発覚したり、ブラウザのページキャッシュ設定ではハードディスクへのアクセスを無くせない事にイライラして、いつも使っている seamonkey ウェブブラウザ - Wikipedia http://ja.wikipedia.org…
Speed of various interpreter dispatch techniques V2 http://www.complang.tuwien.ac.at/forth/threading/ で配布されている簡易ベンチマークをgcc-4.8.4でコンパイルすると、最適化が効き過ぎてsubroutine-threadingのコードが殆ど削除されていた。 そこ…
自分の持っているAndroid携帯端末にC言語コンパイラを入れようとして挫折した。 アプリケーションのクロスコンパイルは難しくないが、コンパイラ自身のクロスコンパイルは難しい。 アセンブラとリンカのクロスコンパイルはもう少し簡単かもしれない。 しかし…
関数型言語のウソとホント - Qiita http://qiita.com/hiruberuto/items/26a813ab2b188ca39019 が派手に荒れているけど、そのサイトのアカウントとるのが面倒くさいから、こっちに書く。 そのサイトの参考文献に挙げられている なぜ関数プログラミングは重要…
最近なんとか、コンピュータシステムで食う会社に潜り込んだ。 しかし、Windowsアプリの悉くが、XX社のライセンスへの同意を一々尋ねてくる。 ウイルスバスターを入れたらノートンのライセンス。 富士通のプリンタドライバをいれたら、富士通のドライバライ…