Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик по ТЯП.DOC
Скачиваний:
10
Добавлен:
01.05.2014
Размер:
240.13 Кб
Скачать

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

Тип определяет множество значений переменных, выражений и т.п., которые относятся к этому типу.

Кроме заданных предопределенных типов: boolean - булевский, integer - целый, real - вещественный, complex - комплексный, - разрешается определять собственные типы и подтипы. Определение типа вводит для обозначения некоторого типа имя типа.

Определение типов объединяются в раздел определения типов:

<Раздел определения типов> ::= type <определение типа>;{<определение типа>;}

<определение типа> ::= <имя типа> = <тип>

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

Способы описания собственных типов:

<тип> ::= <простой тип> | <составной тип>

<простой тип> ::= integer | real | complex | boolean | <диапазонный тип> | <определенный ранее тип>

<диапазонный тип> ::= <константа>..<константа>

<составной тип> ::= <массивный тип> | <запись>

<массивный тип> ::= array [<тип индекса>{,<тип индекса>}] of <тип компоненты>

<тип индекса> ::= <простой тип>

<тип компоненты> ::= <имя типа>

<запись> ::= record <список полей> end

<список полей> ::= [<секция записи>{;<секция записи>} ]

<секция записи> ::= <список имен>:<тип>

Указанный тип должен быть ранее определен.

<список имен> ::= идентификатор{,идентификатор}

Описание констант:

Описания констант объединяются в раздел констант:

<раздел описания констант> ::= const <определение константы>;{<определение константы>;}

<определение константы> ::= <имя константы> = <константа>

<константа> ::= [<знак>] <константа без знака>

<константа без знака> ::= число_без_знака | <имя константы>

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

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

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

<раздел описания переменных> ::= var <описание переменных>;{<описание переменных>;}

<описание переменных> ::= <список имен>:<тип>

Имена и выражения Выражения:

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

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

(для бинарных операций)

+

integer

real

complex

boolean

integer

integer

-

-

-

real

-

real

-

-

complex

-

-

complex

-

boolean

-

-

-

-

-

integer

real

complex

boolean

integer

integer

-

-

-

real

-

real

-

-

complex

-

-

complex

-

boolean

-

-

-

-

*

integer

real

complex

boolean

integer

integer

-

-

-

real

-

real

-

-

complex

-

-

complex

-

boolean

-

-

-

-

/

integer

real

complex

boolean

integer

integer

-

-

-

real

-

real

-

-

complex

-

-

complex

-

boolean

-

-

-

-

(для унарных операций)

+

-

integer

integer

integer

real

real

real

complex

complex

complex

boolean

-

-

В выражении могут присутствовать операции отношения:

=

integer

real

complex

boolean

integer

boolean

-

-

-

real

-

boolean

-

-

complex

-

-

boolean

-

boolean

-

-

-

boolean

<

integer

real

complex

boolean

integer

boolean

-

-

-

real

-

boolean

-

-

complex

-

-

boolean

-

boolean

-

-

-

boolean

>

integer

real

complex

boolean

integer

boolean

-

-

-

real

-

boolean

-

-

complex

-

-

boolean

-

boolean

-

-

-

boolean

Таблица приоритетов:

+, -

( )

*, /

+, -

=, <, >

<выражение> ::= <арифметическое выражение>{<операция отношения> <арифметическое выражение>}

<арифметическое выражение> ::= [<знак>] <терм>

<терм> ::= <фактор> {<арифметическая операция> <фактор>}

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

<арифметическая операция> ::= * | / | + | -

<знак> ::= + | -

<фактор> ::= <константа без знака> | <переменная> | (<арифметическое выражение >)

Соседние файлы в предмете Теория языков программирования