Кстати, про себя я ещё удивился тогда, почему настолько простая идея мало где использовалась раньше – ну, по крайней мере, я не смог найти упоминаний о такого рода деятельности, да и отзывов на мою разработку почти что совсем не было. Попался, правда, один какой-то странный парень, приславший мне электронное письмо с благодарностями и уверявший, что отныне в его библиотеке все теперь могут разбирать оглавления книг с помощью такой вот фиговины. Про себя я лишь удивился столь необычной сфере применения моего метода, и стал думать дальше над тем, что бы с этим ещё можно было сделать.
Новая идея казалась уже чем-то более безумным – я начал разрабатывать средство, которое бы уже способно было
И тут в процессе работы меня вдруг осенила новая догадка: а что, если развитие самой нашей жизни проходило примерно по такому же сценарию? Ну, то есть существовала где-то изначально вот такая же программка, которая в определённый момент смогла выделить осмысленные последовательности ДНК-кода будущих первоорганизмов из первичного хаотичного набора символов, а затем организовать их в нужные структуры? Затем, в процессе усложнения собственного функционала, эта программка упорядочивала исходный код во всё более организованные структуры, пока не появился… я, сумевший наглядно объяснить, как всё это работает.
\*{3}
И вот тут-то до меня, наконец, дошёл истинный смысл, заложенный в идее так называемых «регулярок» (так мы на своём жаргоне именуем эти самые регулярные выражения).
Если вы никогда не имели раньше дела с подобными конструкциями, то, пожалуй, не надо и начинать. Слишком уж тяжеловесными и неудобочитаемыми выглядят они для непосвящённых, чтобы вычленить из них для себя какую-либо полезную информацию.
Хотя, пожалуй, об одной самой главной фишке всё же расскажу. Это так называемая
А ещё интереснее тот факт, что этот Клини (который, кстати, всё же Клейни, если уж совсем придираться, но так уж повелось в России его величать ещё с первых переводных изданий его научных трудов) работал примерно в то же время и над теми же проблемами, что и Алан Тьюринг и Курт Гёдель. Если вы ещё не слышали о последних двух товарищах, то спешу поведать, что первый из них запомнился не только расшифровкой немецких кодов шифровальной машины «Энигма» во время Второй мировой войны (кстати, сама эта история не столь давно даже обрела свою киноэкранизацию с Камбербэтчем в главной роли), но и само́й умозрительной концепцией вычислительной машины. Что же до Гёделя, то он отметился столь же впечатляющими теоремами о неполноте, суть которых на обывательском языке можно было бы выразить как идею принципиальной невозможности формализации произвольных вещей посредством каких-либо логически непротиворечивых систем. То есть существуют вещи, которые математики не смогут полностью сформулировать на своём языке, а я не смог бы написать для них соответствующую программу, и это строго доказано.
В общем, вполне очевидно, что два этих товарища работали над вещами настолько высокого уровня абстракции, что неудивительно и то, что у обоих из них под конец жизни слегка поехала крыша. Тьюринг вообще принял яд, которым было наполнено откушенное им яблочко, – будучи не в силах справиться с фактом общественного неприятия собственной гомосексуальности. А Гёдель, хоть и дожил до конца 70-х годов прошлого века, но начал обнаруживать первые признаки психических расстройств ещё с 30-х.
Что же до Клини, то ему повезло больше – его сия чаша, кажется, миновала. Собственная теорема Клини тоже имеет впечатляющую формулировку: «Каждое регулярное множество является автоматным языком». Что в переводе на бытовой язык можно приблизительно выразить в виде факта о том, что любую упорядоченную структуру можно разделить на отдельные элементы посредством вычислений с использованием регулярок. Собственно, именно этим я всё последнее время и занимался.