【Caché】変態M言語【U-MUMPS】
1 :
デフォルトの名無しさん :
2011/12/21(水) 17:51:39.41 医療から物流まで、マイナーながらも幅広く使われているM。 そんなMスレです。
やってしまった。タイトル化けた。
参考urlすら無いって事は、隔離スレ?
ここまで霊研なし
6 :
デフォルトの名無しさん :2011/12/21(水) 19:35:02.51
懐かしいのでageた。後悔はしていない。
RDBとかgoogleのbigtableと比べて、何が良いところなん?
>>8 滅茶苦茶早い。
BigTableなんかも結局は表だけど、こいつは多次元的にデータを持てる。
例えば
s ^x("a")=1
s ^x("a","data")=""
s ^x("a","link","uri")="www.google.com"
s ^x("a","link","schema")="http"
s ^x("a","tiitle")="ぐーぐる"
などなど好き勝手に組める。あんまり上手い例が浮かばなかったが。
しかもこいつらは、コード上で変数と同じ扱い。ただ永続する変数。
面白そう。 キーの一部でも参照できるのかな? しかし使い道は難しいね。
このスレッドは天才チンパンジー「アイちゃん」が 言語訓練のために立てたものです。 アイと研究員とのやり取りに利用するスレッドなので、 関係者以外は書きこまないで下さい。 京都大学霊長類研究所
で、スケーラビリティ。
ネームスペースってのがあって、こいつが実ディスクのどっかに乗る。これはMからは通常意識しない。
M上からは、^["xxx","yyy"]xと言うふうにアクセスできる。今は^|"xxx"|xか。
つまり
>>9 は、そのネームスペースを省略した形。
で、さらに"xxx"には、変数も使える。ってか、PHPで言う$$のような感じのアクセスさえ出来る。
つまり、いわゆるプライマリキーにあたる部分で、ネームスペースを切っとけば、いくらでも拡張可能。プログラムからは透過的に扱える。
例えば、物品番号が奇数番はDATAo、偶数番はDATAeみたいな感じで。かつ五千番を超えるものはそれぞれDATAo5…とか。
実際には、物品番号を引数にした、ネームスペース決定関数なんかを通じて、変数NSに適当なネームスペースをいれてもらった上で、
プログラム上からは
^|NS|x
と使う。
>>10 もちろん。先頭、最後、中心、どこにあろうが、速度変化なしで一発で取れる。
その下のキーの列挙などなども可能。
ただし、何番め、と言う取り方は出来ない。けど、通常しない。
第三キーへ直でアクセスしたければ、インデックステーブル的な物を自分で作るしかないね。
とにかく何万ロットも出るような工場だと、RDBよりは早いとか。 で、データへみたらそのままロックかけて、出荷数を更新とか。 おとにかく手軽。 なお、pコード系の中間言語になってるから、中身も早い。 そういえば、sって命令自然と使ってたが、これは古き良きBasicのLETみたいなもん。 ^は、グローバル(永続変数)の意。
15 :
デフォルトの名無しさん :2011/12/27(火) 09:22:34.43
>>7 医療機関だよ。
今は、しがないjavaプログラマ。(^_^;)
16 :
デフォルトの名無しさん :2011/12/27(火) 09:27:42.21
これって、今流行りのkvnだよねぇ
>>15 やっぱり医療は多いですね。
某元電工さんがやっぱり強い。
>>16 kvpよりも、トランザクションには多少強いかも。
あと、kvpと大きく違うかな、と思う所は、
データも下位ノードも同時に持てる。
^DATA=3
^DATA(0)="aaa"
^DATA(1)="bbb"
^DATA(2)="ccc"
とか持てて、
Lock +^DATA
で、それ全体に排他かけて中身更新して、なんてのも可能。
Lockは別に最上位でかける必要はなくて、Lock +^DATA(1)とか、下位ノードだけも掛けられる。
ただOracleとかみたいな、ロックエスカレーションみたいな便利な機能は無いので、個別に対応。