Re: My precompiler
新城@筑波大学情報です。こんにちは。
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))
\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報 \\
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735