Mac de Caché というか MUMPS というか Objectscript か
Cachéはむか〜〜し、むか〜し日本DEC時代に関わっていたDSM-11やVAX/DSMようするにMUMPSを祖先に持つ。今ではSQL/トランザクション制御/ODBCもサポートしているというからOracle11gと他のデータベース間でOracle Generic Connectivityで遊ぶのも面白いかな・・・ということで試しにインストール。
そういえばCodezineで記事を書いている佐藤さんって日本DEC時代に担当していたディストリクトは違うけどDSM-11やVAX/DSMを担当されていた方だよな〜多分、随分前なので多分としか書けないけど。近いうちに確認できるだろうけど。(^^)
Cachéのéをタイプするためにフランス語タイプできるようにしちゃったし。 w
サポートされているプラットフォームの一覧をみるとPowerPC版MacOSXはTigerまでということになっている。
ちなみに、x86版MacOSXであれば最新版がダウンロードできるようだが、PowerPC版はダウンロードできないようだ。今回インストールしたのは一昨年にダウンロードしていたものなので1年半ぐらい前のバージョン。いつかは試そうと思いつついままで塩漬けだったわけです。
http://www.intersystems.com/cache/technology/product-tables/prodversion.html
無償版ダウンロードページは以下「但し、このシングルユーザライセンスは、評価・テストを目的としたもので商用アプリケーションの開発、販売、運用には使用できません。」とのこと。
http://www.intersystems.co.jp/cache/downloads/index.html
昔のMUMPS(M言語)の言語仕様しか覚えていないので暫しCaché Objectscriptのリファレンスを斜め読み。。イメージはそんなに変ってないか。。。ということでHello World!では面白くないのでMUMPS言語というか、M言語というか Caché ObjectscriptでFizz Buzzしてみた。
(新しいObjectscriptの文法でコーディングするならコマンドや慣習として省略形でコーディングすることが多かったMUMPSだけど、今は省略形は利用しないほうが読み易いよね、きっと。
MUMPSは習慣的に省略形のコマンドや関数でコーディングされているものが多かったから(現在でも省略形でコーディングする事が多いのかは知らない・・・・)、私が初めてMUMPSのコードを見たときは何じゃこれ! なんの記号? プログラムなのかこれ? と感じたことを思い出した。今回のコードも省略形使ってますが。www
MacOSXのTerminalを起動して。。。。(インストール後にはCachéが自動起動してる。。)
う〜〜〜〜ん、MUMPSの子孫だけどサンプルコード見るとJavaとかC的な文法もあるのね今のMUMPSじゃなくてObjectscriptは・・・今回は昔のMUMPSっぽく書いたけど。。
G5Server:˜ discus$
G5Server:˜ discus$ csession cache -U user
USER>
USER>f i=1:1:100 w $case(i#15,0:"FizzBuzz",:$case(i#3,0:"Fizz",:$case(i#5,0:"Buzz",:i))),!
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
・・・・中略・・・・
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz
USER>
USER>halt
G5Server:~ discus$
ついでにシャットダウンしてみるか。。。
G5Server:~ discus$
G5Server:˜ discus$ sudo ccontrol stop cache
Password:
Cache Shutdown Status: 3:51 pm 19 Oct 2008
0 interactive jobs (Telnet/Lat)
0 background jobs (from job command)
0 Cache Direct server jobs
0 Cache Objects server jobs
0 CSP server jobs
0 ODBC server jobs
26 system jobs
Do you want to broadcast a message to anyone? No => No
Do you want to see the Cache status report? No => Yes
Cache System Status: 3:51 pm 19 Oct 2008
Process Device Namespace Routine CPU,Glob Pr User/Location
355 CONTROL 0,0 0
379 WRTDMN 227,23 0
380 GARCOL 0,0 0
381 JRNDMN 13830,141 0
389 EXPDMN 0,0 0
382 SLAVWD 7,126 0
385 SLAVWD 0,0 0
383 SLAVWD 0,0 0
388 SLAVWD 0,0 0
384 SLAVWD 0,0 0
387 SLAVWD 0,0 0
386 SLAVWD 0,0 0
419 /dev/null %SYS %SYS.Task 124096,23819 0 TASKMGR
398 /dev/null %SYS MONITOR 46080,3557 0
1838 /dev/ttyp1 %SYS SYS.Process 8256,1067 0 %System
400 /dev/null %SYS CLNDMN 704,47 0
401 /dev/null %SYS RECEIVE 90752,10111 0
402 /dev/null %SYS ECPWork 192,65 0
403 /dev/null %SYS ECPWork 192,64 0
404 /dev/null %SYS ECPWork 192,63 0
405 /dev/null %SYS ECPWork 192,63 0
406 /dev/null %SYS ECPWork 192,63 0
407 /dev/null %SYS ECPWork 192,63 0
408 /dev/null %SYS ECPWork 192,63 0
409 /dev/null %SYS ECPWork 192,63 0
1170 /dev/null %SYS %CSP.Daemon 12224,1290 0
411 |TCP|1972 %SYS %SYS.SERVER 192,65 0
416 /dev/null %SYS %MONAPP 61760,11240 0
2 user, 26 system, 32 mb global/1 mb routine cache
Do you want to broadcast a message to anyone? No => No
Do you want to see the Cache status report? No => No
Do you want to run the user defined shutdown routine? Yes => No
Are you ready for the system to halt? Yes => Yes
15:52:19 Shutting down Cache
15:52:20 Notifying Clients
15:52:20 No user shutdown routines to execute
15:52:20 Stopping User Jobs
15:52:20 Stopping Network Servers
15:52:21 Withdrawing from License Domain
15:52:21 Waiting for users to stop
15:52:21 Stopping Client Networking
15:52:21 Removing database locks
15:52:21 Updating Journal File
15:52:22 Waiting for database updates to complete
15:52:23 Database updates complete
15:52:23 Stopping System Jobs
15:52:27 Shutdown complete
G5Server:˜ discus$
ということで、あとはOracle Generic ConnectivityをOracle11gで試すときまでのお楽しみ・・・?!
| 固定リンク | 0 | コメント (0) | トラックバック (0)
最近のコメント