Snapshot Isolation のおもちゃ・undo ログ MVCC 版

1ヶ月前に作ってみた「行持ち MVCC」では、 行ごとに並んでいる作業データの残骸を取り除くのにゴミ集めが必要になります。 一方、 同じ MVCC でも表単位での undo ログを利用すると、 ゴミ集めが不要になります。undo ログ方式もいくつか流儀があり、 ここ…

Snapshot Isolation のおもちゃ・行持ち MVCC 版

前回のおもちゃはトランザクションごとに大域データを丸ごと局所データにコピーして隔離を実現しました。 今度のおもちゃは複数のバージョンをデータに混ぜる Multiversion concurrency control (MVCC) で隔離してみます。 バージョンの混ぜ方は様々で、 今…

Snapshot Isolation のおもちゃ・修正版

昨日のおもちゃは、 トランザクションで生じた編集過程をすべて記録して、 コミット時にグローバル・データの書き直しに利用していました。 そのため、 定義通りの Snapshot Isolation とは異なる挙動を示すことがありえます。 定義では、 スナップショット…

Snapshot Isolation のおもちゃ

Snapshot Isolation の提唱元 Berenson 等 A Critique of ANSI SQL Isolation Levels (1995) の定義通りに動く「おもちゃ」を実用性無視で記述するのは割と簡単です。 トランザクションの開始時点でグローバル・データのスナップショットをとりトランザクシ…

かさね打ちもどき overstrike

Kernighan & Plauger Software Tools (1976) の 2.3 節はバックスペースを解釈してラインプリンタでタイプライタのようなかさね打ちをするプログラムを扱っています。そのプログラムでは、バックスペースを見つけるごとにかさね打ち用の行を新しく出力する単…

8 桁電卓

なんでも、Windows の電卓は任意精度計算エンジンを備えているそうです。 ⇒ When you change the insides, nobody notices - The Old New Thing - Site Home - MSDN BlogsThe innards of Calc - the arithmetic engine - was completely thrown away and rew…

文字列で 10 進任意精度整数の四則演算の Javascript 版

Perl は bigint があるので、おもしろみが失せるため、Javascript に翻訳してみました。⇒ https://gist.github.com/tociyuki/10974217 bernoulli_number.jsFirefox の「ツール → Web 開発 → スクラッチパッド」に読み込ませて、動作確認をしています。

文字列で 10 進任意精度整数の四則演算 その 4 ベルヌーイ数

ネタとはいえ、巨大整数を計算できるようになったら、ベルヌーイ数を計算してみたくなるものです。 ⇒ プログラミング言語年表 - Wikipediaチャールズ・バベッジが提案した最新鋭の機械である解析機関についての記事をイタリアの数学者ルイジ・メナブレアが執…

文字列で 10 進任意精度整数の四則演算 その 3 符号付き除算

昨日の 2 つの符号なし除算ルーチンを利用して、符号付き除算を作ります。被除数と除数のいずれか一方だけが負のときに、商と余りの関係をどう扱うかは、定義次第で実装依存になるので、ここでは Ruby の Integer#divmod メソッドに合わせることにしました。…

文字列で 10 進任意精度整数の四則演算 その 2 符号なし除算

任意精度整数の除算の筆算を2進数以外の位取り記数法の除算ルーチンとして書くには面倒な理論を理解できてなければなりません。なぜ、面倒になるかというと、商の着目している桁の数の候補が 10 進数なら 10 個あり、それらのうちからどれを選べば良いかを少…

文字列で 10 進任意精度整数の四則演算 その 1 加減乗算

10 進数表記の文字列をピュア Perl で直接四則演算してみようというネタ・プログラミングをやってみます。10 進数で計算をおこなうことにし、どうせ遅いので、アルゴリズムは筆算のやりかたを採用します。いまどきの高速化乗算・除算アルゴリズムは使わない…

難読化テトリス perltris リーディング

本日は降雪なり。横浜では朝から大きなみぞれが地面めざして落下し続けてきました。窓のすぐ向こうを落下していくみぞれは大きくて形もいろいろです。朝方、ぼんやりと眺めていたら、テトリスが頭に思い浮かんでいました。ロシアでテトリスが生まれたのは、…

富豪的 CLOSURE 計算結果使い捨て型シフト還元解析おもちゃ

ネタ・プログラミングを一席。 上向き構文解析で使うシフト還元解析器では、解析表をあらかじめ作っておき、解析表に従って状態遷移を繰り返します。この解析表を手作業で作るのは面倒な作業であり、コンパイラ・コンパイラ等を使うのが常識になっているわけ…

PostScript風なテンプレートのインタープリタ部の試作

PostScript のような逆ポーランド記法でロジック部分を記述できるテンプレートは、どんな感じになるのだろうと、興味本位で作ってみました。まだ、テンプレート・コンパイラを作っておらず、Perl の配列にコンパイラの出力を手打ちしないといけません。けれ…

SQL の CREATE TABLE 文風味のエンティティ・パッケージ定義関数

今日の帰り道の途中で、ふとスカラーでカラム名を指定し、他をコードリファレンスで現すようにすると、Perl で SQL の CREATE TABLE 文のような感じでエンティティのカラム定義が記述できるのではないかと思いつき、家に戻ってからさっそくおもちゃを書いて…

提灯情報連結解除

横浜は伊勢佐木モールの奥、京急黄金町あたりに子育地蔵尊がありまして、奉納提灯が並んでおりました。かなりくたびれていたのを今年新調することになったようですが、いくつかの提灯が情報連結解除されて裸電球になっておりました。 2009年7月1日 2010年7月…

今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む)

⇒ 今までどのくらいプログラミング言語を触ってきたか(3秒で挫折したものものも含む) - King of Programming Language - Open Object REXX blog for Japaneseなんという、おっさんほいほい。私(1963生まれ)の分です。実装を動かしたことがあるものに限ります…

書式付きアウトプット関数 bprintf

全世界的冗談日連動記事として :-p ⇒ [結] 2009年4月 - 結城浩の日記 「まなびや」ではアウトプットを重視します。 せっかく時間を掛けて学ぶのですから、 学んだ結果を「形」に残すところまでやりましょう。 本ダイアリーでは「アウトプット」の中でも、と…

バイナリデイの違和感

⇒ バイナリ - Wikipedia ギークの間では、11月11日を「バイナリデイ」と呼ぶことがある(1111が2進数表記とみなせるため)。 ギークなら、1111を10進表記とみなすのではないかと、ふと考えました。 $ perl -e 'printf "%6s %4d\n", $_, eval($_) for qw(0b11…

勝手に添削: javascriptはじめました - 2限目

これへの批評的算譜編制*1⇒javascriptはじめました - 2限目 - finalventの日記。 どうなんでしょうか。コードにダンコガ〜イ風味が足りない気がしました。

交通標識を愛好する会?

⇒ 梅田望夫、平野啓一郎 『ウェブ人間論』|新潮社 時代の変わり目の深い考察 羽生善治 例えばとてもマイナーな趣味を持った人達がネット等を通じて同好会を作る(一例としては交通標識を愛好する会、たぶん、存在していないと思う)。 妙なところにだけ反応…