MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Синтаксический разбор строк и конечные автоматы

Название:Синтаксический разбор строк и конечные автоматы
Просмотров:67
Раздел:Информатика, программирование
Ссылка:none(0 KB)
Описание:В этой статье речь пойдет о том, как анализировать информацию, переданную в виде последовательности символов (строку) и выделять из нее значимые элементы.

Часть полного текста документа:

Синтаксический разбор строк и конечные автоматы Андрей Боровский
    В этой статье речь пойдет о том, как анализировать информацию, переданную в виде последовательности символов (строку) и выделять из нее значимые элементы. Мы рассмотрим сравнительно простые ситуации, с которыми программистам приходится сталкиваться при решении самых разных задач: разбор выражений с простой синтаксической структурой, но с довольно свободными правилами записи.
    Допустим, в программе, которую вы пишете, нужен модуль, анализирующий текст HTML-страницы. Мы напишем функцию, которая, получив строку, содержащую тэг, извлекала бы из этой строки все атрибуты тэга и их значения. Структуру тэга можно схематично представить следующим образом: На первый взгляд задача кажется очень простой, однако ситуация осложняется из-за достаточно мягких правил языка HTML. Между именем атрибута, знаком равенства и значением может стоять любое число разделительных символов (пробелов, символов табуляции и даже символов перехода на новую строку), или же разделительные символы могут вообще отсутствовать. Значения атрибутов могут быть либо заключены в кавычки, либо нет, при этом значение, заключенное в двойные кавычки, может содержать символы одинарных кавычек, и наоборот. Кроме того, не всем атрибутам тэгов присваиваются значения.
    Для решения указанной проблемы мы напишем функцию ParseTag, анализирующую переданный ей тэг и создающую списки атрибутов тэга и их значений. Функция ParseTag действует по принципу конечного автомата. Конечные автоматы и подобные им структуры широко применяются при обработке строк. Сферы наиболее частого применения конечных автоматов включают поиск подстрок по заданному образцу, обработку регулярных выражений (regular expressions), лексический и синтаксический анализ. Конечные автоматы широко применяются в трансляторах и интерпретаторах (не говоря уже о таких задачах, как проектирование логических устройств).
    Строгое определение конечных автоматов можно найти в любом учебнике по теории алгоритмов, мы же здесь ограничимся интуитивным определением. В каждый данный момент времени конечный автомат может находиться в одном из возможных состояний (число состояний, в которых может находиться конечный автомат - конечно). Автомат последовательно считывает символы входного текста (строки). Каждый считанный символ либо переводит автомат в новое состояние, либо оставляет его в прежнем состоянии. Формально автомат можно описать при помощи функции переходов. Аргументами этой функции являются предыдущее состояние автомата и очередной считанный символ, а значением - новое состояние автомата.
    Множество состояний для нашего автомата включает:
    ReadTag - читает имя тэга;
    WaitAttr - ожидает имя атрибута;
    WaitAttrOrEq - ожидает имя атрибута или символ '=';
    ReadAttr - читает имя атрибута;
    WaitValue - ожидает значение атрибута;
    ReadValue - читает значение атрибута без кавычек;
    ReadValueSQ - читает значение атрибута в одинарных кавычках;
    ReadValueDQ - читает значение атрибута в двойных кавычках.
    Следуя терминологии конечных автоматов, мы можем назвать состояния WaitAttr, WaitAttrOrEq, ReadAttr и ReadValue допускающими. Это означает, что если после обработки переданной строки автомат находится в каком-либо другом состоянии, значит, тэг содержит ошибку (автомат не проверяет, завершается ли строка символом '>', это - задача блока, вызывающего функцию ParseTag).
    Процесс программной реализации автомата можно упростить, построив для него диаграмму переходов. ............






Похожие работы:

Название:Олимпийские стадионы: их роль и значение как системообразующих факторов олимпийского движения и феномена урбанизма XX века
Просмотров:733
Описание: Инженер-градостроитель Ю.М. Белов Российская государственная академия физической культуры,  Москва Введение. Истоки современного Олимпизма,  возрождения Олимпийских игр и строительства современных олимпийс

Название:Автоматизация работы маркшейдерских служб предприятий с использованием геоинформационных систем
Просмотров:748
Описание: Компьютерный комплекс для выполнения маркшейдерских задач в геоинформационной системе K-MINE длительное время активно используется на многих горнодобывающих предприятиях, в научно-изыскательских организациях, уч

Название:Автоматическая частотная разгрузка (АЧР)
Просмотров:628
Описание: Для локализации системных аварий и ликвидации аварийного режима работы сетей или энергосистемы, объекты сетевых компаний оснащаются аппаратурой противоаварийной автоматики (ПАА) Одной из основных функций ПАА

Название:Реинжиниринг: не автоматизируйте - - уничтожайте
Просмотров:324
Описание: Майкл Хаммер Майкл Хаммер - президент Hammer and Company (www.hammerandco.com), консалтинговой фирмы, работающей в области информационных технологий, расположенной в г. Кембридж (штат Массачусетс). Настоящая статья частично нап

Название:Значение русского языка в культуре безопасности человека
Просмотров:836
Описание: Гафнер В.В. Когда социальный класс использует язык тех,  кто его угнетает,  он становится угнетенным окончательно. Русский язык является не только национально-культурной ценностью, но и представляет собой объе

 
     

Вечно с вами © MaterStudiorum.ru