Сайт Информационных Технологий

4.2. Обзор языка М

В своей основе М принципиально не отличается от других процедурных языков программирования, таких как Фортран, Кобол и Си, между тем и в общей конструкции, и в деталях наблюдаются существенные различия.

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

Идея отсутствия деклараций в М естественным образом распространяется и на массивы. Каждая переменная может представлять собой массив с переменным числом измерений, размер которого ограничен только имеющейся памятью, причем память занимают только те переменные, которые были определены в программе. При таком способе распределения памяти оптимизируется использование оперативного запоминающего устройства. Далее, в М разрешены любые строки символов в качестве индексов массива.

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

Доступ к переменным, как к локальным, так и к глобальным, обслуживается мощными функциями, обеспечивающими М функциональную полноту системы управления базой данных ( СУБД ).

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

Далее, в М определены операторы: арифметические, строковый, логические, а также операторы сравнения. Аргументы операторов автоматически интерпретируются как числа, строки или логические значения в зависимости от контекста.

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

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

Встроены в язык не только структуры хранения данных, но и операции ввода-вывода. Столь высокая степень стандартизации благоприятствует написанию полностью мобильных программ, ориентированных на диалоговый режим работы.

Перечисленные возможности М, дополненные возможностями объектного языка в Cache ObjectScript, обеспечивают прекрасные результаты при работе с текстами на естественном языке, что немаловажно как для отдельной информационной системы, так и информационной системы в составе ИСУ.


Site of Information Technologies
Designed by  inftech@webservis.ru.