Jump to content

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 был включен Commodore в 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 с использованием Lattice C , и была написана производственная версия
на языке ассемблера с использованием ассемблера Metacomco . Документация
был создан с использованием TxEd [3] редакторе и был установлен в TeX с помощью AmigaTeX .
Это 100% продукт Amiga. [4]

Характеристики

[ редактировать ]

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, который выполняет следующие действия:

  1. ARexx находит файлы изображений в их каталогах.
  2. ARexx загружает первое изображение
  3. ARexx загружает программу рисования
  4. Изображение загружается в программу рисования, которая вносит изменения в файл.
  5. Измененное изображение сохраняется в другом каталоге.
  6. ARexx повторяет процедуру для любого изображения в каталоге.
  7. Программа рисования закрывается и загружается программа анимации.
  8. Анимация построена
  9. Анимация сохраняется в своей директории.
  10. Анимационная программа закрыта.

Избегание повторяющихся процедур

[ редактировать ]

EqFiles.rexx [5] — это хорошо известный пример простого сценария ARexx, написанного для автоматизации повторяющихся и скучных процедур. Этот скрипт использует программу ALeXcompare. [6] для сравнения файлов, а затем находит все дубликаты в наборе файлов и возвращает выходные данные, выделяя любые результаты другим цветом.

Расширьте возможности AmigaOS

[ редактировать ]

Одной из основных особенностей ARexx является то, что она может расширить возможности AmigaOS, добавив некоторые процедуры, которых не хватало в ОС. Например, можно написать простую программу ARexx для вывода предупреждающего сообщения на экран монитора или воспроизведения звукового сигнала, если определенная программа Amiga останавливается, дает сбой или завершает запланированное задание.

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

/* Alarm.rexx */

ARG event

IF event = 0 THEN EXIT
IF event = 1 THEN SAY "Program has ended unexpectedly"
IF event = 2 THEN SAY "Program has finished its job"
IF event = 3 THEN SAY "Cannot find data in selected directory"

См. также

[ редактировать ]
  1. ^ Жигер, Эрик. «Командные хосты ARexx» .
  2. ^ Коулишоу, Майкл (1985). Язык REXX: практический подход к программированию (1-е изд.). Прентис Холл. ISBN  0-13-780651-5 .
  3. ^ "Amazing_Computing_1986-03_067.JPG" .
  4. ^ Справочное руководство для пользователей ARexx
  5. ^ Перуджи, Фульвио. «ЭкФайлс» .
  6. ^ Казик, Алекс. «ALeXcompare» .
Примечания
  • Каллауэй, Меррилл. (1992). Поваренная книга ARexx . Альбукерке, Нью-Мексико: Уайтстоун. ISBN  0-9632773-0-8 .
  • Замара, Крис; Салливан, Ник (1991). Использование Arexx на Amiga . Abacus Software Inc. ISBN  1-55755-114-6 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 716f7ba6925604f7beaf7183caca583b__1711977660
URL1:https://arc.ask3.ru/arc/aa/71/3b/716f7ba6925604f7beaf7183caca583b.html
Заголовок, (Title) документа по адресу, URL1:
ARexx - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)