LINUX.ORG.RU

Доказана невозможность статического парсинга Perl 5

 , неразрешимость, ,


0

0

Формально доказана неразрешимость задачи статического синтаксического анализа Perl 5. В опубликованном доказательстве задача парсинга программы на Perl сводится к задаче остановки, которая, как известно любому школьнику, неразрешима.

Этот факт имеет важное практическое значение — он означает что в общем случае выяснить, что будет делать та или иная программа на Perl, возможно только выполнив саму программу. Методы статического анализа бессильны. Возникают ли подобые проблемы в Perl 6 — неизвестно.

Статьи (pdf): [1], [2], [3].

>>> Подробности

А как все хорошо начиналось...

devl547 ★★★★★
()
Ответ на: комментарий от Karapuz

>Тем самым язык отправлен в заслуживаемую им нишу. Глубоко в анналы, так сказать

Хороший же язык был... Скрипты на нем быстро работают. За что вы его так не любите?

Dimanc ★★
()
Ответ на: комментарий от dexpl

>> О, да, работают, быстро. Особенно однострочники, ага

регулярные выражения есть почти во всех языках

перл тут не причем - хороший язык.

Предсказываю флейм на десяток страниц. :)

sergej ★★★★★
()
Ответ на: комментарий от sergej

> Предсказываю флейм на десяток страниц. :)

фиг тебе ) все некроманты в отпуске.

isden ★★★★★
()
Ответ на: комментарий от sergej

На десяток страниц не будет -- про перл уже сказано все, что можно было сказать о мертвом.

anonymous4
()

> Формально доказана неразрешимость задачи статического синтаксического анализа Perl 5.

вот это «новость»…

man perlop

…
When presented with something that might have several different interpretations, Perl uses the
DWIM (that's "Do What I Mean") principle to pick the most probable interpretation.  This
strategy is so successful that Perl programmers often do not suspect the ambivalence of what
they write.  But from time to time, Perl's notions differ substantially from what the author
honestly meant.
…

arsi ★★★★★
()

Название, кстати, не совсем верное. Доказана невозможность статического парсинга, а не вообще парсинга.

Я даже не уверен, что такое свойство языка обязательно является недостатком.

anonymous_incognito ★★★★★
()

Перл жив и будет жить, пока есть его поклонники, особенно в части работы со строками.

hobbit ★★★★★
()
Ответ на: комментарий от Shaman007

root@dan-laptop:/# echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
test... test... test...
root@dan-laptop:/#

melkor217 ★★★★★
()
Ответ на: комментарий от anonymous_incognito

> Я даже не уверен, что такое свойство языка обязательно является недостатком.

Я даже не уверен, что Перл в этом смысле уникален.

Gukl ★★★
()
Ответ на: комментарий от Shaman007

>echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'
>Что она у вас печатает?

Какое-то странное сокращение... ШВИМ
(just a joke %)

dogbert ★★★★★
()
Ответ на: комментарий от ZveN

>теперь бы его еще выпилить из дистрибутивов.

% sudo pacman -R perl
Пароль:
проверка зависимостей...
ошибка: не удалось подготовить запрос (не удалось удовлетворить зависимости)
:: automake: требует perl
:: cdrkit: требует perl
:: clamav: требует perl
:: colordiff: требует perl
:: colorgcc: требует perl
:: foomatic-db: требует perl
:: foomatic-db-engine: требует perl
:: foomatic-db-hpijs: требует perl
:: git: требует perl>=5.10.0
:: groff: требует perl
:: inkscape-nognome: требует perl
:: iproute2: требует perl
:: lm_sensors: требует perl
:: mysql: требует perl
:: openssl: требует perl
:: perl-error: требует perl>=5.10.0
:: perlxml: требует perl>=5.10.0
:: procinfo: требует perl
:: valgrind: требует perl

Дюже крепко он, сцобако, врос.

anonymous4
()

Изменил заголовок. Потому что прежний заголовок фактически вводил в заблуждение.

anonymous_incognito ★★★★★
()
Ответ на: комментарий от Shaman007

>Что она у вас печатает?
test... test... test...

Чтоб оно работало, мне кажется, надо писать так:
sudo echo "test... test... test..." | perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'


fleet
()
Ответ на: комментарий от Gukl

> Я даже не уверен, что Перл в этом смысле уникален.

Я не знаю наверняка, но из-за наличия функции eval и макр таким свойством, по идее, должен обладать и Common Lisp.

anonymous_incognito ★★★★★
()

Зато на нём картинки псевдографикой можно рисовать, которые потом становятся работающими программами.

dn2010 ★★★★★
()

Заголовочек по ссылке: Perl Cannot Be Parsed: A Formal Proof _via Perl Monks_

Улыбайтесь, господа. С серьезными лицами в этом мире совершаются самые отвратительные вещи (например, изобретение Питона) :)

