GT.M プログラマーズ ガイド

注意事項

2015年7月20日

改訂履歴
改訂 V6.2-002/-002A 2015年7月20日

V6.2-002/-002A で下記の章を更新:

改訂 V6.1-000 2014年8月28日

V6.1-000用に更新章固有の改訂については、 第2章: “GT.M 言語拡張, 第6章: “コマンド, 第7章: “関数, 第8章: “組み込み特殊変数, 第9章: “入出力処理, 第11章: “外部ルーチンの統合 を参照してください。

改訂 V6.0-003 2014年2月24日

V6.0-002 と V6.0-003用に更新章固有の改訂については、 第3章: 開発サイクル, 第6章: “コマンド, 第7章: “関数, 第8章: “組み込み特殊変数, 第9章: “入出力処理, 第11章: “外部ルーチン統合, 第13章: “エラー 処理 を参照してください。

改訂 V6.0-001 2013年3月21日

V6.0-001用に更新章固有の改訂については、第3章: 開発サイクル, 第5章: “Mの一般的な言語機能, 第6章: “コマンド, 第7章: “関数, 第9章: “入出力処理, 第10章: “ユーティリティルーチン, 第11章: “外部 ルーチン統合第13章: “エラー処理 を参照してください。

改訂 V6.0-000 2012年11月21日

V6.0-000用に更新。章固有の改訂については、第6章: “コマンド第9章: “入出力処理 を参照してください。

改訂 V5.5-000/2 312012年10月05日
改訂 V5.5-000/1 2012年10月05日
改訂 V5.5-000 2012年6月15日
改訂 V5.4-002B 2011年12月26日 各章の改訂履歴を含むGT.Mのリリースを反映したドキュメント改訂履歴への変換

目次

