# 日本語 Compaq OpenVMS

# 日本語ライブラリ 利用者の手引き

AA-PU8NE-TE

# 2001 年 7 月

本書は，日本語データを取り扱うための基本的な機能を提供する日本語ライブラリについての説明書です。

改訂／更新情報: | 日本語 OpenVMS V6.1 『日本語ライブラリ利用者の手引き』の改訂版です。
ソフトウェア・バージョン: | 日本語 Compaq OpenVMS Alpha V7.3 日本語 Compaq OpenVMS VAX V7.3

コンパックコンピュータ株式会社

(C) 2001 Compaq Computer Corporation

本書の著作権はコンパックコンピュータ株式会社が保有しており，本書中の解説および図，表はコンパックの文書による許可なしに，その全体または一部を，いかなる場合にも再版あるいは複製することを禁じます。

また，本書に記載されている事項は，予告なく変更されることがありますので，あらかじめご承知おきください。万一，本書の記述に誤りがあった場合でも，コンパックは一切その責任を負いかねます。

本書で解説するソフトウェア(対象ソフトウェア)は，所定のライセンス契約が締結された場合に限り，その使用あるいは複製が許可されます。

コンパックは，コンパックまたはコンパックの指定する会社から納入された機器以外の機器で対象ソフトウェアを使用した場合，その性能あるいは信頼性について一切責任を負いかねます。

以下は，米国 Compaq Computer Corporation の商標です。

COMPAQ，VAX，VMS および Compaq ロゴ。

以下は，他社の商標です。

Adobe，Adobe Illustrator，POSTSCRIPT は米国 Adobe Systems 社の商標です。

BITSTREAM は米国 Bitstream 社の商標です。

COMPAQ は米国COMPAQ Computer 社の商標です。

Microsoft，MS および MS--DOS は米国 Microsoft 社の商標です。

Motif，OSF，OSF/1，OSF/Motif および Open Software Foundation は米国 Open Software Foundation 社の商標です。

その他のすべての商標および登録商標は，それぞれの所有者が保有しています。

次へ | 目次 | 索引 | DOC HOME

# まえがき

# 本書の目的

本書は，日本語 Compaq OpenVMS でサポートされるプログラミング言語を使用して日本語アプリケーションを作成するための，ライブラリ・ルーチンについて解説します。

# 対象読者

本書は，少なくとも1つのプログラミング言語を理解し，Compaq OpenVMS オペレーティング・システムとランタイム・ライブラリの概念を理解しているシステム・プログラマおよびアプリケーションのプログラマを対象としています。

# 本書の構成

本書は，6つの章と2つの付録から構成されています。

第 1 章 | 日本語ライブラリ・ルーチンの概要について説明します。
第 2 章 | 日本語ライブラリ・ルーチンの簡単な使用例について説明します。
第 3 章 | 汎用ライブラリのルーチンについて説明します。
第 4 章 | 基本ライブラリのルーチンについて説明します。
第 5 章 | かな漢字変換ライブラリのルーチンについて説明します。
第 6 章 | 漢字コード変換ライブラリのルーチンについて説明します。
付録 A | かな漢字変換入力ルーチン，および，それを利用している日本語ユーティリティにおける変換キーの配列について説明します。
付録 B | 日本語ライブラリ，および，それを利用する日本語ユーティリティでの各種変換対応表を示します。

# 関連資料

- 『 OpenVMS RTL Library (LIB$) Manual 』

- 『 OpenVMS RTL General Purpose (OTS$) Manual 』

- 『 OpenVMS RTL Parallel Processing (PPL$) Manual 』

- 『 OpenVMS RTL Screen Management (SMG$) Manual 』

- 『 OpenVMS RTL String Manipulation (STR$) Manual 』

- 『 VMS RTL Mathematics (MTH$) Manual』

- 『 VMS RTL DECtalk (DTK$) Manual 』

# 表記法

製品名について

本書では，「日本語 Compaq OpenVMS Alpha 」は「日本語 Compaq OpenVMS Alpha オペレーティング・システム」を，「日本語 Compaq OpenVMS VAX 」は「日本語 Compaq OpenVMS VAX オペレーティング・システム」を指します。また特に明記しない限り，「日本語 Compaq OpenVMS 」は，「日本語 Compaq OpenVMS Alpha オペレーティング・システム」および「日本語 Compaq OpenVMS VAX オペレーティング・システム」の両方を指します。

本書では，次の表記法を使用します。

