Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

2008年8月25日

明治以前は 明治を含める・含めない?

10以下、10以上は "10"を含めます。 10未満、10超は10を含みめません。
条件句の設計で以下のような場合分けは頻出します。
1台~3台
3台~

と書けば
  1<=n  and n <3
  3<=n  and n =<∞     と解釈されるでしょう。しかしここは誤解を生む可能性があるので

1台~2台
3台~       と書いた方が良いとされまます。

規約によっては "~" を禁じているのもあります。しかし
1台以上、3台以下...
3台以上         ...    というのをレビューOKにしてはいけません。

「1台以上、3台以下」.という表現はありません。「1台以上、3台未満」となります。

ここまでは数学・算数的な定義で解消します。つまり「前」「後」「未満」「超」は基準点を含みません。「以」は含めます。
「100と200を含まない」という表現はバグがあります。「100と(200を含まない)」と取ると、100はどちらにも該当するので"200を含まない"の一文と同意になり100は含まれます。
「(100と200)を含まない」と取ると、100は含まれません。修飾関係がアヤフヤな表現は、バグの元ですね。

しかし、明治以前といえば、明治を含めるか含めないか?
人に聞くと半々に分かれます。(懇親会でもそうでした)国語の教師にきいても、文法的には判断できないんだそうです。
しかし、社会(言語)通念上、明治以前の年号と言えば、明治を含めません。明治以後の人物には、乃木希典等の人が該当するように明治を含めます。 こちらの以前・以後の基準点の処理は文意で決まりそうです。
仕様書に平成以前、平成以後という制約は登場しそうですね。2000年以後、2000年以前 と仕様書に書いてあればどうでしょう。
開発者は、設計者に確認してから実装して欲しいです。そのような仕様書が仕様バグだというのは言い過ぎでしょうか。設計者も判断が付かないケースもあるので、業務仕様を確認する必要もありそうです。
要件定義の段階で、 「2001年以前」といった文言が入っているようだと、要注意です。
自然会話語では、矛盾のない表現は無理なのでしょう。ここからも自然言語をブログラム言語にするは厳しいモノがあると思うのです。(二次会でこのような話しをしたような気がして書いてみました。)

posted @ 0:04 | Feedback (28)