Язык спецификации вычислительных задач
В ТК Solver вычислительная модель представляет собой совокупность объектов и отношений между ними. Каждый объект в модели принадлежит к некоторому классу (типу данного) и в описании модели в ТК Solver объект соотносится с именем переменной. Тип переменной определяется множеством значений, которые может принимать переменная, и множеством операций над этими значениями. ВМ в ТК Solver описывается в соответствии с правилами синтаксиса и семантики конструкций языка описания вычислительных моделей и задач, в системе он не имеет специального названия, будем его называть Язык Спецификации Вычислительных Задач (ЯСВЗ).
В ВМ объект каждого типа имеет уникальное имя. В ТК Solver имя может иметь в длину до 200 символов и включать буквы A-Z и a-z, цифры 0-9 и специальные символы @, #, $ , %, и _. Имя не может начинаться с цифры, содержать внутри себя пробелы, строчные и прописные буквы в имени различаются, т.е. например, имена: Abс и abc обозначают разные объекты. Для системных имен это ограничение не действует (SIN и Sin обозначают одно и то же).
В ЯСВЗ допускается использовать переменные следующих типов:
числовые переменные (целые, вещественные и комплексные);
символьные переменные;
булевы переменные.
339
Явные описатели типов в языке отсутствуют, тип переменной определяется либо видом принимаемых переменной значений при их инициализации, либо местом использования переменной, либо указанием определенных атрибутов в полях панелей объявления переменных.
В ЯСВЗ можно использовать и структурированные типы данных. Если в модели задачи требуется проводить вычисления многократно с различными исходными данными, тогда с переменной в ТК Solver можно связать список - последовательность однотипных значений, называемых элементами списка. В свою очередь, списки можно объединять (связывать) в более сложные структуры - таблицы, соответствие между элементами двух числовых списков можно представлять в форме геометрической интерпретации в виде графиков, столбиковых и круговых диаграмм.
Числа представляются в ТК Solver в стандартной или экспоненциальной форме, могут иметь до 16 значащих цифр в диапазоне от 1Е-307 до 1Е308 ( абсолютное значение). Примеры записи чисел: 1.09092, 18437560000000000000000, 6.672Е-11. Для записи комплексных чисел используется специальная конструкция, называемая
парой.
Символьные значения заключаются в двойные кавычки ", при этом имена переменных, хранящие символьные значения, должны начинаться с апострофа \
Примеры символьных переменных и констант: 'х, 'Bank, 'a_row_1, '_line, 'aj%d4, "lined","a*j/d[4]","K".
Символьные значения, используемые для обращения к спискам или выступающие в качестве аргументов функций для указания объектов ТК Solver (переменные, списки и т.д.), записываются или с апострофом в качестве префикса имени, или заключаются в двойные кавычки. Примеры правильного описания символьных значений: 'Xupper[i], given('ab,'cd,1,0), "Xupper"[i], given("ab","cd",1,0). Примеры неверного описания: "X upper"[i], given("ab,cd",1,0)
Простейшими синтаксическими единицами в ЯСВЗ являются
выражения. В ТК Solver применяются следующие выражения: арифметические, логические и символьные выражения.
Арифметические выражения строятся из знаков арифметических операций, имен переменных, обращений к функциям и спискам, числовых констант, круглых скобок. К арифметическим относятся следующие операции: сложение (+), вычитание (-), умножение (*), деление (/) и возведение в степень (^). Примеры арифметических выражений:
a + b/(c*d)
(b>3) + а
(а+b)^ln(х)
exp(cos(x)+sin(y))
-SIN(X)
Логические выражения строятся с использованием знаков операций сравнения, имен переменных, констант, вызовов булевых функций и принимают значения 1 (ИСТИНА) или О (ЛОЖЬ). К операциям сравнения относятся операции:
сравнение на равенство ( = );
сравнение на неравенство (, =, =>, <>, >
В ТК Solver реализованы следующие булевы функции:
NOT(x) - логическое НЕ ;
EQV(x,y) - эквивалентность;
340
AND () - логическое И;
IMPLY(x,y) - логическая импликация;
ОР() - логическое ИЛИ.
Здесь х и у - логические выражения, а - последовательность логических выражений, разделенных запятыми. К
символьным выражениям относятся:
переменные символьного типа;
выражения, в которых используются символьные переменные.
Объекты (переменные) в ТК Solver связываются между собой отношениями. В моделях допускается применение следующих видов отношений:
реляционные отношения, задаются путем явного перечисления элементов отношений и представляются в ТК Solver в форме таблиц или (при геометрической интерпретации бинарных таблиц) графиков;
отношения вычислимости, задаются в функциональной форме в виде предложений вычислимости, которые могут безусловными и условными.
Содержание раздела