Основы современных компьютерных технологий

         

Язык спецификации вычислительных задач


В ТК 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 в форме таблиц или (при геометрической интерпретации бинарных таблиц) графиков;


  • отношения вычислимости, задаются в функциональной форме в виде предложений вычислимости, которые могут безусловными и условными.



  • Содержание раздела