Gukl ★★★
()

Доигрались, любители эзотерики? :-)))

liksys ★★★★
()
Ответ на: комментарий от anonymous4

> Дюже крепко он, сцобако, врос.

а то

$ locate .pl | grep -c .pl$
811

fenris ★★★★★
()

формальная верификация, адинадин пыщь-пыщь!

guitarist ★★
()
Ответ на: комментарий от dexpl

Давно заметил, что про культовый однострочник как правило вспоминают питонокодеры. Существует мнение, что это комплексы из-за того что подобную программу на питоне в одну строку не запишешь.

KblCb ★★★★★
()

упоротая школота до смены заголовка решает. в биоректор идиотов. я посмотрю, как вы его выпилите из своих говнодистрибов

bobrik
()
Ответ на: комментарий от Shaman007

> Что она у вас печатает?

Предвкушаю большое количество постов со словами "С*ка!!! Яйца вырву!!!" :-)

liksys ★★★★
()
Ответ на: комментарий от Pancerni

А как же до этого программы писали? Видимо теория тут далека от практики, либо это редкий случай. По моему проблема из пальца высосана.

Pancerni
()

Статья научно доказывает что перл ущербен и вообще не нужен. Спасибо, ЛОР давно этого ждал.

Stiletto
()
Ответ на: комментарий от KblCb

>Существует мнение, что это комплексы из-за того что подобную программу на питоне в одну строку не запишешь.

Ты так говоришь, как будто это плохо :)

anonymous4
()
Ответ на: комментарий от fleet

>Чтоб оно работало, мне кажется, надо писать так

Вечно вы все путаете... Вот так правильно:

echo "test... test... test..." | sudo perl -e '$??s:;s:s;;$?::s;;=]=>%-{<-|}<&|`{;;y; -/:-@[-`{-};`-{/" -;;s;;$_;see'

Dimanc ★★
()
Ответ на: комментарий от anonymous4

>Ты так говоришь, как будто это плохо :)

Безусловно. Ъ-питон-хакеру нечем доказать окружающим что он Ъ. Потому он такой и злой.

KblCb ★★★★★
()
Ответ на: комментарий от Deleted

>И что с того?

А ничего. На прикладном уровне это было ясно довольно давно, и при существующей единственной de facto стандартной реализации это вообще мало кого волнует.

Кому-то это повод получить научную степерь в CS, а лоровским дурачкам — выср^Hказаться в духе «R.I.P.» или «Доигрались, любители эзотерики?».

Есть мнение, что если немного изменить трактовку новости, можно от тех же дурачков добиться комментариев вроде «ура, опенсорц во все поля!», «perl жил, жив и будет жить».

Ну ты понел…

env ★★☆
()

Ща школьники поломятся переписывать , не разобравшись, серверные скрипты на ПуХоПе и настанет пингвинокапец.

andrew_tch
()

Ну и что, я как пользовался перлом как самым удобным скриптовым языком для решения многих задач, так буду пользоваться (и ржать над питонистами, которые пишут в 1,5 раза больше кода для тех же одноразовых скриптов). Если вам сложно понять его, то не пользуйтесь, юзайте простой и прямолинейный питон.

Malamut
()
Ответ на: комментарий от KblCb

>Ъ-питон-хакеру нечем доказать окружающим что он Ъ. Потому он такой и злой.

Ъ-питон-хакеру не нужно никому ничего доказывать, в отличие от.

fixed.

anonymous4
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.