1981 | 11 |
2004 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 11 | 12 |
2010 | 01 | 02 | 03 | 05 | 12 |
2011 | 02 | 03 | 05 | 07 |
2012 | 02 |
2004 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 11 | 12 |
2010 | 01 | 02 | 03 | 05 | 12 |
2011 | 02 | 03 | 05 | 07 |
2012 | 02 |
Sep 25, 2006. Mon
■[煙]KEMURIコンパイラ
プログラミング言語 KEMURI の世界で最初の最適化コンパイラを作りました。
KEMURI
コンパイラのソースと実行
最適化の理屈は、まあ読めばわかるでしょう。
エラー処理はほとんど施していません。クラッシュさせようと思えば、簡単に出来てしまいます。
/* k2c.c */ #include <stdio.h> #include <string.h> #include <ctype.h> int main(int argc, char *argv[]) { printf("#include <stdio.h>\n"); printf("int main(int argc, char* argv[]) {\n"); char strage[1024] = {'\0'}; char c, *t; t = strage; while (c = getchar(), c != EOF) { char *h; h = t - 1; switch (c) { case '`': strcpy(t, "!dlrow ,olleH"); t += 13; break; case '~': *h = ~(*h); break; case '^': *(h - 1) ^= *h; *h = '\0'; t--; break; case '\"': *t = *h; t++; break; case '\'': *t = *(t - 1); *(t - 1) = *(t - 2); *(t - 2) = *(t - 3); *(t - 3) = *t; *t = '\0'; break; case '|': printf("printf(\""); while (t != strage && *(--t)) { putchar(isprint(*t)? *t: '.'); }; printf("\");\n"); break; default: break; } }; printf("putchar('\\n');\n"); printf("return 0;"); printf("}\n"); return 0; }
#!/bin/sh # kc - KEMURI Compiler script cat $1 | k2c > $1.tmp.c cc $1.tmp.c rm -f $1.tmp.c
% cc -o k2c k2c.c % cat hoge.kmr `|``| % kc hoge.kmr % ./a.out Hello, world!Hello, world!Hello, world! %
トラックバック - http://d.hatena.ne.jp/earth2001y/20060925/p1
リンク元
- 453 http://ja.wikipedia.org/wiki/KEMURI_(プログラミング言語)
- 173 http://ja.wikipedia.org/wiki/KEMURI_(プログラミング言語)
- 6 http://b.hatena.ne.jp/entry/http://www.nishiohirokazu.org/blog/2006/09/kemuri.html
- 4 http://cpp.ring.hatena.ne.jp/t/KEMURI
- 3 http://mixi.jp/view_bbs.pl?id=10832075&comm_id=1359293
- 3 http://programming.ring.hatena.ne.jp/keyword/KEMURI
- 2 http://b.hatena.ne.jp/karronoli/
- 2 http://cpp.ring.hatena.ne.jp/keyword/コンパイラ
- 2 http://ja.m.wikipedia.org/wiki/KEMURI_(プログラミング言語)
- 2 http://mixi.ring.hatena.ne.jp/


