- •Анализ отдельных слов
- •Анализ отдельных предложений
- •Семантический анализ
- •Заключение
- •Литература
- •Документальные ис.
- •Принцип функционирования ипс.
- •Состав аис.
- •Уровни представления языковых объектов.
- •Основные элементы ипя.
- •Требования к ипя.
- •Типология ипя.
- •Языки предкоординатного типа. Иерархическая классификация.
- •Перечислительные классификации.
- •Фасетные классификации.
- •Посткоординационные ипя.
- •Дескрипторные ипя.
- •Устранение синонимии.
- •Словари лексических единиц.
- •1. Тезаурус.
- •2. Другие виды.
- •Построение словаря дескрипторного языка. Основные характеристики. Анализ и построение словаря дескрипторного языка.
- •Количественные характеристики словарей.
- •Учёт синтагматических отношений.
- •Семантические коды.
- •Системы индексирования.
- •Типы (разновидности) систем индексирования.
- •Подходы к автоматизации индексирования.
- •Системы кодирования.
- •Оценка эффективности поиска.
- •Организация информационных массивов.
- •Стратегии поиска.
- •Элементы теории формальных языков и грамматик Введение.
- •Основные понятия и определения
- •Классификация грамматик и языков по Хомскому
- •Примеры грамматик и языков.
- •Разбор цепочек
- •Преобразования грамматик
- •Задачи.
- •Элементы теории трансляции Введение.
- •Описание модельного языка
- •Лексический анализ
- •О недетерминированном разборе
- •Задачи лексического анализа
- •Лексический анализатор для м-языка
- •Второй этап: по дс пишем программу
- •Задачи.
- •Синтаксический и семантический анализ
- •Метод рекурсивного спуска
- •Void error(); / функция обработки ошибок /
- •О применимости метода рекурсивного спуска
- •Синтаксический анализатор для м-языка
- •О семантическом анализе
- •Семантический анализатор для м-языка
- •Обработка описаний
- •Int declare; /* описан ? 1-"да", 0-"нет" */
- •Void ipush (int I); /* значение I - в стек */
- •Int ipop (void); /* из стека - целое */
- •Контроль контекстных условий в выражении
- •Void spush (char *s); /* значение s - в стек */
- •If (tid [I].Declare) /* описан? */
- •Контроль контекстных условий в операторах
- •Задачи.
- •Генерация внутреннего представления программ
- •Язык внутреннего представления программы
- •Синтаксически управляемый перевод
- •Генератор внутреннего представления программы на м-языке
- •Интерпретатор полиЗа для модельного языка
- •Задачи.
- •Литература
- •Раздел 7 (вопрос 3) Значение когнитивной психологии и структурной лингвистики для автоматизированной обработки текстов на ея
- •Когнитивная лингвистика
- •Когнитивная лингвистика и другие науки
- •Концепция образных схем
- •Концептуальная теория метафоры
- •Формирование когнитивной лингвистики
- •Раздел 7 (вопрос 5) Модель понимания текстов Кинча
- •1.2. Основные положения
- •1.3. Общая характеристика модели
- •Раздел 7 (вопрос 6) Принципы структуризации текстов на основе трансформационной грамматики.
- •Синтактика, семантика и прагматика
- •Знаки и культура
- •Синтагма и парадигма
- •Типы связей между знаком и денотатом
- •Знак. Его значение и смысл
- •Знаковое пространство. Парадигма трех миров
- •Знаковые системы и типы знаков
- •Понятие коннотата
- •Проблема похожести знака на денотат. Ономатопея
- •Случайность и закономерность в знаках и знаковых системах
- •Прагматика – часть семиотики
- •Глава 2. Слова, словари и понятия Слова и словари
- •Акты именования. Семиотические универсалии
- •Треугольник Фреге. Связь между знаком, денотатом и понятием
- •Глава 3. Теория тезауруса Тезаурус. Онтогенез
- •Тезаурус. Определение
- •Популярные тезаурусы и их особенности
- •Теория тезауруса и семиотика
- •Теория тезауруса и информатика
- •Тезаурус. Парадигматика
- •Тезаурусная терминология
- •Популярные тезаурусы и их особенности
- •Глава 4. Эволюция знаковых систем. Законы существования текстов в обществе Постановка проблемы
- •Парадигматика, или правила обращения с текстами
- •Материализация знака. Фактура речи
- •Переход от одной фактуры речи к другой
- •Глава 5. Парадигмы построения эффективных знаковых произведений Общие положения
- •Риторика и ее гуманитарная катастрофа
- •Определение риторики как науки об эффективной деятельности
- •Риторика как прагматика
- •Риторика и логика. Риторика и истина. Образ автора
- •Риторика. Классические парадигмы
- •Понятие риторического изобретения
- •Девиации синтактики и семантики знаков как риторическая парадигма
- •Риторика как технология эффективной деятельности. Теория документа
- •Глава 6. Знаки, люди и законы. Парадигмы их взаимодействия на примере рекламных текстов Американская реклама как сфера общения
- •Коммуникативная структура американской рекламы
- •Авторство и правила обращения с рекламными текстами
- •Роль рекламных текстов в американском обществе
- •Законодательное регулирование рекламной деятельности
- •Законы знакообразования
- •Законодательное регулирование связи знак–денотат в рекламе
- •Прагматика рекламного текста
- •Регулирование собственно рекламной деятельности как производства текстов
- •Рекламоведческие правила
- •Правила сбора информации
- •Синтактика рекламного текста
- •Интеграция с другими типами знаков
- •Прагматический эффект рекламы
- •Реклама – важная часть американской цивилизации
- •Универсальность и прогностический потенциал рекламной парадигмы
- •Нечеткие множества. Основные понятия и определения, подходы к их обработке, операции над нечёткими множествами.
Синтаксический и семантический анализ
На этапе синтаксического анализа нужно установить, имеет ли цепочка лексем структуру, заданную синтаксисом языка, и зафиксировать эту структуру. Следовательно, снова надо решать задачу разбора: дана цепочка лексем, и надо определить, выводима ли она в грамматике, определяющей синтаксис языка. Однако структура таких конструкций как выражение, описание, оператор и т.п., более сложная, чем структура идентификаторов и чисел. Поэтому для описания синтаксиса языков программирования нужны более мощные грамматики, чем регулярные. Обычно для этого используют укорачивающие контекстно-свободные грамматики (УКС-грамматики), правила которых имеют вид A , где A VN, (VT VN)*. Грамматики этого класса, с одной стороны, позволяют достаточно полно описать синтаксическую структуру реальных языков программирования; с другой стороны, для разных подклассов УКС-грамматик существуют достаточно эффективные алгоритмы разбора.
С теоретической точки зрения существует алгоритм, который по любой данной КС-грамматике и данной цепочке выясняет, принадлежит ли цепочка языку, порождаемому этой грамматикой. Но время работы такого алгоритма (синтаксического анализа с возвратами) экспоненциально зависит от длины цепочки, что с практической точки зрения совершенно неприемлемо.
Существуют табличные методы анализа ([3]), применимые ко всему классу КС-грамматик и требующие для разбора цепочек длины n времени cn3 (алгоритм Кока-Янгера-Касами) либо cn2 (алгоритм Эрли). Их разумно применять только в том случае, если для интересующего нас языка не существует грамматики, по которой можно построить анализатор с линейной временной зависимостью.
Алгоритмы анализа, расходующие на обработку входной цепочки линейное время, применимы только к некоторым подклассам КС-грамматик. Рассмотрим один из таких методов.
Метод рекурсивного спуска
Пример: пусть дана грамматика G =({a,b,c, }, {S,A,B}, P, S), где
P: S AB
A a | cA
B bA
и надо определить, принадлежит ли цепочка caba языку L(G).
Построим вывод этой цепочки:
S AB cAB caB cabA caba
Следовательно, цепочка принадлежит языку L(G).
Последовательность применений правил вывода эквивалентна построению дерева разбора методом "сверху вниз":
Метод рекурсивного спуска (РС-метод) реализует этот способ практически "в лоб": для каждого нетерминала грамматики создается своя процедура, носящая его имя; ее задача - начиная с указанного места исходной цепочки найти подцепочку, которая выводится из этого нетерминала. Если такую подцепочку считать не удается, то процедура завершает свою работу вызовом процедуры обработки ошибки, которая выдает сообщение о том, что цепочка не принадлежит языку, и останавливает разбор. Если подцепочку удалось найти, то работа процедуры считается нормально завершенной и осуществляется возврат в точку вызова. Тело каждой такой процедуры пишется непосредственно по правилам вывода соответствующего нетерминала: для правой части каждого правила осуществляется поиск подцепочки, выводимой из этой правой части. При этом терминалы распознаются самой процедурой, а нетерминалы соответствуют вызовам процедур, носящих их имена.
Пример: совокупность процедур рекурсивного спуска для грамматики G = ({a,b,c,}, {S,A,B}, P, S), где
P: S AB
A a | cA
B bA
будет такой:
#include <stdio.h>
int c;
FILE *fp;/указатель на файл, в котором находится анализируе-мая цепочка /
void A();
void B();