Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661




НазваниеПояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661
страница2/2
Дата публикации09.05.2013
Размер0.51 Mb.
ТипПояснительная записка
www.vbibl.ru > Информатика > Пояснительная записка
1   2
3.4 Инструкция пользователю
После запуска программы-транслятора необходимо ввести текст программы на предложенном условном языке программирования в поле ввода, расположенное в левом верхнем углу.

Если есть заранее подготовленный текстовый документ с кодом программы, то для того, чтобы загрузить его в поле ввода редактора исходного кода, необходимо нажать кнопку «Open File» и в предложенном диалоге выбрать свой файл.

Для того, чтобы откомпилировать и запустить программу, необходимо нажать кнопку «Compile & Run». В случае, если программа содержит лексические, синтаксические или семантические ошибки, будет выдан диалог с подробным описанием ошибки. В случае удачной компиляции программа будет запущена и будет выдан результат в виде таблицы значений переменных и трассировка выполнения.
3.5 Инструкция программисту
Программа содержит следующие структуры:


  1. Класс Token – токен

-Свойство TokenType Type { get; } – тип токена

-Свойство string TokenString { get; } – строка, соответствующая токену


  1. Перечисление TokenType – тип токена (ключевое слово, комментарий, операция, логическая операция, число, идентификатор, нераспознанный токен)




  1. Класс TokenFactory – статическая фабрика токенов

-Метод Token Create(string str) – статический метод создания токена соответствующего типа.


  1. Класс LinearAnalizer – статический класс, выполняющий функцию сканера, распознающего токены

- Метод TokenCollection Analize(string str, List exceptions) – статический метод, принимающий на вход строку с исходным кодом и возвращающий коллекцию распознанных токенов. Исключительные ситуации, произошедшие во время распознавания, накапливает в список exceptions.


  1. Класс GrammarAnalizer – статический класс, выполняющий проверку соответствия последовательности токенов зашитой в него грамматике.

- Метод bool Analize(TokenCollection tokens, out Program program) – статический метод, выполняющий проверку на соответствие грамматике последовательности токенов, принимает коллекцию токенов, возвращает флаг успешности проверки, также выходным параметром возвращает стековую машину с накопленными во время проверки инструкциями.


  1. Класс VariablesTable – класс, выполняющий функцию таблицы переменных

-Метод void RegisterVariable(Declaration declaration) – регистрирует переменную в таблице.

-Метод object GetValue(Token token) – получение значения переменной

-Метод void SetValue(Token token, object value) – установка значения переменной


  1. Класс ArithmeticStackMachine – класс, выполняющий функцию арифметической стековой машины

-Метод object Calculate(VariablesTable table) – вычисляет значение выражения в контексте значений переменных, переданных в аргументе


  1. Делегат Operation – операция, выполняемая над двумя переменными и возвращающая значение




  1. Класс Statement – абстрактная инструкция для стековой машины

-Метод void Run(VariablesTable table, ref string runTrace) – абстрактный метод запуска инструкции в контексте таблицы переменных, записывает трассировку выполнения в переменную runTrace.

  1. Класс AssumeStatement - наследник класса Statement, инструкция присваивания

-Метод void Run(VariablesTable table, ref string runTrace) –метод запуска инструкции в контексте таблицы переменных, записывает трассировку выполнения в переменную runTrace.


  1. Класс CycleForStatement - наследник класса Statement, инструкция цикла с управляющей переменной.

-Метод void Run(VariablesTable table, ref string runTrace) –метод запуска инструкции в контексте таблицы переменных, записывает трассировку выполнения в переменную runTrace.


  1. Класс CycleWhileStatement - наследник класса Statement, инструкция цикла с предусловием.

-Метод void Run(VariablesTable table, ref string runTrace) –метод запуска инструкции в контексте таблицы переменных, записывает трассировку выполнения в переменую runTrace.


  1. Класс MainWindow – класс главного окна приложения



3.6 Тестовый пример
В качестве тестового примера решим задачу вычисления суммы ряда

.

Примем x = 2, N =5, тогда сумма ряда будет:



Далее следует рисунок 2 тестового примера работы программы, решающей поставленную задачу.


Рисунок 2 – Тестовый пример работы программы
Из приведенного рисунка тестового примера видно, что программа выполнилась правильно, и был получен верный результат.
Заключение
Современные языки высокого уровня удобны для конкретного и однозначного описания алгоритма и сравнительно близки к естественным языкам, что делает их удобными для разработчика. В тоже время ни одна программа, написанная на языке программирования, не может быть непосредственно выполнена машиной – перед этим необходимо выполнить преобразование текста программы в специальный машинный код. Для этого создается специальная программа – транслятор, выполняющая лексический, синтаксический, семантический анализ и генерацию кода.

Для выполнения программы может быть использована абстрактная стековая машина, имеющая возможность выполнять арифметические инструкции, инструкции по работе со стеком и инструкции управления выполнением.


Список использованных источников


  1. http://ru.wikipedia.org - Свободная энциклопедия Википедия. Статья «Компилятор»;

Ахо А., Сети Р., Ульман Дж. Компиляторы: принципы, технологии, инструменты. М.: Вильямс, 2001.

Аннотация
В данном курсовом проекте рассмотрена задача разработки транслятора с условного языка программирования. Программа была написана на языке С# в среде Microsoft Visual Studio 2008.

Пояснительная записка содержит 27 листов, 2 рисунков и 13 листингов классов. В ходе выполнения курсового проекта было использовано 2 источника.
1   2

Похожие:

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по курсу «Теория языков программирования...
В тоже время ни одна программа написанная на яп не может быть непосредственно выполнена машиной – перед этим необходимо выполнить...

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «Теория языков...
Представление основных операторов(описанных в разделе семантики) с помощью тетрад 34

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «Интеллектуальные подсистемы сапр»
Пояснительная записка к курсовой работе 10 страниц, 2 рисунка, 1 таблица, 3 источника

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «Алгоритмизация...
Сеть книжных магазинов. – Челябинск: юурГУ, ЭиП-208, 2012. – 50 с., 13 ил., 1 прил

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «технологии программирования»
Государственного образовательного учреждения высшего профессионального образования Российский химико-технологический университет

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «Теория электрической связи»
Целью курсовой работы является получение навыков по вычислению параметров системы связи, анализу полученных результатов, а также...

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconОтчет по лабораторной работе №2 по курсу «Моделирование систем» студент гр. 230661
Изучение объектно-ориентированного моделирования и исследование процесса построения диаграмм использования и диаграмм взаимодействий...

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к контрольно-курсовой работе по курсу «Человеко-машинное взаимодействие»
...

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «Теория автоматов»
Курсовая работа по теории автоматов выполняется с целью закрепления ранее полученных знаний, приобретения навыков и умений самостоятельного...

Пояснительная записка к курсовой работе по курсу «Теория языков программирования и методы трансляции» Выполнил студент гр. 230661 iconПояснительная записка к курсовой работе по дисциплине «Теория автоматов»
Ученик может исправить полученную оценку. Завуч может добавить информацию о новом учителе или ученике, а также удалить о выбывших....

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
www.vbibl.ru
Главная страница