Описание:Атомарный парсер - это программа грамматического разбора (ПГР) на языке Java, предназначенная для компиляции произвольного входного потока в коллекцию из одного или нескольких так называемых "деревьев синтаксического разбора" (ДСР). Каждое ДСР есть структурированное представление входного потока в терминах его синтаксиса. По традиции, ПГР такого типа работают исключительно с символьными потоками. В отличие от них, Атомарный парсер обрабатывает потоки объектов любого типа. Символьные потоки также обрабатываются, как частный случай входных данных. Подобная гибкость позволяет строить цепочки из ПГР, где каждая последующая ПГР обрабатывает выходной поток предыдущей ПГР. Это помогает составлять сложные компиляторы из простых. Каждая ПГР выполняет специфическое частичное преобразование входного потока в промежуточную форму. Кстати, внутренний разбор описания синтаксиса в Атомарном парсере выполняется именно таким образом. Как и многие другие ПГР, Атомарный парсер использует форму Бэкуса-Наура (БНФ) для спецификации синтаксиса. Но, в отличие от большинства ПГР, в нем совсем не применяются таблицы синтаксических переходов. Более формально, используется недетерминированный конечный автомат, что снимает проблемы, присущие детерминированным конечным автоматам. Перечислим главные преимущества: нет лимита переходов, не требуется программирование всех синтаксических переходов, нет ограничений на синтаксис входного потока, и появляется возможность вариантного результата разбора. Шаблоны элементов входного потока строятся из обычных конструкций БНФ и/или с помощью "специальной последовательности" БНФ. Для оценки близости ДСР синтаксису предоставляется специальная функция над ДСР. Набор дополнительных консольных утилит облегчает использование описаний синтаксиса. Условия применения (лицензионное соглашение):Исключительно для персонального некоммерческого применения, без права копирования и распространения, без гарантий любого рода. Полный текст... Если вы прочитали, поняли и приняли условия всего лицензионного соглашения, отметьте это в колонке справа, чтобы разрешить загрузку программного обеспечения. Комментарии:Для описания синтаксиса используется стандартизованная спецификация расширенного БНФ. Программный код построен в среде NetBeans™ и включает 5800 строк кода (80 классов) на языке Java, который был мной написан, проверен и отлажен в течении продолжительного времени. Были решены некоторые нетривиальные вопросы реализации и математического обоснования. Проект удался и оказал огромное воздействие на понимание природы распознавания, структурирования и хранения информации. | |||
CCBot/2.0 (https://commoncrawl.org/faq/) | |||