<html>
  <head>
    <meta content="text/html; charset=KOI8-R" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 03.06.2013 17:22, Vany Serezhkin
      wrote:<br>
    </div>
    <blockquote cite="mid:51AC98AA.7060400@serezhkin.com" type="cite">
      <meta content="text/html; charset=KOI8-R"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix">On 02.06.2013 16:16, Lev Leontiev
        wrote:<br>
      </div>
      <blockquote
cite="mid:CAPFy3tuj1z9+PHkBsvZvO73dDL+7VupR+dokVvTALJ63V3TedQ@mail.gmail.com"
        type="cite">
        <div dir="ltr">Parse::RecDescent ? <br>
        </div>
      </blockquote>
      Yapp =)<br>
    </blockquote>
    <br>
    Дим, а вот что я подумал: Предложение пользовать япп было конечно
    шуткой, но в этой шутке конечно есть доля правды.<br>
    Смари:<br>
    Допустим у тебя задача взять тысячу выражений, написанных
    криворукими, неаккуратными торопыжками и прогонять по этим
    выражениям миллионы наборов данных.<br>
    Ты пишешь грамматику на яппе, ну можно на бизоне, если он у тебя
    есть в системе, которая тебе строит либо AST, либо сразу перловый
    код, который вычисляет эти выражения.<br>
    Ошибки синтаксиса ты ловишь на этапе компиляции, а в результате у
    тебя есть coderef, которы не нужно больше одного раза компилить. Да,
    это пьюрперл, но если ты пошутил про миллионы, а нужны десятки тысяч
    - это элегантный выход.<br>
    Ну и естественная оптимизация, если тебе на один набор данных надо
    прогонять наборы подобных условий - склей их лексически через and
    или or.<br>
    <br>
    можно потом AST перевести в стэйтмашину и там их клеить как матрицы,
    про это тут: ISBN 987-5845913494<br>
    <br>
    <blockquote cite="mid:51AC98AA.7060400@serezhkin.com" type="cite">
      <blockquote
cite="mid:CAPFy3tuj1z9+PHkBsvZvO73dDL+7VupR+dokVvTALJ63V3TedQ@mail.gmail.com"
        type="cite">
        <div class="gmail_extra"><br>
          <br>
          <div class="gmail_quote">2013/6/2 Dmitry Simonov <span
              dir="ltr"><<a moz-do-not-send="true"
                href="mailto:dsimonov@gmail.com" target="_blank">dsimonov@gmail.com</a>></span><br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div dir="ltr">
                <div>А накидайте ссылочек на готовые модули по разбору
                  на деревья алгебраических выражений вида a*b*(10-x) и
                  тд и тп? </div>
                <div><br>
                </div>
                <div>Интересуют правда не совсем алгебраические
                  выражения, а булевы вида @!((a>10)&&(b in
                  [1,2,3]))". <br>
                </div>
                <div><br>
                </div>
                <div>Если кто-то хочет сказать, что можно и самому
                  набросать, - с удовольствием выслушаю подробный совет,
                  как именно и как именно обучить такой процессинг
                  обрабатывать до миллиона выражений в секунду.</div>
                <br clear="all">
                <div>---<br>
                  Dmitriy V. Simonov,<br>
                  Perl & Python programmer</div>
              </div>
              <br>
              --<br>
              Moscow.pm mailing list<br>
              <a moz-do-not-send="true" href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a>
              | <a moz-do-not-send="true" href="http://moscow.pm.org"
                target="_blank">http://moscow.pm.org</a><br>
              <br>
            </blockquote>
          </div>
          <br>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>