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

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

Представление данных различных типов в оперативной памяти.

Тип

Размер в байтах

Диапазон значений

char

2

0 … 65535

int

4

-2 147 483 648..-2 147 483 647

float

4

3.4e-38..3.4e38

compl

8

(3.4e-38..3.4e38)+i(3.4e-38..3.4e38)

matr

Определяется в момент создания

Ячеек = compl, размер определяется при создани

  • Элементы массивов располагаются в памяти последовательно, матрица организуется как массив массивов.

  • Ормальные параметры представляют собой описание параметров, передаваемых в метод при вызове(тип и имя под которым они будут доступны в теле метода)

  • Данные совместимых типов (char, int, float) можно сравнивать, используя операции равенства (==) и проверки неравенства (!=). С помощью операций упорядочивания (>, >=, <, <=) можно сравнивать только целые, вещественные и символьные;

  • Операции взятия действительной, мнимой части и модуля применяются только к числовым данным (float, compl);

  • Операции взятия длины, высоты и операция транспонирования применяются только к матрицам;

  • Операция вызова атрибута и метода класса применяется только для переменных типа Класс (пользовательский тип данных);

  • Операции И и ИЛИ применяются к переменным логического типа;

  • Операции сложения, вычитания и умножения применяются ко всем типам, кроме логического;

  • Операция деления применяется ко всем числовым типам; причем деление целого числа осуществляется путем приведения целого к вещественному;

  • При выполнении операции присваивания результат приводится к типу переменной слева от знака операции присваивания, если это возможно (смотри другие правила);

  • Приведение от int к char производится взятием по модулю, от float к int и char округлением по стандартным правилам и взятием по модулю;

  • Если один из операндов имеет тип float, то другой операнд всегда преобразуется к типу float;

  • Действительная и мнимая части комплексного числа представлены вещественными числами;

  • Все неатомарные типы доступны только как ссылочные типы;

  • Ключевые слова нельзя использовать в качестве имён переменных, классов или методов;

  • Каждая переменная и каждое значение выражение имеют тип, и каждый тип строго определён;

  • Все присваивания, явные или через передачу параметров в вызовах методов, проверяются на совместимость типов;

  • Никакая переменная с тем же именем не может быть объявлена более одного раза в пределах одной области видимости;

Семантика операторов

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

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

if (<логическое выражение>) { <блок> } else { <блок операторов> }

1. Сначала вычисляется логическое выражение.

2. Если его значение – истина, то выполняется блок операторов, следующий за логическим выражением.

3. Если же значение логического выражения – ложь, то

1) при наличии части, начинающейся со служебного слова else выполняется блок операторов, следующий за этим служебным словом,

2) а при отсутствии указанной части условного оператора ничего не выполняется.

4. Происходит выход из условного оператора.

  1. Цикл с постусловием

<цикл с постусловием> ::= do { <блок операторов> } while ( <логическое выражение> ) ;

1. Выполняется блок операторов

2. Вычисляется логическое выражение.

3. Если значение логического выражения – истина, то выполняется переход к пункту 1.

4. Если значение логического выражения – ложь, то происходит выход из цикла.

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