ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2017年11月21日(火) 20:47

All times are UTC+09:00




新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2007年11月25日(日) 06:37 
JavaScript,vba,HSP等は変数に日本語が使用出来るので、変数に対するコメントを記述する必要がなく重宝してます。
是非ABにも宜しくお願いいたします。


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2007年11月25日(日) 10:34 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
住所: 埼玉県東松山市
日本語変数の件、賛成です。


漢字も使えると便利だと思いますが、
幽霊文字や外国の文字・記号・数字等の全角文字の扱いはどうしましょう?
変数名で=とか1とかは良くないと思うのですが。

_________________
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2007年11月25日(日) 15:02 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 895
住所: 東京都
個人的には使う気になりませんが,使えないなんてのはただの制約でしかないと思っていますから賛成です。

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

どんな文字を許すかという基準は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使った文字コードのソースをコンパイルできたけって気がしますけど。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2007年11月25日(日) 23:09 
オフライン

登録日時: 2005年7月25日(月) 13:27
記事: 893
住所: 埼玉県東松山市
コード:
#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を主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2007年11月26日(月) 00:16 
オフライン

登録日時: 2005年5月31日(火) 17:59
記事: 895
住所: 東京都
実際には出力時も変換が要る場合もあります(AB5の非UNICODEモード)。
GCCが実際にそういう風に作られており,入力時と出力時の変換に用いる文字コードをそれぞれ--input-charset, --exec-charsetというオプションで指定できるようになっています。

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


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 5 件の記事 ] 

All times are UTC+09:00


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[1人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by KONISHI Yohsuke