このマニュアルについて
対象読者
マニュアルの目的
どのようにこのマニュアルを使用するか
1. GT.Mについて
プログラミング環境
データ管理
ソースコードの管理
他の言語とGT.Mと統合
非Mルーチンへアクセス
国際化
2. GT.M 言語拡張
オペレーティングシステムとのインターフェイス機能
デバッグ機能
例外処理の機能
ジャーナリングの拡張
追加機能の拡張
GT.M デバイス処理の拡張
エイリアス変数の拡張
定義
パフォーマンス
ZWRITE / ZSHOW "V" フォーマット
参照渡し
SET * と QUIT * の参考例
KILL * の例
注釈付きのエイリアス の例
Unicode™ サポートのための拡張機能
GT.M Unicodeサポートの原理
ICU
ディスカッションとベストプラクティス
3. 開発 サイクル
プログラム開発サイクルの概要
環境変数を定義
gtm_dist
gtmgbldir
gtm_principal
gtmroutines
エディタ
データベースの準備
ソースプログラムの作成と編集
GT.Mからの編集
シェル からの編集
ソースプログラムのコンパイル
GT.Mからコンパイル
シェルからコンパイル
mumpsコマンド用の修飾子
ソース・プログラムの実行
ダイレクト・モードでの実行
ソースファイル・ディレクトリを検索
シェルからの実行
ダイレクトモードとシェルからのエラー処理
4. ダイレクトモードでの操作とデバッグ
ダイレクトモードの操作
ダイレクトモードに入る
ダイレクトモードで利用可能な機能
ダイレクトモードの終了
ダイレクト・モードでルーチンをデバッグ
Mルーチンの作成と表示
対話形式でMルーチンを実行する
ランタイムとシンタックスエラーを処理する
エラーの修正
ルーチンを介して段階的に行う
ブレークポイントから実行を続ける
実行の中断
デバッグでスタック呼び出しを使用
ルーチンコントロールを転送
ソースコードを表示
Mルーチン内のエラーを修正
編集したルーチンを再リンク
ルーチンを再実行する
フォーク(子)プロセスを使用
GT.Mデバッグツールの概要
5. 一般的なM言語の特徴
データタイプ
数値式
数値精度
整数式
真偽値式
M Names(命名規則)
変数
配列と添字
Mの照合シーケンス
ローカル変数
グローバル変数 とリソース名の環境
ネイキッド参照(Naked References)
グローバル変数名の環境
リテラル(文字種の特性)
文字列リテラル
数値リテラル
演算子
優先順位
算術演算子
論理演算子
文字列演算子
数値関係演算子
文字列関係演算子
パターンマッチ演算子
コマンド
後置条件
タイムアウト
M ロック
組み込み関数
固有の特殊変数
ルーチン
入口参照 (Entry References)
ラベル参照
間接指定
間接指定の引数
アトミックな間接指定
入口参照(Entryref)の間接指定
パターンコードの間接指定
名前の間接指定
間接指定の懸念
パラメータ パッシング(引数の受け渡し)
実要素リスト(Actuallists)
実要素名(Actualnames)
フォーマルリスト(Formallists)
フォーマルラベル(Formallabel)
パラメータパッシングの動作
パラメータパッシングのメカニズム
GT.M パラメータパッシングの拡張機能
外部コール
外部関数
外部の特殊変数
トランザクション処理
TPの定義
TPの特徴
TP パフォーマンス
TP の例
6. コマンド
Break
BREAKの例
Close
Do
DOの例
Else
ELSEの例
For
FORの例
Goto
GOTOの例
Halt
Hang
HANGの例
If
Ifの例
Job
JOBの環境変数
JOBのプロセス パラメータ
JOBの例
Kill
KILLの例
Lock
トランザクション内でロック(Lock)の使用
LOCKの例
マージ(Merge)
MERGEの例
New
NEWの例
Open
Quit
QUITの例
Read
Set
SETの例
TCommit
TREstart
TROllback
TStart
S[ERIAL]
T[RANSACTIONID]=expr
Use
View
VIEW コマンド内のキーワード
VIEWの例
Write
Xecute
XECUTEの例
ZAllocate
ZALLOCATEの例
ZBreak
ZBREAKの例
ZCOMpile
ZCompileの例
ZContinue
ZDeallocate
ZDEALLOCATEの例
ZEDit
ZEDITの例
ZGoto
ZGOTOの例
ZHALT
ZHALTの例
ZHelp
ZHELPの例
ZLink
ZLINK コンパイル
ZLINKの例
Auto-ZLINK
Auto-ZLINK セットアップ
ZLINK, auto-ZLINK と ルーチン名
ZKill
ZMessage
ZMESSAGEの例
ZPrint
ZPRINTの例
ZRUPDATE
ZSHow
ZSHOWのインフォメーション・コード
ZSHowの例
ZSHOW ディスティネーション変数
ZSHOWの使用
ZSTep
ZSTEP Into
ZSTep OUtof
ZSTep OVer
ZSTEPアクション
ZSTEPのインターアクション
ZSTEPの使用
ZSTEPの例
ZSYstem
ZSYSTEMの例
ZTCommit
ZTCOMMITの例
ZTRigger
ZTStart
ZWIthdraw
ZWITHDRAWの例
ZWRite
エイリアス変数のZWRITEフォーマット
ZWRITEの例
7. 関数
$ASCII()
$ASCII() の例
$Char()
$CHAR()の例
$Data()
$DATA()の例
$Extract()
$EXTRACT()の例
$Find()
$FIND()の例
$FNumber()
$FNUMBER()の例
$Get()
$GET()の例
$Increment()
$INCREMENT()の例
$Justify()
$JUSTIFY()の例
$Length()
$LENGTH()の例
$NAme()
$NAME()の例
$Next()
$Order()
$ORDER()の例
$Piece()
$PIECE()の例
$Qlength()
$QLENGTH()の例
$QSubscript()
$QSUBSCRIPT()の例
$Query()
$QUERY()の例
$Random()
$RANDOM()の例
$REverse()
$REVERSE()の例
$Select()
$SELECT()の例
$STack()
$STACK()の例
$Text()
$TEXT()の例
$TRanslate()
$TRANSLATE()の例
$View()
$VIEW() の引数のキーワード
$VIEW()の例
$ZAHandle()
$ZBIT関数
$ZBITAND()
$ZBITCOUNT()
$ZBITFIND()
$ZBITGET()
$ZBITLEN()
$ZBITNOT()
$ZBITOR()
$ZBITSET()
$ZBITSTR()
$ZBITXOR()
$ZBIT関数の例
$ZAscii()
$ZASCII()の例
$ZCHar()
$ZCHAR()の例
$ZCOnvert()
$ZCONVERT()の例
$ZDATA()
$ZDATA()の例
$ZDate()
$ZDATE形式の仕様要素
$ZDATE()の例
$ZExtract()
$ZEXTRACT()の例
$ZFind()
$ZGetjpi()
$ZJOBEXAM()
$ZJOBEXAM()の例
$ZJustify()
$ZJUSTIFY()の例
$ZLength()
$ZLength()の例
$ZMessage()
$ZMESSAGE()の例
$ZPARSE()
$ZPARSE()の例
$ZPiece()
$ZPIECE()の例
$ZPEEK()
$ZPrevious()
$ZSOCKET()
$ZSYSLOG()
$ZQGBLMOD()
$ZSEARCH()
$ZSEARCH()の例
$ZSIGPROC()
$ZSIGPROC()の例
$ZSUBstr()
$ZSUBSTR()の例
$ZTRanslate()
$ZTRANSLATE()の例
$ZTRIgger()
$ZTRIGGER()の例
$ZTRNLNM()
$ZTRNLNM()の例
$ZWidth()
$ZWIDTH()の例
$ZWRite()
8. 固有の特殊変数
$Device
$ECode
$EStack
$ETrap
$Horolog
$IO
$Job
$Key
$Principal
$Quit
$Reference
$STack
$Storage
$SYstem
$Test
$TLevel
$TRestart
$X
$Y
$ZA
$ZALlocstor
$ZB
$ZCHset
$ZCMdline
$ZCOmpile
$ZCstatus
$ZCLose
$ZDAteform
$ZDirectory
$ZEDit
$ZEOf
$ZError
$ZGbldir
$ZHorolog
$ZINTerrupt
割り込み処理
$ZINInterrupt
$ZIO
$ZJob
$ZKey
$ZLevel
$ZMAXTPTIme
$ZMOde
$ZONLNrlbk
$ZPATNumeric
$ZPIN
$ZPOUT
$ZPOSition
$ZPROMpt
$ZREalstor
$ZROutines
$gtmroutines からの値を確立
$ZROutinesの値を設定
$ZROutines の例
$ZROutines のサーチタイプ
$ZROutines のサーチの例
$ZROUTINESの共有ライブラリファイルの指定
$ZSOurce
$ZStatus
$ZSTep
$ZSYstem
$ZTExit
$ZUSedstor
$ZUT
$ZVersion
$ZYERror
トリガの特殊変数( Intrinsic Special Variables ) ISV
$ZTDAta
$ZTDElim
$ZTLevel
$ZTNAME
$ZTOLdval
$ZTRIggerop
$ZTSlate
$ZTUPdate
$ZTVAlue
$ZTWOrmhole
9. 入力/出力処理
I/Oの組込特殊変数
デバイス名の変数
カーソル位置の変数
ステータス変数
I/Oデバイス
I/Oデバイスを認識
デフォルトのデバイス指定
どのようにI/Oデバイス パラメータが動作するか
デバイス パラメータの略語
ドキュメントの表記規則
デバイスに依存しないプログラミング
ターミナルの使用
ターミナルの特性を 設定
ターミナルの論理レコード
ターミナルのREAD * コマンド
ターミナルの READ X#maxlen コマンド
ターミナルのデバイスパラメータ概要
ターミナルの例
シーケンシャルファイルの使用
シーケンシャルファイルの特性を設定
シーケンシャルファイルのポインタ
ラインターミネータ
READ / WRITE 操作
バイナリ・ファイルの書き込み
シーケンシャルファイルのデバイスパラメータの概要
シーケンシャルファイルの例
FIFOの特性
FIFO実装における考慮事項
FIFOのエラー処理
GT.Mが認識するFIFO
FIFOデバイスの例
FIFO デバイスパラメータの概要
Nullデバイスの使用
Null デバイスパラメータの概要
Nullデバイスの例
PIPEデバイスの使用
PIPE操作のモード
PIPEの特性
PIPEデバイスの例
PIPEデバイスパラメータの概要
ソケットデバイスの使用
メッセージ マネージメント
ソケット読み取り操作
Socket Readの終了状態
メッセージの区切り文字
Read コマンド
WRITE コマンド
ソケットデバイスの操作
ソケット デバイスパラメータの概要
ソケットデバイスの例
I/Oコマンド
Open
Use
READ
Write
WRITE *
Close
デバイスパラメータの概要表
10. ユーティリティ ルーチン
ユーティリティの使い方
日付と時刻のユーティリティ
%D
%DATE
%H
%T
%TI
%TO
変換ユーティリティ
%DH
%DO
%HD
%HO
%LCASE
%OD
%OH
%UCASE
算術ユーティリティ
%EXP
%SQROOT
文字列ユーティリティ
%TRIM
%MPIECE
グローバル ユーティリティ
%G
%GC
%GCE
%GD
%GED
%GI
%GO
%GSE
%GSEL
ルーチン ユーティリティ
%FL
%RANDSTR
%RCE
%RD
%RI
%RO
%RSE
%RSEL
国際化ユーティリティ
システム管理ユーティリティ
%DSEWRAP
%FREECNT
%XCMD
Unicodeのユーティリティルーチン
%UTF2HEX
%HEX2UTF
GT.Mユーティリティの一覧表
11. 外部ルーチン統合
イントロダクション
非Mルーチンへアクセス
共有ライブラリをCreat作成
外部コールの使用
GT.M 外部インターフェイスへデータベース暗号化の拡張
出力パラメータの事前割り当て
コールバックのメカニズム
外部プログラムの制限事項
外部コールの使用
外部ルーチンからの呼び出し:コールイン(Call-Ins)
コールイン(Call-Ins)に関連するファイル
コールイン(Call-Ins)インインタフェース
スタンドアロン プログラムの構築
コールイン(Call-Ins)のネスト
コールイン(Call-Ins)でフォローするためのルール
コール・イン/コール・アウト(Call-in/Call-outs)の制限タイプ
12. 国際化
照合順序の定義
代替シーケンスのルーチンを保持する共有ライブラリを作成
環境変数の定義
デフォルトデータベースの照合メソッドの定義
ローカルの照合順序を確立する
代替の照合ルーチン作成
変換ルーチン (gtm_ac_xform_1 または gtm_ac_xform)
逆変換ルーチン (gtm_ac_xback またはor gtm_ac_xback_1)
バージョン制御 ルーチン (gtm_ac_version と gtm_ac_verify)
%GBLDEFユーティリティ使用
大文字と小文字のアルファベットの照合順序の例
gtm_ac_xform_1とgtm_ac_xback_1を使用して、逆の順序でアルファベットを照合する例
Unicodeの代替照合順序を実装
代替のパターンマッチ
パターンコードの定義
パターンコードの選択
13. エラー処理
コンパイル時の エラーメッセージフォーマット
コンパイル時のエラー処理
実行時のエラー メッセージのフォーマット
実行時エラーの処理
ダイレクトモードでのランタイムエラー
ダイレクトモードの外側で実行時エラー
エラーの処理プログラム
$ECODE
$ZSTATUS の内容
$ZERROR と $ZYERROR
$ETRAP の挙動
$ETRAPのネストと $ESTACKの使用
$ZTRAP の挙動
$ETRAPと$ZTRAPの違い
$ETRAPで$ZTRAPの 相互作用
$ETRAPまたは$ZTRAPの選択
エラー処理の注意点
入出力 エラー
エラーのアクション
エラー時のブレーク
エラー時の無条件転送
各レベルでの$ZTRAPを設定
エラー処理のネスト
エラー時の実行終了
その他のアクションに$ZTRAPを設定
$ETRAP と$ZTRAPのエラー処理オプションの概要
$ZTRAPでのエラー
エラーに関する情報の記録
14. トリガ
トリガ
トリガの定義ファイル
トリガ ISVの概要
チェインとネストのトリガ
簡単な例
トリガ定義の保管
トリガ呼出と実行のセマンティクス
Kill / ZKill
Set
トリガの実行環境
トリガ実行中のエラー処理
ZGoto
トリガを実行するソースコードへのアクセス
GT.CM
その他のユーティリティ
ジャーナリングとデータベースのレプリケーションのトリガ
ジャーナリング
マルチサイトのデータベース レプリケーション
MUPIP トリガ と $ZTRIgger()
A. M言語コーディング標準 - ワンポイント・アドバイス(Do's and Don'ts)
M言語コーディング標準 - ワンポイント・アドバイス(Do's and Don'ts)
すること
してはいけない事(べからず集)
inserted by FC2 system