ILogScript

id:w_oさんが作っておられるスクリプト
直接gccをバックエンドにするだけの技術力が(私のように)無い場合、ILogScriptを吐くのもいいですね。
Queenは前述*1の通り例外処理が特殊なので、gccの想定に合うかどうか心配ですが。あと関数内関数での親ebpの使い方とか。関数内関数を持ち出せるかどうか、については、gdcが既に実現しているはずなので可能なのでしょう。

追記: ilogcのMinGW環境でのビルド
まず、configureが無い…そうか、Adaさえ使えればいいやでかなりてきとーな環境構築*2しかしてないからなあ…そして、makefileの書き換えに飽きたところで試しにgcc -c main.cなどと打ってみると、大量のエラーが…そもそもヘッダファイルが足りてないっぽい。単純に考えて恐らくgccのソースファイルでは無いでしょうか。そんなわけで、動作例はまたこんど。(←あきらめ良すぎ)

http://sourceforge.net/project/showfiles.php?group_id=2435
makeは私日頃Borlandのmakeを使ってるのですが、細かいところを直すのにそろそろ疲れて来たのでMinGWのmakeも拾っておく。弄っているうちにわけわからなくなってきたので一式全部拾い直して入れ直すか…おっと、autoconfはMSYSに入ってない。MSYS入れる価値無いか…?それでもshのためにMSYSが必要。
http://homepage1.nifty.com/kuuku/gcc-sjis/howtobuild.html
ILogのconfigureはgccのそれを利用…でいいのかな?

Administrator@MUARA /gcc-3.4.2-20040916-1/gcc
$ ./configure --enable-languages=ilog --enable-checking=tree
checking build system type... i686-pc-mingw32
checking host system type... i686-pc-mingw32
checking target system type... i686-pc-mingw32
...
config.status: creating mkheaders
config.status: creating auto-host.h
config.status: executing default commands

Administrator@MUARA /gcc-3.4.2-20040916-1/gcc
$ make
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h config/i386/xm-mingw32.h" DEFINES="" \
/bin/sh ./mkconfig.sh config.h
TARGET_CPU_DEFAULT="TARGET_CPU_DEFAULT_pentiumpro" \
HEADERS="config/i386/i386.h config/i386/unix.h config/i386/bsd.h config/i386/gas
.h config/dbxcoff.h config/i386/cygming.h config/i386/mingw32.h defaults.h" DEFI
NES="" \
/bin/sh ./mkconfig.sh tm.h
TARGET_CPU_DEFAULT="" \
HEADERS="auto-host.h ansidecl.h config/i386/xm-mingw32.h" DEFINES="" \
/bin/sh ./mkconfig.sh bconfig.h
gcc -c   -g0 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-p
rototypes -pedantic -Wno-long-long    -DHAVE_CONFIG_H -DGENERATOR_FILE    -I. -I
. -I. -I./. -I./../include  genmodes.c -o genmodes.o
gcc -c   -g0 -DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-p
rototypes -pedantic -Wno-long-long    -DHAVE_CONFIG_H -DGENERATOR_FILE    -I. -I
. -I. -I./. -I./../include  errors.c -o errors.o
make: *** No rule to make target `../libiberty/libiberty.a', needed by `genmodes
.exe'.  Stop.

Administrator@MUARA /gcc-3.4.2-20040916-1/gcc
$

えーと…手順通りにやっても何か足らなさそうです。
libiberty.a…まず、先にgccコンパイルしないとだめなのかな?
libibertyディレクトリで./configure、make、その後gccディレクトリで再びmake.

...
/bin/sh: pod2man: command not found
make: [doc/fsf-funding.7] Error 1 (ignored)
rm gfdl.pod gcov.pod cpp.pod gpl.pod gcc.pod fsf-funding.pod

Administrator@MUARA /gcc-3.4.2-20040916-1/gcc
$

pod2manとかいうものが無くて最後まで成功はしませんでしたが、ilogc.exeは確かに完成。

*1:何日前だ?

*2:gcc-coreとgcc-adaとbinutils程度で間に合ってしまいます。makeの類もgnatはgnatmake等の専用ツールを持ってますし。