新城@筑波大学情報です。こんにちは。

myプリコンパイラって、現存するんですか?

In article <c2m4b0$6vo$1@dnknews.denken.or.jp>
        TAKENAKA Kiyoshi <takenaka@criepi.denken.or.jp> writes:
>  >事前条件とか事後条件のチェックをCで書いて入れるのとどの辺り
>  >が違うのでしょうか。
> たぶん、同じだと思います。単に私がさぼりたいのと独自変更したい
> だけです。
> たとえばですけど、以下のようなものです。
> 1)chk abc
> と書いてあれば、abcというtableを矛盾チェック(&チェックライト)する
> ルーチンを追加して、別途必要な追加ルーチン(ライブラリ)フラッグを
> 立てる。

アスペクト指向っぽい。

> 2)";"の解釈を反対にする等。コンパイラを2種類以上使うと、文法が
> 似ていないと混乱するんですよ(;を入れ忘れたり、キーワードを
> 間違えたり....)。

まあ確かに Ruby 書いたあと C 書くと、「;」忘れたりするんだけ
ど、文法変えると、他の人がプログラムを読めなくなって困るんじゃ
ないですか。この辺りなら、エディタとか統合開発環境で修正した
方がいいんじゃないですか。

もっとも、コンパイラ本体とエディタ/統合開発環境うまく構文解
析器が共有できるといいのかもしれません。

> 3)a社対応、b社対応をソースセレクタで切り替える。

たしかに、#ifdef は読みにくい。けど間に合っているといえば間
に合っている。

>  >チェックが重たいなら、後で部分評価系で取り除きます。#ifdef 
>  >でもいいけど。assert() 入れてもいいけど、入れなくてもいいで
>  >しょう。
> 
> myだと、自分のチェックはフラッグ一つでon/off可能です(結構楽)。

フラグ1つにしたいなら、こんなのでもいけます。

#define myassert(e)     assert(myflag&&(e))

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\