No. 134/622 Index Prev Next
Path: titcca!ccut!ascgw!cskvax!shige
From: shige@cskvax.csk.JUNET (Shigeki Yoshida)
Newsgroups: fj.kanji
Subject: Re: long char (Re: EUC &  SJIS &  JIS) (In KANJI)
Message-ID: < 518@cskvax.csk.JUNET> 
Date: 10 Aug 87 11:27:04 GMT
References:  < 856@srava.sra.JUNET> 
Reply-To: shige@cskvax.csk.JUNET (Shigeki Yoshida)
Distribution: fj
Organization: CSK corp., Tokyo, Japan
Lines: 78
Posted: Mon Aug 10 20:27:04 1987

吉田です。

article < 856@srava.sra.JUNET>  で
	kameyama@srava.UUCP (亀山豊久) さんが
> 4. CSK の JNIX (内部 16 形式)
>     処理コードの type
> 	typedef unsigned short int kanzi;
                                      ^
	typedef unsigned short int kanji; です。

> 一番いいのはコードを全く意識しないですむことだと思います.
> 提案では安易に内部コードの統一と言ってしまいましたが,
> 他の方法も考えられます.
> 内部コードというとアルファベットの場合は ASCII と EBCDIC が代表的でしょう.
> それから考えると, 文字定数, 文字列定数および ``ctype''
> みたいな内部コードを意識しないですむ仕掛けが使えればいいのかも知れません.
> (しかし, ``ctype'' のような関数 (文字種の判定, 変換) がどれくらいあれば
> いいのだろうか?)

  ここで亀山さんが言っているのは、プログラム内部で漢字を直接扱う
時の問題ですね。つまり、日本語を意識することなく扱う為に必要な処理
として、

	1)プログラムへの漢字(データー)の入出力
	2)プログラム内部での漢字データーの扱い

があるという事です。今までは主に1)の事を問題にしてきた訳ですが、
ここで2)のような事も、実際のプログラミングをする上では必要と
思われます。

  ただ、2)を実現するにはcc(またはcpp)に手を加える必要が出て
きますが、可能ならばそうしたほうがいいと思います。文字定数, 文字列定数
に直接漢字が使えるだけでもかなり違いますからね。

例えば、アルファベットと同じ様に

	if (char > = '亜') {	/* JIS 1st or 2nd kanji */

とか

	pointer = " 漢字混じりのstrings" ;

といった使い方が出来ればいい訳です。(当然 char とか pointer は
”漢字とアルファベットを同時に扱える文字型”で宣言してある必要が
あります。蛇足ですが、通常のchar型でも漢字混じりの文字列定数
は、ccの変更なしに使えます[一部のSJISコードを除きます])

  実際には、ccをいじくる事になると、パブリックドメインのcコンパイ
ラーがいりますね。しかも、各漢字コードに対応したものを作る必要があり
ます。(統一した内部コードを使うにしろ、上のように使うならば、ソース
コードの時点ではどれかの漢字コードで書いてある訳ですからね)

> > > 1. ランダム・アクセスがやりにくい.
> > > 2. 構造体を一括して入出力することがやりにくい.
> > これも確かに問題です。read(),write()を使うような
> > プログラムは一切書けなくなります。
> 極論を言うと, read/write を使うようなファイルはそのプログラム以外で
> 読める必要があるのでしょうか?
> binary としてなら内部コードを直接入れるやり方もあります.
> または, read/write の直前に 1 byte 文字列 (char *) に
> 直すという方法も考えられます.
> 実際に日本語を処理するときは 1 文字単位で扱ったほうがはるかに
> 楽だと思うのですが...

  そうですね。ただ現実問題として、既存のツールやアプリケーション
を日本語化しようとすると先のような問題が出てくるんですよね。
(悲しいことに、日本では新しいアプリケーションを作るのと同じくらい、
既存のコマンドやアプリケーションの日本語化という仕事が存在している
んですよね)

  そうすると、いかにして新しいプログラムを書く時の書き易さと、
既存のコマンド等の日本語化のし易さを合わせ持ち、漢字コードを意識
しないでプログラムが書ける、ライブラリーやその他の仕掛け(コンパイ
ラー等)を用意するかですね。

-- 
(株)CSK・技術開発事業本部・商品開発部・吉田茂樹
					    shige@csk.JUNET
Next
Continue < 881@srava.sra.JUNET>