【Caché】変態M言語【U-MUMPS】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
医療から物流まで、マイナーながらも幅広く使われているM。
そんなMスレです。
2デフォルトの名無しさん:2011/12/21(水) 17:52:33.59
やってしまった。タイトル化けた。
3デフォルトの名無しさん:2011/12/21(水) 18:17:57.04
参考urlすら無いって事は、隔離スレ?
4デフォルトの名無しさん:2011/12/21(水) 18:24:28.08
ここまで霊研なし
5デフォルトの名無しさん:2011/12/21(水) 18:36:56.64
すまん、始めて立てたからなんもわからんかった。
とりあえず最大手IntersystemsのCaché
ワンライセンスの評価版がDL出来る。
http://www.intersystems.co.jp/cache/index.html
日本Mテクノロジー学会
http://www.mta.gr.jp/
6デフォルトの名無しさん:2011/12/21(水) 19:35:02.51
懐かしいのでageた。後悔はしていない。
7デフォルトの名無しさん:2011/12/21(水) 19:41:00.36
>>6
何か語っていってくれよ。医療かい?
8デフォルトの名無しさん:2011/12/21(水) 21:35:29.44
RDBとかgoogleのbigtableと比べて、何が良いところなん?
9デフォルトの名無しさん:2011/12/21(水) 23:47:17.52
>>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")="ぐーぐる"
などなど好き勝手に組める。あんまり上手い例が浮かばなかったが。
しかもこいつらは、コード上で変数と同じ扱い。ただ永続する変数。
10デフォルトの名無しさん:2011/12/22(木) 07:06:43.32
面白そう。
キーの一部でも参照できるのかな?

しかし使い道は難しいね。
11デフォルトの名無しさん:2011/12/22(木) 09:49:03.56
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所
12デフォルトの名無しさん:2011/12/22(木) 10:36:18.23
で、スケーラビリティ。
ネームスペースってのがあって、こいつが実ディスクのどっかに乗る。これはMからは通常意識しない。
M上からは、^["xxx","yyy"]xと言うふうにアクセスできる。今は^|"xxx"|xか。
つまり>>9は、そのネームスペースを省略した形。
で、さらに"xxx"には、変数も使える。ってか、PHPで言う$$のような感じのアクセスさえ出来る。

つまり、いわゆるプライマリキーにあたる部分で、ネームスペースを切っとけば、いくらでも拡張可能。プログラムからは透過的に扱える。
例えば、物品番号が奇数番はDATAo、偶数番はDATAeみたいな感じで。かつ五千番を超えるものはそれぞれDATAo5…とか。

実際には、物品番号を引数にした、ネームスペース決定関数なんかを通じて、変数NSに適当なネームスペースをいれてもらった上で、
プログラム上からは
^|NS|x
と使う。
13デフォルトの名無しさん:2011/12/22(木) 10:40:21.28
>>10
もちろん。先頭、最後、中心、どこにあろうが、速度変化なしで一発で取れる。
その下のキーの列挙などなども可能。

ただし、何番め、と言う取り方は出来ない。けど、通常しない。
第三キーへ直でアクセスしたければ、インデックステーブル的な物を自分で作るしかないね。
14デフォルトの名無しさん:2011/12/24(土) 06:06:41.73
とにかく何万ロットも出るような工場だと、RDBよりは早いとか。
で、データへみたらそのままロックかけて、出荷数を更新とか。
おとにかく手軽。
なお、pコード系の中間言語になってるから、中身も早い。

そういえば、sって命令自然と使ってたが、これは古き良きBasicのLETみたいなもん。
^は、グローバル(永続変数)の意。
15デフォルトの名無しさん:2011/12/27(火) 09:22:34.43
>>7
医療機関だよ。
今は、しがないjavaプログラマ。(^_^;)
16デフォルトの名無しさん:2011/12/27(火) 09:27:42.21
これって、今流行りのkvnだよねぇ
17デフォルトの名無しさん
>>15
やっぱり医療は多いですね。
某元電工さんがやっぱり強い。

>>16
kvpよりも、トランザクションには多少強いかも。
あと、kvpと大きく違うかな、と思う所は、
データも下位ノードも同時に持てる。
^DATA=3
^DATA(0)="aaa"
^DATA(1)="bbb"
^DATA(2)="ccc"
とか持てて、
Lock +^DATA
で、それ全体に排他かけて中身更新して、なんてのも可能。
Lockは別に最上位でかける必要はなくて、Lock +^DATA(1)とか、下位ノードだけも掛けられる。
ただOracleとかみたいな、ロックエスカレーションみたいな便利な機能は無いので、個別に対応。