WikiDer > ARexx - Википедия
ARexx это реализация Rexx язык для Amiga, написанная в 1987 году Уильямом С. Хоузом, с рядом специфичных для Amiga функций, выходящих за рамки стандартных возможностей REXX. Как и большинство реализаций REXX, ARexx интерпретируемый язык. Программы, написанные для ARexx, называются "скрипты", или же "макросы"; несколько программ предлагают возможность запускать сценарии ARexx в их основном интерфейсе в виде макросов.
ARexx может легко взаимодействовать со сторонним программным обеспечением, реализующим «порт ARexx». Любое приложение или скрипт Amiga[1] может определить набор команды и функции для ARexx, что делает возможности программного обеспечения доступными для сценариев, написанных на ARexx.
ARexx может направлять команды и функции нескольким приложениям из одного и того же сценария, тем самым предлагая возможность смешивать и сопоставлять функции из разных программ. Например, сценарий ARexx может извлекать данные из база данных, вставьте данные в электронная таблица для выполнения расчетов, затем вставьте таблицы и диаграммы на основе результатов в текстовый редактор документ.
История
ARexx был впервые создан в 1987 году, разработан для Amiga компанией Уильям С. Хоуз. Он основан на языке REXX, описанном Майк Коулишоу в книге Язык REXX: практический подход к программированию.[2] ARexx был включен Коммодор с AmigaOS 2.0 в 1990 году и был включен во все последующие выпуски AmigaOS. Эта более поздняя версия ARexx следует официальному языку REXX; Позже Хоуз участвовал в составлении проекта ANSI стандарт для REXX.
ARexx написан на 68000 Сборка и поэтому не может работать на полной скорости с новыми процессорами PPC, версия ARexx не была переписана для них и все еще отсутствует в MorphOS 3.0. Уильям Хоуз больше не участвует в разработке программ Amiga, и никакая другая фирма, связанная с Amiga, не финансирует новые версии ARexx. Несмотря на это, продолжает использоваться существующая версия ARexx, хотя она не распространяется с MorphOS.
Из руководства ARexx:
ARexx был разработан на компьютере Amiga 1000 с 512 КБ
память и два флоппи-дисковода. Языковой прототип был
разработан на C с использованием Решетка C, а производственная версия была написана
на языке ассемблера с использованием Metacomco ассемблер. Документация
был создан с использованием TxEd редактор и был установлен в TeX с помощью AmigaTeX.
Это 100% продукт Amiga.[3]
Характеристики
ARexx - это язык программирования, который может взаимодействовать с другими приложениями. Например, с помощью ARexx можно запросить данные из приложения базы данных и отправить их в приложение для работы с электронными таблицами. Для поддержки этой возможности приложение должно быть «ARexx-совместимым», имея возможность получать команды от ARexx и выполнять их. Программа базы данных может иметь команды для поиска, извлечения и сохранения данных - база данных MicroFiche Filer имеет обширный набор команд ARexx. Текстовый редактор может иметь команды ARexx, соответствующие его набору команд редактирования - редактор Textra, поставляемый с JForth, может использоваться для обеспечения интегрированной среды программирования. Программа мультимедийных презентаций AmigaVision также имеет встроенный порт ARexx и может управлять другими программами с помощью ARexx.
ARexx может увеличить мощность компьютера за счет объединения возможностей различных программ. Из-за популярности автономного пакета ARexx, Commodore включил его в Релиз 2 AmigaDOS.
Как и все реализации REXX, ARexx использует бессмысленный представление данных. В других языках программирования делались различия между целыми числами, числами с плавающей запятой, строками, символами, векторами, так далее. Напротив, системы REXX обрабатывают все данные как строки символов, что упрощает написание выражений и алгоритмов. Как это часто бывает в языках с динамической областью видимости, переменные не объявляются перед их использованием, они возникают при первом использовании.
Сценарии ARexx выигрывают от системы обработки ошибок, которая отслеживает выполнение и соответствующим образом реагирует. Программист может приостановить и возобновить выполнение программы по мере необходимости.
Набор команд ARexx прост, но помимо команд есть функции его справочной библиотеки Amiga (rexxsyslib.library). Также легко добавить другие библиотеки или отдельные функции. Скрипты ARexx также могут быть вызваны как функции из других скриптов ARexx. Любая программа Amiga, имеющая встроенный порт ARexx, может делиться своими функциями со сценариями ARexx.
Примеры решений ARexx для общих проблем
Реализация новых функций и возможностей через скрипты
Если конечный пользователь использует программу, которая создает анимацию путем объединения различных файлов растровых изображений, но в которой отсутствуют возможности обработки изображений, он может написать сценарий ARexx, который выполняет следующие действия:
- ARexx находит файлы изображений в их каталогах
- ARexx загружает первое изображение
- ARexx загружает программу рисования
- Изображение загружается в программу рисования, которая вносит изменения в файл.
- Измененное изображение сохраняется в другом каталоге
- ARexx повторяет процедуру на любом изображении в каталоге
- Программа рисования закрывается, а программа анимации загружается
- Анимация построена
- Анимация сохраняется в своем каталоге
- Анимационная программа закрыта
Избегайте повторяющихся процедур
EqFiles.rexx[4] - это хорошо известный пример простого скрипта ARexx, написанного для автоматизации повторяющихся и утомительных процедур. Этот скрипт использует программу ALeXcompare [5] для сравнения файлов, а затем находит все дубликаты в наборе файлов и возвращает результат, выделяя все результаты другим цветом.
Расширьте возможности AmigaOS
Одной из основных особенностей ARexx является тот факт, что он может расширить возможности AmigaOS, добавив некоторые процедуры, которых не хватало в ОС. Например, простая программа ARexx может быть написана для печати предупреждающего сообщения на экране монитора или воспроизведения звукового сигнала предупреждения, если определенная программа Amiga останавливается, дает сбой или завершила свое запланированное задание.
Следующий сценарий представляет собой минимальный сценарий ARexx, который отображает предупреждения в зависимости от происходящих событий.
/ * Alarm.rexx * /ARGмероприятиеЕСЛИмероприятие=0ТОГДАВЫХОДЕСЛИмероприятие=1ТОГДАСКАЗАТЬ«Программа неожиданно завершилась»ЕСЛИмероприятие=2ТОГДАСКАЗАТЬ«Программа завершила свою работу»ЕСЛИмероприятие=3ТОГДАСКАЗАТЬ«Не удается найти данные в выбранном каталоге»
Смотрите также
Рекомендации
- ^ Жигер, Эрик. "Хосты ARexx Command".
- ^ Коулишоу, Майкл (1985). Язык REXX: практический подход к программированию (1-е изд.). Прентис Холл. ISBN 0-13-780651-5.
- ^ Справочное руководство для пользователей ARexx
- ^ Перуджи, Фульвио. "EqFiles".
- ^ Казик, Алексей. «ALeXcompare».
- Примечания
- Каллавей, Меррилл. (1992). Поваренная книга ARexx. Альбукерке, Нью-Мексико: Уайтстоун. ISBN 0-9632773-0-8.
- Замара, Крис; Салливан, Ник (1991). Использование Arexx на Amiga. Abacus Software Inc. ISBN 1-55755-114-6.