Скачиваний:
9
Добавлен:
01.05.2014
Размер:
210 Кб
Скачать
☆
  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. Константы.

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

неизменным

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

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

1.3.6. Ключевые слова.

Следующие ключевые слова считаются зарезервированными и не могут использоваться в качестве идентификаторов:

end array boolean const do else end false goto if integer

label not or program read then to true var while write

Ключевые слова воспринимаются как единые символы с фиксированным смыслом, который задан в определении языка.

1.3.7. Строки.

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

‘кавычки’ .

1.4. Описания и типы.

1.4.1. Целый и булевый типы.

Целочисленный знаковый тип intеger : размер 2 байта, диапазон -32768..32767.

Булевый тип(логический) : размер 1 байт ,диапазон True-False(1-0)

Операции:

Оператор

тип оператора

допустимые типы параметров

+

унарный

integer

-

унарный

integer

+

бинарный

integer

-

бинарный

integer

*

бинарный

integer

/

бинарный

integer

or

бинарный

integer,boolean

and

бинарный

integer,boolean

=, !=, <, >, <=, >=

бинарные

integer,boolean

not

унарный

integer,boolean

1.4.2. Выражения.

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

<логическое выр>:=<логическое выр>or<логическое выр>|<логическое выр1>

<логическое выр1>:=<логическое выр2>|<логическое выр>and<логическое выр2>

<логическое выр2>:=<булев_перемен>|not<<логическое выр2>

<логическое выр2>:=’(‘<логическое выр>’)’|’(‘<отношение>’)’

< булев_перемен >:=<имя>|<булево_число>

< булево_число >:=true|false

< отношение>:=<выражение><знак логической операции><выражение>

<знак логической операции>:=’>’,’<’,’=’,’>=’,’<=’

<арифметическoе выр>:=<терм>|<арифметичесоке выр>’+’(‘-‘)<терм>

<терм>:=<множ>|<терм>’*’(‘/’)<множ>

<множ>:=’(‘<арифметическoе выр>’)’|<имя>|<число>|<элемент массива>

1.4.3. Описания.

Любое описание сопоставляет с описываемым понятием некоторый идентификатор - имя переменной.

1.5. Операторы.

1.5.1. Пустой оператор.

Синтаксис :

<пустой_оператор> ::= ‘begin’ ‘end’;

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

1.5.2. Оператор присваивания.

Синтаксис :

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

<оператор_присваивания>::=<имя>':='<выражение>’;’|<элемент массива>

'='<выражение>';'

Порядок выполнения оператора присваивания :

Вычисляется значение выражения в правой части, затем, справа налево, оно присваивается переменным в левой части, если тип значения и переменной совпадают. В противном случае присваивание не выполняется и пользователю выдается сообщение об ошибке.

1.5.3. Оператор перехода.

Синтаксис :

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

Оператор осуществляет безусловный переход к оператору, помеченому меткой. При отсутствии такового выдается сообщение об ошибке. Метка должна быть уникальной в пределах программы.

1.5.4. Оператор вывода.

Синтаксис :

<оператор_вывода>::='write'[‘(‘<строка вывода>’)’] ’;’

<cтрока вывода>::=‘<строка>’ ‘[‘,’<имя>]| ‘<cтрока>’’,’{<имя>}

<строка>::=<расшир_буква>|< расшир_буква ><строка>|’ ‘<строка>

< расшир_буква>:=<любой символ>

Оператор осуществляет вывод в стандартный поток вывода, связаный обычно с экраном дисплея, значения переменной <переменная>.

1.5.5. Оператор ввода.

Синтаксис :

<оператор_ввода>::='read'’[‘’(‘<строка ввода >’)’]’’;’

Оператор ввода осуществляет чтение из стандартного потока ввода (клавиатуры) значения.

1.5.6. Составной оператор.

Синтаксис :

<составной_оператор> ::= 'begin' {<оператор>} 'end'

Операторы, входящие в состав составного оператора, выполняются в порядке их написания.

1.5.7. Условный оператор.

Синтаксис :

<условный_оператор>::='if'<булево_выражение>'then'<непомеченный

оператор>['else'<непомеченный оператор>]

Вначале вычисляется <условное_выражение>. Если оно истинно, то выполняется первый <непомеченный оператор> иначе второй оператор, если он присутствует.

1.6. Программа.

Синтаксис :

<программа>::=’program’<имя> ';’<блок>

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