Скачиваний:
8
Добавлен:
01.05.2014
Размер:
209.92 Кб
Скачать

15

Комитет образования рф

Санкт-Петербургский Государственный Электротехнический Университет

кафедра математического обеспечения и применения ЭВМ

Отчёт по курсовой работе

по дисциплине

Языки программирования и методы трансляции

Сдал студент гр.5342 Степанов Д.С.

Преподаватель Семенова О.Н.

Санкт-Петербург, 1997 год

  1. Описание входного языка и постановка задачи.

1.1

ИсходнаЯ постановка задаЧи

Разработать язык программирования, являющийся подмножеством языка ПАСКАЛЬ и транслятор с этого языка в последовательность тетрад.

Язык должен обеспечивать работу с переменными и константами целого и булевского типов и булевскими массивами.

Язык должен допускать использование арифметических выражений, в состав которых могут входить константы и простые переменные целого типа, круглые скобки и знаки операций: сложение, вычитание, умножение и деление, и логических выражений, состоящих из констант, простых переменных и элементов массивов булевского типа, круглых скобок и знаков операций: НЕ, ИЛИ, И. Приоритет операций в арифметических и логических выражениях – обычный.

Состав операторов:

– оператор присваивания;

– оператор вывода;

– оператор ввода;

– составной оператор;

– оператор безусловного перехода;

– условный оператор, условие в котором задается логическим выражением;

– оператор цикла с предусловием, условие в котором задается логическим выражением.

Программа на входном языке может содержать комментарии.

Синтаксический анализ должен быть выполнен с использованием грамматик операторного предшествования.

1.2. Формализм для описания синтаксиса.

Синтаксис языка описан с помощью модифицированных форм Бэкуса-Наура:

- металингвистические переменные состоят из строчных букв русского алфавита и знаков подчеркивания; имя каждой переменной взято в <угловые скобки>;

- зарезервированные слова обозначаются словами английского языка, состоящими из строчных латинских букв;

- в [квадратные скобки] заключаются элементы, которые могут отсутствовать;

- повторяющиеся нуль или более раз элементы заключаются в {фигурные скобки};

1.3. Лексика языка.

1.3.1. Терминальные символы языка.

К терминальным символам языка относятся :

  • 26 букв латинского алфавита, строчные и прописные :

    A B C ... Y Z a b c ... y z

  • 33 буквы русского алфавита :

    А Б В ... Ю Я а б в ... ю я

  • 10 цифр :

    0 1 2 3 4 5 6 7 8 9

  • 20 специальный символ :

    [ ] { } , . > < = + - * / " ( ) :

  • символа пробела

  • символа конца строки.

1.3.2. Лексемы и соглашения о разделителях.

Текст программы разбивается на лексемы, которыми являются идентификаторы, ключевые слова, целые и вещественные числа, специальные символы

+ - * / ( ) [ ] { } , ; : = > < - однолитерные разделители.

а также комбинации специальных символов(двулитерные разделители)

<= знак оператора меньше или равно.

>= знак оператора больше или равно.

= знак оператора равно.

:= знак оператора присвоить

  1. Комментарии.

Комментарии - любые символы, заключенные в { }.

1.3.4. Идентификаторы.

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

Синтаксис :

<идентификатор>::=<буква> {<буква>|<цифра>}

<буква>::='a'|'b'|'c'|'d'|'e'|'f'|'g'|'h'|'i'|'j'|'k'|'l'|'m'|'n'|'o'|'p'|'q'|'r'|'s'|'t'|'u'|'v'|'w'|'x'|'y'|'z'|

|'A'|'B'|'C'|'D'|'E'|'F'|'G'|'H'|'I'|'J'|'K'|'L'|'M'|'N'|'O'|'P'|'Q'|'R'|'S'|'T'|'U'|'V'|'W'|'X'|'Y'|'Z'

<цифра>::='0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'

Строчные и заглавные буквы различаются. Ограничение на длину: длина идентификатора не может быть больше 20 символов.

  1. Константы.

Значение констант определяется лишь единожды и после остается

неизменным

<константа>::=<имя>’=’<значение>

<значение>:=<выражение>

Соседние файлы в папке Курсовая работа2