Compiler

Cの構文解析(宣言構文)

C言語の構文解析では宣言構文もなかなか大変なので紹介。処理系を作る人の参考になれば。変数を宣言・定義する場合, 普通に考えれば [型] [変数名]; [型] [変数名] = [初期値]; という構文を採用するのが自然だと思う。例えばJavaやD言語などの新しい言語で…

Cの理解出来ない文法

Cのパーサを書いた経験から, Cの全く理解不可能な仕様を幾つか紹介。まずはこれ int const long typedef volatile long volatile unsigned x; これは const volatile unsigned long long int のxへのtypedefだけれども,Cの規格上正当でもちろんgccも通す文法…

構文木実装のいろいろ

忙しさにかまけてここの存在をしばらく忘れてしまっていました。 ここんとこ色々なコンパイラを読んだり書いたりしているのですが、構文木の実装にもいろいろなやり方がありおもしろかったので書いときます。読んだ処理系にだいぶ偏りがありますがご了承くだ…