#!/usr/local/bin/perl use strict; $_ = sub{local $/; <>;}->(); y/Ww//cd;y/Ww/01/; binmode(STDOUT); # Windowsでコンパイルするときに必要 print pack'B*',$_;コンパイル方法
$perl VIPlc.pl < source.vipl > output.bin実行権限も忘れずに。
$chmod u+x output.binついでに逆コンパイラ
#!/usr/local/bin/perl use strict; my $c = 0; binmode(STDIN); for(sub{local $/ = \1; <>;}->()){ $_ = unpack'B*',$_; y/01/Ww/; print$_,(++$c%4)?" ":$/; }
Hello, World!プログラムの一覧。
wWwwWWwW WWWWwwWw wWwwwWWw WWWwWWwW WWWWWWWW WWWWWWWW WWWWWWWW wWwwWWww WWWWWWWw wWwwWWWW WWWWWwWW wwWWwwWw wWWWWWWW WWwwWWWw wwWWWWWW WwWWWWWW wwWWwwWw wWWWWWWW WwWWwWWW WwwWWwWw WwwWwwWW WwwWwwWW WwwWwwww WWwWwwWW WWwWWWWW WwWwWwww WwwWwwww WwwwWWwW WwwWwwWW WwwWWwWW WWwWWWWw
まず、はじめのwWwwWWwW WWWWwwWwは、Hello, World!の長さの13をdlレジスタに入れています。
そして次のwWwwwWWw WWWwWwWW WWWWWWWW WWWWWWWW WWWWWWWWでHello, World!文字列のアドレスをecxレジスタに入れています。
次に、wWwwWWww WWWWWWWwではSTDOUTである1をblレジスタに、wWwwWWWW WWWWWwWWではwriteのシステムコール番号である4をalレジスタに入れます。
そしてwwWWwwWw wWWWWWWWでシステムコール(ソフトウェア割り込み)を実行してます。
次の、WWwwWWWw wwWWWWWW WwWWWWWWではeaxレジスタをxorしてインクリメントすることで1にしています(wWwwWWWW WWWWWWWwでもおkですね)。これは_exitのシステムコール番号1を入れています。
最後にwwWWwwWw wWWWWWWWでシステムコールを実行して終了。 残った部分はHello, World!文字列です。
wwWWwwWw wWWWWWWW WwwWwWWW WWWWwwWw WWWWWWWW WWWWWWWW WWWWWWWW WwwWwWWW WWwWWwWW WWWWWWWW WWWWWWWW WWWWWWWW WwwWwWWW WWWWWWWw WWWWWWWW WWWWWWWW WWWWWWWW wWwwwWWW WWWWWwWW WWWWWWWW WWWWWWWW WWWWWWWW wwWWwwWw wWWWWWWW WwwWwWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW wWwwwWWW WWWWWWWw WWWWWWWW WWWWWWWW WWWWWWWW wwWWwwWw wWWWWWWW WwWWwWWW WwwWWwWw WwwWwwWW WwwWwwWW WwwWwwww WWwWwwWW WWwWWWWW WwWwWwww WwwWwwww WwwwWWwW WwwWwwWW WwwWWwWW WWwWWWWw
wWwwWwWW WWWWwWWw wWwwwWwW WWWWwwWW WWWWWWWw wwWWwwWw WWwWWWWw wWwwwWWW WWWWWWWW WwWWwwWW wwWWwwWw WWwWWWWw WwWWwWWW WwwWWwWw WwwWwwWW WwwWwwWW WwwWwwww WWwWwwWW WWwWWWWW WwwwWwww WwwWwwww WwwwWWwW WwwWwwWW WwwWWwWW WWwWWWWw WWwWWwWW
wwWWwwWw WWwWWwWw wwWWWWww WwwWwWWW WWWWwwWw WWWWWWWW WWWWWWWW WWWWWWWW WwwWwWWW WWwwWwWW WWWWWWWW WWWWWWWW WWWWWWWW WwwWwWWW WWWWWWWw WWWWWWWW WWWWWWWW WWWWWWWW wWwwwWWW WWWWWWww WWWWWWWW WWWWWWWW WWWWWWWW wwwWwWWW wwwWWwWW wwwwwwww wwwwwwww wwwwwwww wWWWWWWw wwWWWwWW WWWWwwWW WWWWWWWW WWWWWWWW WWWWWWWW WwwWwWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW wWwwwWWW WWwwwwww WWWWWWWW WWWWWWWW WWWWWWWW wwwWwWWW wwWWwwww wwwwwwww wwwwwwww wwwwwwww WWWWWWWW WWWWWWWW WWWWWWWW WwWWwWWW WwwWWwWw WwwWwwWW WwwWwwWW WwwWwwww WWwWwwWW WWwWWWWW WwWwWwww WwwWwwww WwwwWWwW WwwWwwWW WwwWWwWW WWwWWWWw
Wwwwwwww WwWWWwWw WwWWwwWW WwWWWwwW WwWWwWWW WwwWWwWw WwwWwwWW WwwWwwWW WwwWwwww WWwWwwWW WwWwWwww WwwWwwww WwwwWWwW WwwWwwWW WwwWWwWW WWwWWWWw WWWWWWwW WWWWWWWW WWWWWWww WWWWWWWW WWWWWWWw WWWWWWWW WWWWWWWW WWWWWWWW WwWWwwWW wWWWWWWW WWWWWwWW WWWWwWWW WWwWwwWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWwwWwWW WWWWWWWW WWwWWWWW WWWWWWWW WWWWWWWw WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW wWWWWWWW WWWWWwWW WWWWwWWW WWWWWWWW wWWWWWWW WWWWWwWW WWWWwWWW WwWwwwwW WWWWWWWW WWWWWWWW WWWWWWWW WwWwwwwW WWWWWWWW WWWWWWWW WWWWWWWW WWWWWwWw WWWWWWWW WWWWWWWW WWWWWWWW WWWWWWWW WWWwWWWW WWWWWWWW WWWWWWWW wWwwWWwW WWWWwwWW wWwwwWWw WWWWWwWW wWWWWWWW WWWWWwWW WWWWwWWW wWwwWWww WWWWWWWw wWwwWWWW WWWWWwWW wwWWwwWw wWWWWWWW WWwwWWWw wwWWWWWW WwWWWWWW wwWWwwWw wWWWWWWW
Wは0、wは1にそれぞれ対応しています。
あとは機械語を勉強してください。
以上でVIP言語の説明は終わりです。本当にお疲れ様でした!これであなたも立派なVIPROGRAMERです!
最後にVIP言語で実装された、VIP言語コンパイラを紹介しておきましょう
http://vipprog.tumblr.com/post/38698900/by-vip-for-vip-i386linux