楽屋裏 - Casio Basic コメントアウト ' のバグ

楽 屋 裏
e-Gadget

追記 2015/07/15
追記 2016/04/09

Casio Basic のコメントアウト ' のバグ報告です。

※ [2016/04/09: カシオの対応を確認]

※ [2015/07/15: カシオに問い合わせた結果を追記]


バグが確認されているのは、以下の機種とOSバージョンです。
  • fx-9860G OS 1.04
  • fx-9860GII OS 2.04 
  • fx-CG20 / fx-CG10 OS2.00
fx-5800P には、コメントアウト機能が無いので、対象外です。


先ず最初に、以下をそれぞれ実行すると、問題ありません。

Locate 1,1,"Line:1"

Text 1,1,"Line:1"

"Line:1"



次に、それぞれをコメントアウトして実行すると、エラーになります。

'Locate 1,1,"Line:1"

'Text 1,1,"Line:1"

'"Line:1"


一方、以下のように区切りコード := に変えれば、コメントアウトしてもエラーになりません。

'Locate 1,1,"Line=1"

'Text 1,1,"Line=1"

"Line=1"


さて、コメントアウト '  について、fx-9860GII OS 2.04 の取扱説明書には、以下のように説明されています。

' (コメント文指定)
機能 : プログラム中にコメント文を挿入します。
解説 : 行の先頭に ' を入力した行はコメント文として扱われ、実行時には無視されます。

仕様通りの動作ではなさそうです。

==========


ここで、1つ前の OS 2.01 でのバグが思い出されます。

Casio Basic のバージョンとバグ

Locate 1,1,"Line:1"

で、エラーになったバグです。" " で囲まれる文字列の中に、区切りコード : が含まれることで、バグが発生しました。字句解析に失敗していたと考えられます。

なお、この OS バージョンでは、旧来の出力命令 " " では、バグが発生していません。例えば、

"Line:1"

はバグになりませんでした。

なお、このバグは、最新の OS バージョンでは解消されていることが分かっています。

==========


現状では、解消したかに見える区切りコード : の字句解析のバグが、コメントアウト ' が絡むと解消されていないようです。

区切りコード : は、fx-9860GII OS2.04 の取扱説明書では、以下のように説明されています。

: (区切りコード)
機能 : 2つの文を結合し、途中で停止せずに、連続して実行します。
解説 : 
・出力コマンド(◢) と異なり、区切りコードで結合した文は途中停止せずに実行されます。
・区切りコードは2つの計算式や2つのコマンドを結合するために使われます。
・区切りコードの代わりに、 (キャリッジリターン)を使うこともできます。


字句解析において、区切りコードが (キャリッジリターン)として認識されているとすると、ここで  記号を使って表現すると、

'Locate 1,1,"Line:1"↵

は、

'Locate 1,1,"Line↵
1"↵


と同じことになり、2行目でエラーになるのは当然です。

ならば、このエラーを解消するには、2行目の最初に ' を追加してコメント文にすれば良いはずです。

'Locate 1,1,"Line↵
'1"↵


これはエラーになりません。それなら、区切りコードを使って元の1行に戻して、

'Locate 1,1,"Line:'1"↵

とすると、エラーにならないことが確認できました。


これで、 ' でコメントアウトされた行の字句解析において、区切りコード : (キャリッジリターン)と解釈してしまっていることが分かります。

==========


結果として、Casio Basic で、 ' でコメントアウトする行に 区切りコード : が含まれると発生するエラーは、面倒でも区切りコードの直後にもう一つ ' を入れることで、対処できることが分かりました。


他のグラフ関数電卓での状況について、情報をお寄せ頂ければ幸いです。
[2015/07/07 追記]
sentaro様からコメント欄で情報をお寄せ頂きました。バグ発生が確認された機種とOSバージョンは記事冒頭に追記しました。


ところで、コメントアウトの入力ですが、[SHIFT] [4] (CATALOG) から、延々と探して入力しています。もっと楽に入力できる方法があれば、教えて頂けませんか?

 ⇒ sentaro様から情報を頂きました。コメント欄にも書いたように、これが使えないと私が思い込んでいましたが間違っていました。

[2015/07/07 追記]
プログラムの編集画面に入った時の状態で、
[F6] (CHAR) [F2] (SYBL) [▶] [▶] [▶] [▶] [▶] [▶] (右矢印6回) で ' を選び、[EXE]


[2015/07/15 追記]
本件、カシオに問い合わせをし、回答を頂きました。
これは、取扱説明書のバグとのことで、次回のバージョンアップで対処するとのことです。

「コメントアウト ' を行頭に付けると、行頭から 区切りコード : 、キャリッジリターン 、出力命令  までをコメント文として扱う」のが仕様であって、次回のバージョンアップ時に下記のように取扱説明書の記載を改訂するとのことです。

