Выражения для структурированных типов и выражения- указатели
Множественный тип — единственный структурированный тип стандартного Паскаля, для которого можно строить выражения обычным способом, используя операции. Выражения с массивами и записями не предполагают использования каких-либо операций над ними как целостными объектами, а для типов файла и текстового файла выражения вообще невозможны.
----------------------------------------- PASCAL-XSC ---
Принципы работы с операциями в PASCAL-XSC (см. разд. 2.7.6) позволяют объявлять операции для любых предопределенных и определенных пользователем типов. Таким образом, существует возможность составлять выражения любого типа.
Синтаксические правила построения выражений в PASCAL-XSC идентичны правилам, приведенным для стандартных выражений в разд. 2.4.1 на стр. 61.
PASCAL-XSC предусматривает возможность построения выражений для арифметических типов complex, interval, cinterval, rvector, cvector, ivector, civector, rmatrix, cmatrix, imatrix и cimatrix. Кроме того, существует большое количество операций и функций для этих типов.
----------------------------------------- PASCAL-XSC ---
Их подробное описание содержится в гл. 3 (Арифметические модули) в разделах, описывающих соответственно модули C_ARI, I_ARI, CI_ARI, MV_ARI, MVC.ARI, MVI.ARI и MVCI.ARI.
Выражения-массивы
Выражение-массив не допускает использования операций. Оно может состоять только из переменных.
------------------------------------------ PASCAL-XSC ----
В PASCAL-XSC выражение-массив может строиться из определенных пользователем операций, переменных, вызовов функций, в том числе содержащих квалификацию (аналог — приведение типов в языке Си).
Квалификация имеет форму
| ИдентификаторТипаМассива (ВыражениеМассив)
где идентификатор типа массива служит именем функции преобразования типа. Если выражение-массив принадлежит к типу, структурно эквивалентному указанному идентификатором, оно преобразуется к этому последнему.
Предопределенных операций для операндов-массивов не предусмотрено.
Пример 2.4.8.
type vector = array [1..8] of real;
polynomial = array [0..7] of real;
var v : vector;
p : polynomial;
p := polynomial (v);
v := vector (p);
Функция преобразования типа, или квалификация широко используется для работы с динамическими массивами.
Выражение — динамический массив имеет ту же синтаксическую структуру, что и выражение-массив, но в нем можно использовать операнды — динамические массивы.