* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
1068
Программирование в системах компьютерной алгебры
полнить средствами Windows. В связи с этим в новых версиях Maple эта команда может не поддерживаться. В заключение отметим, что Maple имеет средства для вызова внешних отком пилированных процедур, написанных на языке C.
14.3. Язык программирования систем Mathematica
14.3.1. Общая характеристика языка программирования Mathematica
Язык программирования системы Mathematica, так же как и Maple язык, являет ся типичным интерпретатором и не предназначен для создания исполняемых файлов. Впрочем, для отдельных выражений этот язык может осуществлять ком пиляцию с помощью функции Compile, что увеличивает скорость вычислений. Внутреннее представление всех вычислений в языке программирования сис темы Mathematica базируется на применении полных форм выражений, пред ставленных функциями. И вообще, функциям в системе Mathematica принадле жит решающая роль в организации вычислений любого вида. Таким образом, Mathematica фактически изначально реализует функциональный метод програм мирования – один из самых эффективных и надежных. А обилие логических опе раторов и функций позволяет полноценно реализовать и логический метод про граммирования. Множество операций преобразования выражений и функций позволяет осуществлять программирование на основе правил преобразования. Возможно также создание полностью самостоятельных блоков – поименован ных процедур и функций с локальными переменными, реализующее структурное и модульное программирование. Столь же естественно язык системы реализует ставшее модным в последнее время объектно ориентированное программирова ние, основанное на следующих свойствах: • инкапсуляция – объединение в одном объекте как данных, так и методов их обработки; • наследование – означает, что каждый объект, производный от других объек тов, наследует их свойства; • полиформизм – свойство, позволяющее передать ряду объектов сообщение, которое будет обрабатываться каждым объектом в соответствии с его инди видуальными особенностями. Приведенный ниже пример объектно ориентированного программирования дает три определения, ассоциированные с объектом h:
h/:h[x_]+h[y_]:=hplus[x,y] h/:p[h[x_],x]:=hp[x] h/:f_[h[x_]]:=fh[f,x]