変数に日本語を使用出来る様にして欲しい

今の言語仕様やライブラリはココが足りないんじゃ…、エディタや周辺ツールにこんな機能が必要なのでは…!?このような要望、具体的な提案などがありましたら、こちらのフォーラムをご活用ください。
返信する
メッセージ
作成者
hc

変数に日本語を使用出来る様にして欲しい

#1 投稿記事 by hc »

JavaScript,vba,HSP等は変数に日本語が使用出来るので、変数に対するコメントを記述する必要がなく重宝してます。
是非ABにも宜しくお願いいたします。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#2 投稿記事 by konisi »

日本語変数の件、賛成です。


漢字も使えると便利だと思いますが、
幽霊文字や外国の文字・記号・数字等の全角文字の扱いはどうしましょう?
変数名で=とか1とかは良くないと思うのですが。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#3 投稿記事 by イグトランス »

個人的には使う気になりませんが,使えないなんてのはただの制約でしかないと思っていますから賛成です。

----------------
以下技術的な話です。

どんな文字を許すかという基準はUnicodeを参照して明確にすればよいでしょう。

Unicodeでは各文字に対して様々な属性 (property)を付与していますが,中でも一般カテゴリ値 (General Category Values)が数字,記号,空白などといった分類を提供しています。
これは大分類と小分類の2字からなっており,例えばLu (letter, uppercase; 大文字)やSm (symbol, math; 数学記号)という具合です。
http://www.unicode.org/Public/UNIDATA/UCD.htmlから入手できるUnicodeData.txtが一覧になっています。

これを具体的に使用したものとしてC#が挙げられます。
C# 3.0言語仕様(http://msdn2.microsoft.com/en-us/vcsharp/Aa336809.aspxから入手可)の「2.4.2 Identifiers」をまとめると,次のようになっています。
  • 1文字目はLu, Ll, Lt, Lm, Lo, Nlに属す文字と下線 (U+5F)
  • 2文字目以降はそれに加えMn, Mc, Nd, Pc, Cfも使用可能
これを当てはめると次のようになります。
  • 仮名漢字は全てLoに属するので使用可能
  • =(全角, U+FF1D)はSmなので使用不可能
  • 1(全角, U+FF11)はNdなので2文字目以降に使用可能(現在の半角数字と同じ扱い)
ほか特記すべきこととして,「2.3.3 White space」で空白文字にタブなどのほか,Zsに属す文字全てを指定していることがあります。
つまり全角空白が半角空白同様に使用可能なのです。

あとは改行がCR (U+0D), LF (U+0A), CR LFの並びのほか,NL (U+85), 行区切り (U+2028), 段落区切り (U+2029)となっているところも注目点でしょうか。
そもそもABってUnicode使った文字コードのソースをコンパイルできたけって気がしますけど。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#4 投稿記事 by konisi »

コード: 全て選択

#N88BASIC

Print "テストプログラム1"
上のソースコードの各キャラクタセットを試してみたところ、AB423では

Unicode:文法が間違っていると怒られる。
UTF-8:コンパイラが認識できない文字が含まれていると言われる。
UTF-8N:コンパイルは可能。ただし文字化けする。
EUC:コンパイルは可能。ただし文字化けする。
JIS:コンパイルは可能。ただし文字化けする。
S-JIS:正常。

という結果になりました。(改行コードはCRLFで試しました。)

(コンパイラの)パーサとスキャナをUnicode用に直して、文字をUnicodeに変換するプログラムを追記するという作業をすればなんとかなりそうな気がしますが。

ソース→[スキャナ(SJIS)]→[パーサ(SJIS)]→[コードジェネレータ]→実行ファイル

ソース(character:Unknown)→[変換]→[スキャナ(Uni)]→[パーサ(Uni)]→[コードジェネレータ]→実行ファイル
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
イグトランス
記事: 899
登録日時: 2005年5月31日(火) 17:59
お住まい: 東京都
連絡する:

#5 投稿記事 by イグトランス »

実際には出力時も変換が要る場合もあります(AB5の非UNICODEモード)。
GCCが実際にそういう風に作られており,入力時と出力時の変換に用いる文字コードをそれぞれ--input-charset, --exec-charsetというオプションで指定できるようになっています。

その例のUTF-8N, EUC, JISで書いたプログラムは,コンソールやプロンプトウィンドウを使わず,ファイルに入出力するようにするとうまくいくと思います(もちろんファイルの中身は当該の文字コードになると思います)。
返信する