表記法 | 意味
--- | ---
Ctrl/x | Ctrl/x という表記は， Ctrl キーを押しながら別のキーまたはポインティング・デバイス・ボタンを押すことを示します。
PF1 x | PF1 x という表記は，PF1 に定義されたキーを押してから，別のキーまたはポインティング・デバイス・ボタンを押すことを示します。
`[Return]` | 例の中で，キー名が四角で囲まれている場合には，キーボード上でそのキーを押すことを示します。テキストの中では，キー名は四角で囲まれていません。 HTML 形式のドキュメントでは，キー名は四角ではなく，括弧で囲まれています。
... | 例の中の水平方向の反復記号は，次のいずれかを示します。 文中のオプションの引数が省略されている。 前出の 1 つまたは複数の項目を繰り返すことができる。 パラメータや値などの情報をさらに入力できる。
. . . | 垂直方向の反復記号は，コードの例やコマンド形式の中の項目が省略されていることを示します。このように項目が省略されるのは，その項目が説明している内容にとって重要ではないからです。
( ) | コマンドの形式の説明において，括弧は，複数のオプションを選択した場合に，選択したオプションを括弧で囲まなければならないことを示しています。
[ ] | コマンドの形式の説明において，大括弧で囲まれた要素は任意のオプションです。オプションをすべて選択しても，いずれか1つを選択しても，あるいは1つも選択しなくても構いません。ただし，OpenVMS ファイル指定のディレクトリ名の構文や，割り当て文の部分文字列指定の構文の中では，大括弧に囲まれた要素は省略できません。
[|] | コマンド形式の説明では，括弧内の要素を分けている垂直棒線はオプションを 1 つまたは複数選択するか，または何も選択しないことを意味します。
{ } | コマンドの形式の説明において，中括弧で囲まれた要素は必須オプションです。いずれか1のオプションを指定しなければなりません。
太字 | 太字のテキストは，新しい用語，引数，属性，条件を示しています。
italic text | イタリック体のテキストは，重要な情報を示します。また，システム・メッセージ (たとえば内部エラー number)，コマンド・ライン(たとえば /PRODUCER= name)，コマンド・パラメータ(たとえば device-name) などの変数を示す場合にも使用されます。
UPPERCASE TEXT | 英大文字のテキストは，コマンド，ルーチン名，ファイル名，ファイル保護コード名，システム特権の短縮形を示します。
`Monospace type` | モノスペース・タイプの文字は，コード例および会話型の画面表示を示します。 C プログラミング言語では，テキスト中のモノスペース・タイプの文字は，キーワード，別々にコンパイルされた外部関数およびファイルの名前，構文の要約，または例に示される変数または識別子への参照などを示します。
- | コマンド形式の記述の最後，コマンド・ライン，コード・ラインにおいて，ハイフンは，要求に対する引数がその後の行に続くことを示します。
数字 | 特に明記しない限り，本文中の数字はすべて10 進数です。 10 進数以外 (2 進数，8 進数，16 進数) は，その旨を明記してあります。

# 第 1 章
概要

日本語ライブラリは，日本語データを取り扱うための基本的な機能を提供するライブラリです。基本的な日本語文字列操作，文字列変換，ローマ字/かな漢字変換，漢字コード変換などを含み，Compaq OpenVMS オペレーティング・システムでサポートされるすべてのプログラミング言語から呼び出すことができます。ユーザのプログラム内から呼び出すことにより，日本語アプリケーションを簡単に作成することができます。

# 1.1 ライブラリ構成

日本語ライブラリは，以下の4種類のライブラリより構成されています。

- 汎用ライブラリ

  プログラミング言語から標準的なインターフェイスで利用できる各種日本語処理ルーチン群

- 基本ライブラリ

  1文字単位の変換など，より細かな処理を行うためのルーチン群

- かな漢字変換ライブラリ

  かな漢字変換を行うためのルーチン群

- 漢字コード変換ライブラリ

  DEC 漢字コードを他社の漢字コードへ，他社の漢字コードを DEC 漢字コードへ変換する漢字コード変換ルーチン群

これらのライブラリのうち，汎用/基本ライブラリ，かな漢字変換ライブラリは，次の共有イメージ・ファイル に含まれています。

SYS$SHARE:JSYSHR.EXE

また，漢字コード変換ライブラリは，次のオブジェクト・ライブラリ・ファイル に含まれています。

JSY$LIBRARY:JSYLIB.OLB

# 1.2 リンク方法

漢字コード変換ライブラリを除いた日本語ライブラリを，ユーザのプログラムとリンクするには，以下のように共有イメージ SYS$SHARE:JSYSHR.EXE とリンクしてください。

## 例

>          $ LINK PROG,SYS$INPUT/OPTION
>          SYS$SHARE:JSYSHR/SHARE
>          $

> または

>          $ LINK PROG,JSY$LIBRARY:JSYSHR/OPTION

