Под "нечаянными вычислителями" я подразумеваю ситуации, когда разработчики языка или рантайма хотели как лучше, а получилось нечто, с побочными эффектами в виде способности решать вычислительные задачи там, где этого изначально не предполагалось. Навскиду вспомнились:
Накидайте pls ссылок на аналогичные вычислители в других языках или рантаймах. Есть пара тезисов о сложности языков и пределов разрешимости задачи анализа кода на них, примеры нужны для того, чтобы их проверить.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Под "нечаянными вычислителями" я подразумеваю ситуации, когда разработчики языка или рантайма хотели как лучше, а получилось нечто, с побочными эффектами в виде способности решать вычислительные задачи там, где этого изначально не предполагалось. Навскиду вспомнились:
Здравствуйте, Кодт, Вы писали: К>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>правила перезаписи URL mod_rewrite; К>Ну, кстати, это не такой уж нечаянный исполнитель. Расширение нормальных алгоритмов Маркова регулярными выражениями.
Наоборот же Но да, не вполне нечаянный. И всё же избыточный, IMO.
Здравствуйте, kochetkov.vladimir, Вы писали:
К>>Ну, кстати, это не такой уж нечаянный исполнитель. Расширение нормальных алгоритмов Маркова регулярными выражениями. KV>Наоборот же Но да, не вполне нечаянный. И всё же избыточный, IMO.
В смысле наоборот?
Регекспы синтаксически выразительнее шаблонов сопоставления у нормальных алгоритмов. Во всяком случае, нормальный алгоритм в код на перле оттранслировать легко и просто, а вот наоборот — попляшешь.
# проверка палиндрома _examined_ -> YES | NO
$_ = "_palindromordnilap_";
print"START : '$_'\n";
while( # таблица подстановокs/_([a-z])(.*?)\1_/_\2_/ || # две маленькие хитрости в стиле рефала: класс символов и два вхождения одного нетерминала (бекреференс) в образец
# иначе пришлось бы расписать пулюs/_a(.*?)a_/_\1_/ ||
s/_b(.*?)b_/_\1_/ ||
s/_c(.*?)c_/_\1_/ ||
......
s/_z(.*?)z_/_\1_/ ||
s/_([a-z])_/YES/ ||
s/__/YES/ ||
s/_(.*?)_/NO/
) {
print"STEP : '$_'\n";
}
print"FINISH: '$_'\n";
mod_rewrite работает точно так же: while(правило1||правило2||правило3){}
А если к этому ещё и удалённого клиента — браузера — припахать, отдавая ему редиректы, чтобы он переспрашивал и переспрашивал... Вот это, пожалуй, будет нечаянный вычислитель!
Здравствуйте, Кодт, Вы писали:
К>В смысле наоборот? К>Регекспы синтаксически выразительнее шаблонов сопоставления у нормальных алгоритмов.
Я имел в виду, что вычислительная мощность у конечных автоматов ниже, чем у МТ. Т.е. в вычислительном смысле, регексы расширили с помощью НАМ, а в синтаксичеком -- наоборот.
К>mod_rewrite работает точно так же: while(правило1||правило2||правило3){} К>А если к этому ещё и удалённого клиента — браузера — припахать, отдавая ему редиректы, чтобы он переспрашивал и переспрашивал... Вот это, пожалуй, будет нечаянный вычислитель!
С редиректами -- отличная идея Позволит "затьюринговать" рерайтинг в Nginx (там число применений правил перезаписи ограничено 10 итерациями).
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>С редиректами -- отличная идея Позволит "затьюринговать" рерайтинг в Nginx (там число применений правил перезаписи ограничено 10 итерациями).
В браузере они тоже ограничены, по крайней мере FF больше 20 не жрет уже 10 лет http://kb.mozillazine.org/Network.http.redirection-limit
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, Ops, Вы писали:
Ops>Здравствуйте, kochetkov.vladimir, Вы писали:
KV>>С редиректами -- отличная идея Позволит "затьюринговать" рерайтинг в Nginx (там число применений правил перезаписи ограничено 10 итерациями). Ops>В браузере они тоже ограничены, по крайней мере FF больше 20 не жрет уже 10 лет http://kb.mozillazine.org/Network.http.redirection-limit
Последним редиректом можно отдавать HTML со скриптом, который устанавливает document.location в нужный адрес.
Здравствуйте, kochetkov.vladimir, Вы писали:
KV>Последним редиректом можно отдавать HTML со скриптом, который устанавливает document.location в нужный адрес.
Ну это не честно, так можно и на lua все повычислять.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.