タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

Pythonとperlに関するseiunskyのブックマーク (1)

  • PHPとRubyとPythonのparserをいじめてみた - hnwの日記

    下記のようなプログラムを与えると、PHPのparserが「無理っす」と言って死にます。 <?php !!!…(10000個くらい)…!!!true; $ php ./hoge.php PHP Parse error: memory exhausted in /Users/hanawa/hoge.php on line 2yaccによるparserはシフトと還元を繰り返しながら構文解析していきます。単項演算子について言えば、後置された表現が確定するまで還元できませんから、!が連続している間はシフトし続け、トークンをスタックに積み続ける必要があります。 このようにトークンを記録するためのスタックのサイズがPHPでは10000個しかありません。ですから、単項演算子を10000個ほど書くだけで簡単に死にます。他にも、「(」を10000個ほど連続して置くなどの嫌がらせでもPHPを死なせることができま

    PHPとRubyとPythonのparserをいじめてみた - hnwの日記
    seiunsky
    seiunsky 2009/02/18
    「単項演算子を10000個ほど書くだけで簡単に死にます」www
  • 1