Базовые элементы

Приоритетность операторов Maple-языка в порядке убывания определяется как:

|| :- :: % & ! {^, @@} { ., *, &*, /, @, intersect} {+, -, union, minus} mod subset
.. {<, <=, >, >=, =, <>, in} $ not and or xor implies -> , assuming :=

В качестве строк Maple-язык рассматривает любые последовательности символов, кодируемые в верхних двойных кавычках ("), например: "Академия Ноосферы". При этом, составлять строку могут любые допустимые синтаксисом языка символы. При необходимости поместить в строку верхнюю двойную кавычку ее следует дублировать либо вводить комбинацией вида (\"). Это же относится и к ряду других символов, вводимых посредством обратного слэша (\), как это иллюстрирует следующий весьма простой фрагмент:

> `Строка`:= "Международная Академия Ноосферы";
Строка:= "Международная Академия Ноосферы"
> `Строка 1`:= "Международная\nАкадемия\nНоосферы";
Строка 1 := "Международная
Академия
Ноосферы"
> `Строка 2`:= "Internatio\nal Academy of Noosphere";
Строка 2 := "Internatio
nal Academy of Noosphere"
> `Строка 3`:= "Российская Эколо"гическая Академия";
Error, missing operator or `;`

Однако, как иллюстрируют примеры фрагмента, если наличие в строке одинарной двойной кавычки (помимо ограничивающих) вызывает синтаксическую ошибку, то для случая обратного слэша в общем случае могут возникать семантические ошибки. Максимальная длина строки зависит от используемой платформы: для 32-битных ЭВМ - 524271 символов, а для 64-битных - 34359738335 символов. О средствах работы со строчными структурами детальнее речь будет идти несколько ниже.

В качестве символов Maple-язык рассматривает любые последовательности символов, в общем кодируемые в верхних обратных кавычках (`), например: `Академия Ноосферы 64`. При этом, составлять символ могут любые допустимые синтаксисом языка символы. При необходимости поместить в символ верхнюю обратную кавычку ее следует дублировать либо вводить комбинацией вида (\`). Это же относится и к ряду других символов, вводимых посредством обратного слэша (\), как это иллюстрирует фрагмент:

> `Строка`:= `Международная Академия Ноосферы`;
Строка:= Международная Академия Ноосферы
> `Строка 1`:= `Международная\nАкадемия\nНоосферы`;
Строка 1 := Международная
Академия
Ноосферы
> `Строка 2`:= `Internatio\nal Academy of Noosphere`;
Строка 2 := Internatio
nal Academy of Noosphere
> `Строка 3`:= `Российская Эколо`гическая Академия`;
Error, missing operator or `;`

Сразу же следует отметить одно принципиальное отличие строк от символов Maple-языка. Если символам можно присваивать значения, то строки такой процедуры не допускают, вызывая ошибочные ситуации, например:

> "Данные":= 2006;
Error, invalid left hand side of assignment
> Данные:= 2006: `Результат`:=350: Данные, Результат;
2006, 350

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

В качестве натурального целого язык рассматривает любую последовательность из одной или более десятичных цифр, при этом все ведущие нули игнорируются, т.е. 005742 рассматривается как 5742. Длина таких чисел зависит от используемой пакетом платформы и на большинстве 32-битных ЭВМ составляет порядка 524280 десятичных цифр, тогда как на 64-битных она достигает уже 38654705646 цифры. В качестве целого рассматривается натуральное целое со знаком или без. Для работы с арифметикой целых чисел язык располагает достаточно развитыми средствами, рассматриваемыми ниже.

Представим использование Maple-языком знаков пунктуации:
: и ; - служат для идентификации конца предложений Maple-языка;
( ) - для группировки термов в выражениях, а также формальных или фактических аргументов при определениях или вызовах функций/процедур;
<> - для определенной пользователем группировки выражений;
{} - для определения структур данных типа множество;
[] - для определения структур данных типа список, а также для образования индексированных переменных и оператора выбора элемента из индексированных выражений;
` ' , - соответственно для определения идентификаторов, невычисляемых выражений и структур типа последовательность; при этом, следует четко различать при кодировании конструкций Maple-языка символы верхней обратной кавычки и апострофа, в скобках даны их десятичные коды по внутренней кодовой таблице;
" - верхние двойные кавычки служат для определения строчных структур данных.

Для разделения лексемов синтаксис языка допускает использование как знаков пунктуации, так и пробелов, понимаемых в расширенном смысле, т.е. в качестве пробелов допускается использование символов: собственно пробела (space), табуляции (tab), перевода строки и возврата каретки. При этом, сами символы пробела не могут входить в состав лексемов, являясь их разделителями. Между тем, space-символ может входить в состав строк и символов, образованных двойными или одинарными верхними кавычками. Использование же его в составе лексема, как правило, инициирует ошибочную ситуацию, например:

> AGN: = sqrt(x^2 + y^2 + z^2 + 19.47);
Error, `=` unexpected

НАЗАД ДАЛЕЕ