BigEdu.ru

Интерпретатор 2

Федеральное агентство по образованию

ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра информатики и вычислительной техники

Пояснительная записка

к курсовому проекту

по дисциплине СПО

Выполнил:

студент гр. ИВТ-425

Елизов В. В.

Проверил:

к.т.н., доцент

Флоренсов А. Н.

Омск 2009


Содержание

Задание. 3

Описание разработанного языка. 4

Описание модулей. 7

main.c. 8

init.c. 9

lexer.c. 10

parser.c. 12

symbol.c. 19

emitter.c. 21

errors.c. 24

Список использованной литературы.. 25


Описание разработанного языка

Разработанный интерпретатор работает с особым языком программирования, который, для упрощения, далее в тексте будет называться NL.

Алфавит языка можно разделить на 6 групп:

1. Символы пробела и табуляции .

2. Буквы - это прописные и строчные буквы латинского алфавита.

3. Арабские цифры - это цифры от 0 до 9.

4. Разделители и ограничители: , ; ( ) {}

5. Знаки операций + - * / := != == > < <= >=

6. Зарезервированныеслова: if, else, while, input, print, printn

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

Любая программа должна начинаться символа { и заканчиваться символом }. Они называются операторные скобки и указывают на начало и конец процедуры.

К тому же любая операция должна заканчиваться символом ; (точка с запятой).

Простейшая программа может выглядеть следующим образом:

{

print 5.3;

}

При выполнении этой программы на экране появится число 5.3. Можно заметить, что оператор print выводит на экран число (значение переменной), которое следует за ним. Для вывода последовательности аргументы необходимо указать через запятую.

Также существует оператор printn, который выполняет те же самые функции, что и print, только на экран выведется лишь целочисленное значение. Например, если выполнить программу:

{

printn 5.3;

}

То на экране появится округленный результат – число 5.

Для того чтобы использовать переменную необходимо либо ввести ее значение при помощи оператора input, либо использовать присваивание (оператор :=). Переменная описывается последовательностью латинских букв, цифр и знака подчеркивания, начинающейся с буквы.

{

a:=5.3;

input b;

print a,b;

printna,b;

}

В вышеописанном примере используется две переменных, a и b. Первая принимает значение 5.3, значение же второй необходимо ввести вручную и нажать клавишу ввода. Результатом выполнения этой программы будет 4 числа: 5.3, значение переменной b, 5 и округленное до целого значение второй переменной. Причем, каждое число будет выведено в новой строке.

Для ввода нескольких переменных, как и для вывода можно использовать последовательность имен, перечисленных через запятую.

Язык NL позволяет выполнять простейшие операции (над числами и переменными) такие как: сложение, вычитание, умножение и деление. Которые записываются так же, как и в математике: +, -, *, /. Порядок выполнения этих операций также соответствует привычному. Для изменения приоритета нужно использовать скобки.

{

input a,b,c;

d:=(a*(a+b*b)+c)*c;

print d;

}

Для выполнения более сложных операций используется оператор условного перехода if-else – когда последовательность действий зависит от какого-либо условия. Структура условного оператора в полной форме имеет следующий вид:

if (условие) {действия1} else { действия 2};

Условие - это выражение логического типа, которое может принимать два значения: истина или ложь. Для записи условия используются операции сравнения:

· == - равно

· != - неравно

· > - больше

· < - меньше

· >= - меньше-равно

· <= - больше-равно

Рассмотрим на примере работу условного оператора:

{

input a,b;

if(a==b)

{

print 10;

}

else

{

print 0;

};

}

В начале программы вводятся два числа a и b. Затем они сравниваются на равенство. Если a равно b, то будут выполняться действия, находящиеся в операторных скобках непосредственно за словом if. То есть, на экран выведется 10. Затем программа «перепрыгнет» через операторные скобки после слова else, на чем выполнение закончится. Если же условие окажется ложным (a не равно b), то пропустится первая последовательность действий и выполнится вторая, находящаяся в операторных скобках после слова else. А именно, выведется 0.

Для выполнения повторяющихся действий используется оператор цикла while. Структура этого оператора имеет вид:
while (условие) {последовательность действий};, где условие - это любое логическое выражение, истинность которого проверяется в начале каждой итерации (условие выполнения тела цикла). При истинности условия выполнится последовательность действий, находящаяся в операторных скобках и опять проверится условие. Так будет продолжаться до тех пор, пока результат логического выражения не окажется ложным. Тогда последовательность действий перестанет в

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать
Рефераты по информатике и программированию Федеральное агентство по образованию ОМСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра информатики и вычислительной техники Пояснительная
Оценок: 1004 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru