元ネタは,gccのwikiより. http://gcc.gnu.org/wiki/DeadlySins P. J. Brownが1979年に書いた"Writing Interactive Compilers and Interpreters"(インタラクティブなコンパイラとインタプリタの製作)が出典らしいが,コンパイラやインタプリタじゃなくても当てはまることが結構あって面白かった. 考える前にコードを書く コンパイラ制作者と全く同じ知識を,ユーザが持っていると仮定する 適切なドキュメントを書かない 言語規格を無視する to treat error diagnosis as an afterthought(あとからの思いつきでエラー診断を扱う?ちょっと意味が分からない) 絶対起きないことと,起こりそうにないことを同等に扱う コンパイラのエンコーディングを,データフォーマットに依存させる(これ