漢字コード変換ライブラリを含んだ日本語ライブラリを，ユーザのプログラムとリンクするには，以下のようにオブジェクト・ライブラリ JSY$LIBRARY:JSYLIB.OLB および共有イメージ SYS$SHARE:JSYSHR.EXE とリンクしてください。

## 例

>          $ LINK PROG,JSY$LIBRARY:JSYLIB/LIBRARY,SYS$INPUT/OPTION
>          SYS$SHARE:JSYSHR/SHARE

> または

>          $ LINK PROG,JSY$LIBRARY:JSYLIB/LIBRARY,JSY$LIBRARY:JSYSHR/OPTION

漢字コード変換ライブラリのみの日本語ライブラリを，ユーザのプログラムとリンクするには，以下のようにオブジェクト・ライブラリ JSY$LIBRARY:JSYLIB.OLB とリンクしてください。

## 例

>          $ LINK PROG,JSY$LIBRARY:JSYLIB/LIBRARY

# 第 2 章
日本語ライブラリの使用例

この章では，Compaq OpenVMS オペレーティング・システムでサポートされる各プログラミング言語からの日本語ライブラリの簡単な使用例を示します。標準の実行時ライブラリと同じように使用することができ，日本語エディタでプログラムを作成することにより，注釈や文字リテラルにも日本語を使用することができます。

# 2.1 DEC FORTRAN における日本語の使用例

         JSY$EXAMPLES:GETINPUT.FOR

    $
    $ type getinput.for
     program         sample
     character buff*40
     integer  stat

    ! 注釈に日本語が使えます。

     type *,'DEC FORTRAN では、文字リテラルに日本語が使えます。'

     do while (jlb$get_input(buff,'データ入力 : ',leng))
        type *,'データ出力 : ',buff
     end do

     end
    $
    $ fortran getinput
    $ link    getinput,jsy$library:jsyshr/option
    $ run     getinput
    DEC FORTRAN では，文字リテラルに日本語が使えます。
    データ入力 : 日本語データの
    データ出力 : 日本語データの
    データ入力 : 入出力が可能です。
    データ出力 : 入出力が可能です。
    データ入力 : ＊EXIT＊
    $

# 2.2 DEC C における日本語の使用例

         JSY$EXAMPLES:GETINPUT.C

    $
    $ type getinput.c
    #include <stdio.h>
    #include <ssdef.h>
    #include <descrip.h>
    main () /* 注釈に日本語が使えます。*/
    {
       static char buff[40];
       static char prom[] = "データ入力 : ";
       $DESCRIPTOR(buf,buff);
       $DESCRIPTOR(pro,prom);
       short len;

       printf("\nDEC C では、文字リテラルに日本語が使えます。\n");
       while (jlb$get_input(&buf,&pro,&len) == SS$_NORMAL) {
          buff[len] = 0;
          printf("データ出力 : %s\n",buff);
       }
    }
    $
    $ cc    getinput
    $ link  getinput,sys$input:/option
    sys$share:jsyshr.exe/share
    *EXIT*
    $ run   getinput
    DEC C では，文字リテラルに日本語が使えます。
    データ入力 : 日本語データの
    データ出力 : 日本語データの
    データ入力 : 入出力が可能です。
    データ出力 : 入出力が可能です。
    データ入力 : ＊EXIT＊
    $

# 2.3 MACRO における日本語の使用例

         JSY$EXAMPLES:GETINPUT.MAR

    $
    $ type getinput.mar
     .title test

     .psect data
     .show
     .macro string str
     .ascid /str/
     .endm string

    data1: .ascid /MACRO では、文字リテラルに日本語が使えます。/
    data2: string <MACRO では、マクロに日本語が使えます。>
    inp: string <データ入力 : >
    oup: .long b3-b1
     .address b1
    buff: .long b3-b2
     .address b2
    b1: .ascii /データ出力 : /
    b2: .blkb 40
    b3:
       .psect code
     .entry test,^m<> ; 注釈に日本語が使えます。
     pushaq data1
     calls #1,g^lib$put_output
     pushaq data2
     calls #1,g^lib$put_output
    loop:
     pushaq inp
     pushaq buff
     calls #2,g^jlb$get_input
     blbc r0,eof
     pushaq oup
     calls #1,g^lib$put_output
     brb loop
    eof:
     $exit_s

     .end test

    $
    $ macro getinput
    $ link  getinput,jsy$library:jsyshr/option
    $ run   getinput
    MACRO では，文字リテラルに日本語が使えます。
    MACRO では，マクロに日本語が使えます。
    データ入力 : 日本語データの
    データ出力 : 日本語データの
    データ入力 : 入出力が可能です。
    データ出力 : 入出力が可能です。
    データ入力 : ＊EXIT＊
    $

次へ | 目次 | 索引