<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>