— Подождите, я читал, что NASA признало санскрит идеальным языком для искусственного интеллекта. Это правда или один из тех интернет-мифов, которые никто не проверяет?
— Это зависит от того, что именно вы читали. Один человек из исследовательского института при NASA написал статью в 1985 году. NASA как организация ничего не «признавала» — никакого отчёта, никакой рекомендации, никакого официального решения. Но вот что интересно: в этой статье есть одно честное наблюдение, от которого тяжело избавиться — и оно важнее, чем весь миф вместе взятый. К нему мы дойдём. Но начнём с другого конца — с того, почему вообще этот разговор возможен.
— Ну, санскрит — это язык жрецов, две тысячи лет в религиозных текстах, сложный, мёртвый. Что общего с машинами?
— Вот тут-то и начинается самое странное. Потому что представление «сохранившийся язык жрецов» — это хорошая история, но не точная. Санскрит не сохранился сам по себе. Его заморозили. Один человек описал его спецификацию с такой точностью, что язык перестал иметь возможность меняться. Живые языки меняются, потому что никто не проверяет каждое слово на соответствие правилам. У санскрита появился проверяющий.
— Один человек?
— Панини. Примерно четвёртый век до нашей эры. Написал работу — Аштадхьяи, «Восемь глав». Содержит ровно 3959 правил. Каждое правило — в среднем два-три слова. И вместе они полностью описывают морфологию санскрита: как образуются слова, как они склоняются и спрягаются, как соединяются, какие формы существуют, а какие невозможны.
— Но грамматика есть в любом учебнике языка.
— Стоп. Это принципиально разные вещи, и разница тут ключевая. Учебник описывает — рассказывает, как устроен язык, что бывает, что встречается. Грамматика Панини предписывает: берёшь корень из его каталога, применяешь правило в точном порядке — и на выходе получается конкретное слово. Без вариантов. Если правила не дают результата — слова в санскрите не существует. Это не описание, это исполнимая инструкция. Разница как между описанием алгоритма сортировки и кодом, который сортирует.
— Подождите. Он что, реально написал что-то вроде кода?
— Буквально. У него есть метасимволы — он называл их анубандхи. Это специальные токены, управляющие порядком применения правил. В современном программировании это операторы управления потоком или флаги в парсерах. Правила упорядочены: более специфичное бьёт общее — точь-в-точь как приоритет в CSS-каскаде или порядок case в switch. Он придумал краткие обозначения для классов звуков — Шива-сутра, четырнадцать строчек, которые кодируют все фонологические группы. Это lookup-таблица: вместо перечисления восьми конкретных звуков — один символ.
— И он написал это устно, для запоминания?
— Устно. Всё должно было помещаться в память — потому что записывали на том же санскрите, а отдельной нотации не было. Это накладывало жёсткое ограничение: ни одного лишнего правила, никаких объяснений, только то, без чего нельзя. Лингвисты до сих пор поражаются плотности упаковки. Аштадхьяи занимает по объёму примерно как небольшая брошюра — и описывает язык с точностью, которой европейская лингвистика достигла только в двадцатом веке.
— И Бэкус переоткрыл то же самое?
— В 1959 году Джон Бэкус опубликовал Форму Бэкуса-Наура — формальную нотацию для описания грамматик языков программирования. Когда лингвисты сравнили её с Панини — структура правил оказалась практически изоморфной. Бэкус переизобрёл Панини через двадцать пять веков. При этом Бэкус не знал о Панини — эта работа была практически неизвестна на Западе до конца девятнадцатого века.
— И что это означает?
— Что формальная грамматика — не изобретение, а открытие. Существует некая математическая реальность структуры языка, которую можно обнаружить независимо, в разные эпохи, с разных сторон. И это меняет то, как мы смотрим на обоих. Панини — не просто лингвист, который тщательно описал свой язык. Он обнаружил что-то о природе языка вообще. А санскрит — не «красивый древний язык» — это язык, который получил свою операционную систему раньше, чем кто-либо понял, что языкам нужны операционные системы.
— А по классификации Хомского — санскрит где?
— Контекстно-зависимые грамматики, Type-1. Большинство языков программирования — Type-2, класс ниже по мощности. Санскрит структурно сложнее, чем C++. Это не оценочное суждение — это математическая классификация выразительной мощности грамматики. Первый компьютерный движок для Аштадхьяи запустили только в 2000-х в Пуне. Система, написанная устно в четвёртом веке до нашей эры, прошла на компьютере через двадцать пять столетий.
Первые слова этого диалога — бесплатно. Войдите, чтобы читать дальше.
Осталось 10 сцен. Следующая — «Детали с бейджиками».