Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по ТЯП. / готовый курсовик.doc
Скачиваний:
36
Добавлен:
01.05.2014
Размер:
1.2 Mб
Скачать

2 Описание входного языка

2.1. Синтаксис входного языка

Примечание: жирным шрифтом отмечены встроенные конструкции входного языка, а основным- конструкции БНФ.

< программа >::= void main()

{ {< объявление переменной>;}|

{< объявление вектора>;} |

<составной оператор> }

< составной оператор>::= <оператор>;

< оператор >::= [<метка>:]<непомеченный оператор>

< непомеченный оператор>::=< составной оператор >|< оператор присваивания >

< условный оператор присваивания>|< условный оператор >|

<оператор цикла с параметром>|<оператор безусловного перехода>|

< оператор ввода>|<оператор вывода>

< оператор присваивания >::=< переменная ><отношение присваивания>< выражение >

< отношение присваивания>::= + = | = | -= | *= | /=

< условный оператор присваивания>::=

(<логическое выражение>)?< выражение>:< выражение >

< условный оператор >::= if (<логическое выражение>) <составной оператор>

[else <составной оператор> ]

< оператор цикла с параметром>::=

for(<оператор присваивания>;<логическое выражение>;<оператор присваивания>)

<составной оператор>

<оператор безусловного перехода>::=goto<метка>

< оператор ввода>::= cin >><переменная>

< оператор вывода>::=cout <<<переменная>

< выражение>::=<выражение><аддитивная операция><слагаемое>|<слагаемое>|

< унарная операция >< слагаемое >| ~<вектор>

< слагаемое>::=<слагаемое><мультипликативная операция><множитель>|<множитель>

< множитель>::=<переменная>|(<выражение>)

< мультипликативная операция>::= *|/

< аддитивная операция>::=+|-

< логическое выражение>::=<конъюнкция>or<конъюнкция>|<отношение>

< конъюнкция>::=<логический множитель>and<логический множитель>

< логический множитель>::=<(<логическое выражение>)|

not<логический множитель>

< отношение> ::= <выражение> <операция отношения> <выражение>

< операция отношения>::=<|>|<=|>=|== | !=

< унарная операция>::= ++ |--

< объявление переменной> ::= <базовый тип> <идентификатор>

< объявление вектора>::=vector <идентификатор>[<размерность>]

< переменная> ::= <идентификатор>|< вектор>

< метка>::= <идентификатор>

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

< буква> ::= 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

< натуральная цифра>::=1|2|3|4|5|6|7|8|9

< цифра> ::= 0| <натуральная цифра>

< размерность>::=<натуральная цифра> {<цифра>}

< индекс>::= 0| <натуральная цифра>{<цифра>}

< базовый тип>::=int| float| bool

< вектор>::=

<идентификатор>|[< элемент вектора> {,< элемент вектора>}]

< элемент вектора> ::=

< идентификатор >[<индекс>] |< идентификатор> |< вещественное число>

< вещественное число>::=<натуральная цифра> {<цифра>}.{<цифра>}

2.2. Семантика входного языка

2.2.1.Встроенные типы данных входного языка

Базовые типы входного языка:

Имя типа

Кол-во байт

Описание хранимых данных

int

2

Целые числа в диапазоне от -32768 до 32767

float

4

Вещественные числа в диапазоне 3.14E-38 до 3.14E+38.

bool

1

Логические переменные ЛОЖЬ(false) и ИСТИНА(true)

Входной язык также поддерживает структурированный тип – vector -вектор с вещественными компонентами. Вектор представляется совокупностью компонент, каждая из которых, в свою очередь, представляется типом float.

При создании вектора необходимо указать его размерность, чтобы знать какой объем памяти отводить под его хранение.