最も非正規な表現
受賞者:David Van Brackle
動作・解説にジャンプ »
引用元:https://www.ioccc.org/1993/vanb.c
審査員・作者による説明:https://github.com/ioccc-src/winner/blob/main/1993/vanb.hint
8進数での電卓。
$ gcc -DO5=main -o vanb vanb.c $ ./vanb 1+1 2 $ ./vanb 4+4 10 $ ./vanb "(4+4)*(4+4)" 100
+、-、*、/、%に対応していて、カッコも使える。D999で10進数の数字、XFFFで16進数の数字も表せる。
+
-
*
/
%
D999
XFFF
main関数の再帰呼び出しで再帰下降構文解析を実装しているとのこと。この構文解析で表現できる言語は正規表現(regular expression)を超えることが賞名の由来になっていると思われる。
main
コード形状はローマ数字のVIII(8)。8進数の8とのこと。main関数がひとつあり、そのパラメータを除いてグローバル変数もローカル変数もない。使っている定数はすべて8進数(printfのフォーマット文字列も)。変数名も8進数っぽいものにしている。
printf