Разработка программы для лексического и синтаксического анализа на языке программирования Visual C. Исследование процесса построения таблицы переходов-выходов. Характеристика методов трансляции. Изучение способов построения формальной грамматики.
Аннотация к работе
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯКаждый человек хоть раз написавший какую-либо программу, достаточно хорошо может представить себе, как разработать «небольшую» программу, решающую обычно одну конкретную несложную задачу и предназначенную, чаще всего, для использования одним человеком или узкой группой людей. В процессе выделения лексем лексический анализатор может как самостоятельно строить таблицы объектов (чисел, строк, идентификаторов и так далее), так и выдавать значения для каждой лексемы при очередном к нему обращении. В настоящее время чаще всего используется либо LL(1)-анализ (и его вариант - рекурсивный спуск), либо LR(1)-анализ и его варианты (LR(0), SLR(1), LALR(1) и другие). Используется также термин LR(k)-анализатор, где k выражает количество непрочитанных символов предварительного просмотра во входном потоке, на основании которых принимаются решения при анализе. Например, конечный автомат может быть задан с помощью пяти параметров, где Q - конечное множество состояний автомата, S0 - начальное состояние автомата, F - множество заключительных (или допускающих) состояний, ? - допустимый входной алфавит (конечное множество допустимых входных символов), из которого формируются строки, считываемые автоматом, ? - заданное отображение множества во множество подмножеств Q.Рисунок - Листинг программы: Размещено на .