
- •Выпускная квалификационная работа бакалавра
- •Задание на выпускную квалификационную работу бакалавра
- •План-график выполнения работы
- •Реферат
- •Введение
- •1 Языковые процессоры
- •1.1 Практическое применениеискусственных языков
- •1.2 Практический пример
- •1.3 Понятие и структура языкового процессора
- •2Обзор существующих систем и обоснование выбора инструментальных средств и класса грамматики
- •2.1 Обзор существующей символьной спецификации моделей гс в среде исма
- •2.1.1 Лексемы языка исма
- •2.1.2 Грамматика языка исма
- •2.1.3 Семантические действия в языковом процессоре исма
- •2.1.4 Заключение
- •2.2 Обоснование выбора инструментальных средств и класса грамматики
- •3 Постановка задачи исследования
- •3.1 Характеристика задачи исследования
- •3.2 Входная информация
- •3.3 Выходная информация
- •3.4 Архитектура среды исма с расширенным языком описания гс
- •4 Программно-математическое обеспечение
- •4.1Лексический анализатор
- •4.1.1 Функции лексического анализатора
- •4.1.2 Спецификация токенови входного алфавита символов
- •4.1.3 Распознавание токенов
- •4.1.4 Иерархия классов модуля
- •4.2 Синтаксический анализатор
- •4.2.1 Функции синтаксического анализатора
- •4.2.2 Спецификация грамматики
- •4.2.3 Метод разбора
- •4.2.4 Восстановление после ошибок
- •4.2.5 Иерархия классов модуля
- •4.3 Семантический анализ
- •4.3.1 Промежуточное представление программы
- •4.3.2 Грамматика с семантическими правилами
- •4.3.3 Модифицированныйметодразбора
- •4.3.4 Семантический анализ. Таблица символов
- •4.3.5 Семантический анализ. Проверка корректности типа
- •4.4 Генерация кода
- •4.5 Система сбора диагностических сообщений
- •5 Тестирование
- •5.1 Лексический анализатор
- •5.2 Синтаксическийанализатор
- •5.3 Семантический анализатор
- •Заключение
- •Список использованных источников
- •ПриложениеA Диагностические сообщения
- •Диагностические сообщения сканера
- •Диагностические сообщения парсера
- •Диагностические сообщения семантического анализатора
- •ПриложениеБ
- •Б.1.3 Установка системы
- •Б.2 Работа с системой б.2.1 Запуск системы и начало работы
- •Б.2.2Ввод программной модели
- •Б.2.3Трансляция модели и просмотр результата
- •Б.2.4Сохранение программной модели
- •Б.2.6Завершение работы с системой
- •Приложение в
- •Листинг программы
- •В.1 Модуль лексического анализатора
- •Файл abstractLexer.H
- •Файл lexer.H
- •Файл lexer.Cpp
- •В.2 Модуль синтаксического анализатора Файл abstractParser.H
- •Файлparser_ll1.H
- •Файл parser_ll1.Cpp
- •В.3 Модуль семантического анализатора Файл symbolTable.H
- •Файл SymbolTableFactory.H
- •Файл checker.H
- •В.4 Модулькодогенератора ФайлastVisitor.H
- •Файл astCodeGen.H
Введение
Внастоящиевремя сложность объектов моделирования постоянно возрастает. Зачастую поведение сложного объекта или процесса описывается системой дифференциальных уравнений повышенной размерности. Существует класс задач, в которых задание правых частей системы алгебро-дифференциальных уравнений (АДУ) носит алгоритмический характер, т.е. существует непосредственная зависимость между индексом переменной и правой частью соответствующего уравнения.Подобная форма описания АДУ распространена в задачах химической кинетики. Одна из таких задач, сформулирована лабораторией Akzo Nobel Central Research [7]. Это является существенным основанием для построения программных средств автоматизации построения итоговой системы АДУ.
Поэтому целью данной работы является разработкаспособа спецификации и компьютерного анализа гибридных систем повышенной размерности, допускающих частичное или полностью алгоритмическое формирование правых частей системы АДУ.За основу взят языкИСМА, который будет расширен новыми конструкциями, обеспечивающими алгоритмическое задание правых частей АДУ.
В связи с этим выделяются следующие задачи работы. Задачи работы:
знакомство с предметной областью;
постановка задачи;
разработка нового языка и подбор порождающейграмматики;
проектирование приложения и разработка алгоритмов;
кодирование, отладка, тестирование;
подготовка пояснительной записки
1 Языковые процессоры
1.1 Практическое применениеискусственных языков
В настоящее время искусственные языки, использующие для описания предметной области текстовое представление, широко применяются не тольков программировании, но и в других областях. С их помощью описываетсяструктура всевозможных документов, трехмерных виртуальных миров, графических интерфейсов пользователя и многих других объектов, используемых вмоделях и в реальном мире. Для того чтобы эти текстовые описания были корректно составлены, а затем правильно распознаны и интерпретированы, применяются специальные методы их анализа и преобразования. В основе данныхметодов лежит теория формальных языков, грамматик и автоматов.
Так, например,интерпретатор описания и анализа задачи Коши позволяет предметному пользователю производить машинные эксперименты из области обозначенных систем обыкновенных дифференциальных уравнений без дополнительных профессиональных усилий, связанных с программированием, реализацией вычислительных процедур и интерпретацией решения[6]. Одним из таких предметных языков является символьное представление моделей в инструментальной среде ИСМА(Инструментальные Средства Машинного Анализа), созданной студентами кафедры АСУ.Этот язык используется дляспецификации и анализагибридных систем (ГС). Такие системыдемонстрируют как непрерывные, так и дискретные аспекты поведения[10].
На данный момент версия языкаИСМА (LISMA) не позволяет качественно специфицировать модели ГС, описываемые системой дифференциальных уравнений высокой размерности, в которых имеетсяалгоритмическая зависимость между индексом переменной и правой частью соответствующего уравнения.