C言語インタプリター CINTを試す

CINTはフリーのC言語インタプリター。
コンパイルはしないでソースを読み込みながらもしくは読み込んで実行する。
結論を先に書くとCINTは実用にはならないようだ。
簡単な部類のC言語ソースが動かなかったから。
C言語インタプリターは他にClingというのがあるようだけどWindowsバイナリが公開されていないので、WindowsバイナリがあるCINTを使ってWindows 7でテストすることにした。
hojaというZ80逆アセンブラ UNIX版のC言語ソースをCINTで動かそうとしてみたが動かなかった。
まず、memory.h と malloc.h のインクルドファイルがないとエラー。
memrory.h と malloc.hを空ファイルで作ってみると、hoja側にコマンドライン引数を与えない場合は使い方の表示が出て正しく動いているようだ。
EUCで出力しているのでWindowsでは文字化けしているが。
ファイル名を指定して逆アセンブルしようとすると、
「Note: posix.dll is not found. Do 'sh setup ' in $CINTSYSDIR/lib/posix directroy if you use UNIX.」
と言うUNIXではないのでどうすればいいのか良く分からない表示と共にO_RDONLY が未定義というエラー。
しょうがないので、O_RDONLYをソース内で定義したが、open関数が無いというエラー。
openは基本中の基本の関数だが、これが使えないのではもはやC言語ではないような気がする。
hojaは20年ぐらい前(もっと前かな?)に私がMSXという8ビットパソコン用に作ったZ80というCPUの逆アセンブラだ。
その後、WindowsやLinux、Solaris x86に移植した。
移植といってもC言語のコマンドラインのプログラムなので移植作業はほぼゼロだった。
MSX用(CP/Mでも動くはず)のソースとWindows用のソースは今はもう無くなった。
UNIX版はVectorにソースを公開しているのでまだ残っている。
UNIX版とWindows版のソースの違いは文字コードがEUCかSJISかぐらいの違いしかなかったと思う。
MSX版は使えるメモリが限られているから確保するメモリを少なめにしていて大きなファイルは一度では逆アセンブルできなかった。