- note -

C言語

5/8

7行プログラミング - 5 : brainf*ck&Ook! インタプリタ   - Last modified:2012/9/17

#include <stdio.h>
char s[99999]={0},*b=s,*d=s,*e=s,a,g;int main(int c,char**v){FILE*f=fopen(c>1?v
[1]:"","r");if(v){if(!f)return 1;for(;c=getc(f),~c;)*b++=c;for(;e<b-4;++e)*(int
*)e-7040847<<8?0:(c=*(e+=3))==33|c==46|c==63?g+=(c-9)/25<<a,(a+=2)>3?*d="-,] .\
+< [>"[g],*++d=a=g=0:0:--e;for(e=s;a=*e;++e)a-62?a-60?a-43?a-45?a-91&&!*b||a-93
&&*b?a-46?a==44?*b=getchar():0:putchar(*b):main(92-a,0):--*b:++*b:--b:++b;}else
while(v+=a+c-92?a-c-92?0:-1:1)a=*(e+=c);return 0;}
見ての通りですが、brainf*ckとOok!のデュアルインタプリタです。
初めはbrainfu*kのみ実装してみたのですが、それが6行ちょいになってしまったので
急遽Ook!も追加してみたらちょうど良くなった感じです。
brainfu*ckは(たぶん)マイナーだけどステキな言語だと思います。