[設定]および[ファイルの種類]の説明です.設定可能な項目について以下に詳しく説明します.

[簡単なセッティング]についてはこちらを参照(ページ最下部).

(1)ファイルの種類
 コメントを取り除く際に,どの言語のコメントかを判断するためのものです.
 (拡張子によるファイル種別の自動判別は行なっていません)
(コメントの形式)
  • C言語:    /*   */の形式(複数行に渡るものも可)に対応.ただしコメントのネストには対応しない.
  • C++言語:  /*  */に加え,//(行末まで)にも対応
  • N88BASIC: REM および ' (行末まで)に対応.ただしマルチステートメントは考慮外.
 それぞれ文字列中に上記コメント開始記号が含まれていても判別(=無視)できます.
  例)  printf("^_^ /** \n");
 この場合の "/*"は文字列中に含まれているので無視される.

(テキストファイル/バイナリーファイル)
  C/C++/N88BASICなどのソースファイル以外のファイルの固有IDを調べる場合に選択して下さい.

  • テキストファイル: コメントや文字列を判断しません.改行,TAB,半角/全角スペースの無視や大文字への変換の効果は反映されます.
  • バイナリーファイル: 一切の効果は反映されず,ただひたすらに1byte単位でデータを読んで固有IDを計算します.
(2)コメントを無視
 このチェックボックスをONにすると,ソースプログラム中のコメント(C言語,C++言語,N88BASICに対応)を無視します.つまりこのチェックボックスをONにしておけば,「コメントだけ書き換えた同じプログラム」を発見できます.厳しすぎるかな?と思う場合はチェックボックスをOFFにして下さい.
(3)文字列を無視
 このチェックボックスをONにすると,ソースプログラム中の文字列(""で括られた文字列)を無視します.つまりこのチェックボックスをONにしておけば,「画面に表示される文字をちょっと変えただけの同じプログラム」を発見できます.同じく,厳しすぎるかな?と思う場合はチェックボックスをOFFにして下さい.
(4)改行コードを無視
 このチェックボックスをONにすると,テキストファイル中の改行コード(CR/LF)を無視します.つまりこのチェックボックスをONにしておけば,「無闇やたらと改行を打って行数を増やしただけのプログラム」を発見できます.
(5)TABコードを無視
 このチェックボックスをONにすると,テキストファイル中のTABコード('\t')を無視します.つまりこのチェックボックスをONにしておけば,「インデントを取り除いただけのプログラム」を発見できます.後述する「半角空白を無視」と組み合わせると良いでしょう.
(6)半角空白を無視
 このチェックボックスをONにすると,テキストファイル中の半角スペース(' ')を無視します.つまりこのチェックボックスをONにしておけば,「無意味な空白を挿入して嵩張らせただけのプログラム」を発見できます.前述した「TABコードを無視」と組み合わせることで,「インデントの違うだけのプログラム」を発見できます.
(7)全角空白を無視
 このチェックボックスをONにすると,テキストファイル中の全角スペース(" ")を無視します.つまりこのチェックボックスをONにしておけば,「文字列に空白を挿入して見栄えをちょこっと変えただけのプログラム」や「コメントをちょっと変えただけのプログラム」を発見できます.多くのプログラミング言語はコメントや文字列中以外に全角空白の使用を許していませんので「コメントを無視」や「文字列を無視」をOFFにしている場合にはあまり意味がありません.
(8)大文字に変換
 このチェックボックスをONにすると,テキストファイル中の半角アルファベット('a'から'z')を全て大文字化した上で固有IDを計算します.つまりこのチェックボックスをONにしておけば,「変数名を大文字に変えただけのプログラム」を発見できます.変数名を完全に違うものに全て置き換えられた場合にはチェックできませんが,往々にして課題に出すプログラムは似たようなプログラム構造になるものですし,頑張って変数名を変えた学生のスキルくらいは評価してあげても良いのではないでしょうか.
(9)複雑なID計算

 固有IDの計算に複雑な計算方法を用います.このチェックボックスをOFFにすると,「A = B + C」と「B = A + C」は同じ固有IDを算出します.このチェックボックスをONにすると,これらは判別されます.固有IDの計算方法の違いにどの程度の意味の違いがあるのか判断に悩んだため,チェックボックスで選択できるようにしました.詳しくは10章の「技術的な情報」をご覧下さい.

<右クリックによる固有IDの桁数変更>
 ウィンドウ上でマウスを右クリックしますとポップアップメニューが現れます.桁数を3桁,4桁,5桁に変更できます.
  
・(2)から(9)のチェックボックスを全てONにするのが最も厳しいチェック設定です.アルゴリズムが違わない限り同じ固有IDになってしまうでしょう(変数名が違う場合は除く).
・「コメントを無視」がONの場合,純粋なコメントのみの行は空行として残ってしまいます.もし「無意味なコメントが追加されただけのプログラム」を発見したいのであれば,「改行/半角空白/全角空白を無視」を併せてONにしておくべきでしょう.

○簡単セッティング

設定を簡単に行えるように,プルダウンメニューに「簡単なセッティング」を用意しました.

[厳密にチェック]はバイナリーモードによるチェックです.
C言語,C++言語,N88BASICそれぞれに対して,
 ・[厳しくチェック]: コメントと文字列を無視
 ・[緩くチェック] : コメントを文字列の違いを固有IDに反映
が選択可能です.

<戻る>