【現在の取扱説明書の記載】

 解説:行の先頭に ’ を入力した行はコメント文として扱われ、

 実行時には無視されます。

   ↓

【改訂後の取扱説明書の記載】

 解説:行の先頭に ’ を入力した行は

  :(区切りコード) (キャリッジリターン) ▲(出力コマンド)

 までをコメント文として扱われ、実行時には無視されます。


なお、コメントアウトする場合は、その行にある 区切りコード : 、キャリッジリターン 、出力命令  の直後に ' を入れるのは、正しい対策とのことです。

問い合わせをしてから比較的時間がかかりましたが、取扱説明書の記載の改訂という、結論に至るまでの時間と考えれば、納得です。いつもように真摯な対応でした。


[2016/0409 追記]
本件に関するカシオの見解は、コメントアウトの動作は仕様通りで、むしろ取扱説明書のバグ で、次の取扱説明書の改訂時に修正するとのことでした。

fx-9860GII (バージョン 2.09) ソフトウェア取扱説明書

カシオのサイトで、ソフトウェア取り扱説明書が改訂され バージョン 2.09 になっており、そこでコメントアウトの機能説明が修正されていることが確認されました。



応援クリックをお願いします。励みになるので...

人気ブログランキングへ


FC2ブログランキングへ


  


keywords: fx-9860GII、CasioBasicプログラム関数電卓コメントアウトバグ

リンク集 | ブログ内マップ
関連記事

テーマ : プログラム関数電卓
ジャンル : コンピュータ

コメントの投稿

非公開コメント

No title

管理人様、こんにちは!

コメントアウト ' のバグは全然気が付いてませんでした。
fx-9860Gの1.04でもfx-CG10の最新OS2.00でも同様にエラーになります。
管理人様の推測の通り、コメントアウト内で:の字句解析がまだ失敗してるっぽいですね(^^;
最新OSでの改善は””の場合だけみたいですね。

>もっと楽に入力できる方法があれば、教えて頂けませんか?

エディトモードに入った時の[F6]のCHARで入力するのが一番速いでしょうか。

' の入力方法

sentaro様

他機種でのテスト結果、大変ありがとうございます。

やはり、カシオもここまで手が回って無いことが分かりました。

コメントアウトは、あまり利用しないのかも知れません。私の場合は、入門講座の準備の時だけコメントアウトを多用するので....

ところで、' の入力にキャラクタから選ぶのは上手く行かないんです。コマンドとしてのコードが割り振られているのでしょう。

CATALOG 以外からの楽な入力方法が無いのは、カシオもバグを知ってて、目立たせたくないと考えているんじゃないかと、邪推してしまいます。


Re: ' の入力方法

管理人様、

>ところで、' の入力にキャラクタから選ぶのは上手く行かないんです。コマンドとしてのコードが割り振られているのでしょう。

!から右に6番目の’だと上手くいっているようなんですが、どうでしょう?

Re: Re: ' の入力方法

sentaro様

あ"、本当ですね。Charactorから選んでエラーにならないです。

以前、確かにエラーになったはずなのですが....


ひょっとして、今回分かったエラーを、その時経験していて、文字の選び方が悪かったと勘違いしたのかも知れません。
...というか、それくらいしか思いつきません。

ありがとうございます、長い間の疑問がスッキリと解けました(^_^)/

マニュアルのバグ(^^;

管理人様、こんにちは!

コメントアウト ' のバグではなくて、マニュアルのバグだったとは…
これは一本取られました(^^;

ま、でも、よくよく考えてみれば、改行が無くても動作するCasioBasicの仕様上、改行と同等な意味を持つ「 :」や「◢ 」 でもコメントアウトの終わりとするのはバグとはいえないかもですね。

Re: マニュアルのバグ(^^;

sentaro様


> コメントアウト ' のバグではなくて、マニュアルのバグだったとは…
> これは一本取られました(^^;
>
> ま、でも、よくよく考えてみれば、改行が無くても動作するCasioBasicの仕様上、改行と同等な意味を持つ「 :」や「◢ 」 でもコメントアウトの終わりとするのはバグとはいえないかもですね。


字句解析に失敗していることは間違いないのですが、おそらくプログラムを修正するのは大変なのでしょう。

そこで、マニュアルを改訂するという判断ですが、各国語のマニュアルを全部改訂するのですから、それなりのコストは発生するはずです。

うやむやにせず、正しい対処が判断されたと、私は理解しています。

ユーザーの要望をくみ上げる姿勢にブレの無いカシオのカスタマーサポートは、健在ですね。

最新記事
最新コメント
カテゴリ
C# (3)
検索フォーム
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム関数電卓は、プログラムを作り・使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています

おもしろい・役に立つならクリックしてください。励みになります。

人気ブログランキングへ


FC2ブログランキングへ


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

RSSリンクの表示
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

QRコード
QR