Показать меню

ARexx

ARexx — диалектом язык программирования REXX для компьютеров Amiga, разработан в 1987 году программистом Уильямом С. Хоузом из компании Wishful Thinking Development, с целом рядом функций выходящих за рамки стандартных возможностей REXX для поддержки специфики AmigaOS. Программы, написанные для ARexx обычно представлены в виде файлов сценариев или макросов.

Любое приложение написанное для AmigaOS, а также AROS, может выполнять сценарии ARexx для расширения своих возможностей и межпрограммного обмена данными. Для этой цели приложения открывают т. н. «порт ARexx» и определяют наборы команд и/или функций доступных для вызова из сценариев ARexx через этот именованный порт. Таким образом, пользовательский сценарий ARexx может, например, вызывать функции реализуемые одним и другим приложениями, а интерпретируемые в сценарии результаты их выполнения отправить аргументами команд к третьему и четвёртому приложениям. Эта возможность позволяет смешивать и сопоставлять функции и данные из разных приложений. Например, сценарий ARexx может извлекать данные из базы данных, добавлять их в электронную таблицу для выполнения вычислений, а затем вставлять таблицы и диаграммы на основе полученных результатов в документ открытый в текстовом процессоре.

История

Первые версии ARexx появились в 1987 году и были разработаны для компьютеров Amiga Уильямом С. Хоузом. Разработчик руководствовался синтаксисом интерпретируемого языка REXX описанным Майком Кулешовым (англ.) в книге «The REXX Language: A Practical Approach to Programming». ARexx был включён в поставку AmigaOS 2.0 корпорацией Commodore в 1990 году и с тех пор присутствовал во всех последующих версиях AmigaOS. Эта более поздняя версия ARexx следует официальному синтаксису языка REXX, хотя и была написана специально для экосистемы компьютеров Amiga. Начиная с AmigaOS 3.5, даже рабочий стол Workbench получил собственный порт ARexx, через который ARexx может использовать системные функции. Позже Хоуз принял участие в разработке стандарта ANSI для REXX.

Оригинальный интерпретатор ARexx был написан на ассемблере m68k и используется в AmigaOS 4 и MorphOS в режиме эмуляции так как не был портирован. Версия ARexx переписанного на языке Си для AROS является неполной и предполагается к замене другим диалектом REXX — Regina. Уильям Хоуз больше не участвует в разработке приложений для компьютеров Amiga, и никакая другая фирма, связанная с платформой Amiga, не финансирует разработку новых версий ARexx. Несмотря на это, существующая версия ARexx продолжает использоваться в потомках классической AmigaOS — AmigaOS 4, MorphOS и AROS.

Из руководства ARexx (автор отвечает на вопрос о влиянии):

ARexx был разработан ка компьютере Amiga 1000 имеющем 512 КБ памяти и два дисковода.
Прототип интерпретатора был разработан на Си с использованием Lattice C,
а окончательная версия написана на ассемблере с использованием инструментария MetaComCo.
Документация была написана в редакторе TxEd и свёрстана TeX в AmigaTeX.
Так что это Amiga-продукт на 100 %.

Структура программы

Каждая программа на ARexx должна состоять (по историческим причинам) как минимум из одной строки комментария, причём это должна быть первая строка программы:

/* Это моя программа */

Наличие этой строки сообщает интерпретатору RexxMast, что данный файл является сценарием для ARexx. Дополнительные строки комментариев в файле игнорируются интерпретатором и могут использоваться программистом по назначению. Фактически, сама программа на языке ARexx всегда начинается только со следующей строки:

SAY "Привет, Мир!"

При исполнении этой команды в консольное окно будет выдано сообщение «Привет, Мир!».

Библиотеки ARexx

ARexx поставляется с обширной библиотекой предопределённых (системных) функций. Эти функции всегда доступны и оптимально согласованы с внутренними структурами данных принятыми в AmigaOS, но из-за этого они могут сильно отличаться от официального набора команд REXX (например, функция ADDLIB ()).

Помимо предопределённых функций существует множество функций из дополнительных библиотек написанных сторонними программистами для расширения стандартного набора. Эти дополнительные библиотеки могут быть подключены из программы на языке ARexx и после этого становится доступным реализованный в них функционал. Например:

  • rexxreqtools.library — Интеграция возможностей библиотеки reqtools.library в ARexx. Позволяет программе на ARexx выдавать пользователю окна запросов для выбора файлов, директорий, шрифтов и цветов палитры.
  • tritonrexx.library — Позволяет создавать графические интерфейсы на базе GUI Triton.
  • rexxtricks.library — Предлагает различные функции-«трюки» для использования функций DOS, прямого доступа к SCSI, экрану и пиктограммам приложений из программ на языке ARexx.

Однако это лишь малая часть существующих библиотек, с помощью которых можно расширить ARexx.

Еще по этой теме:
Пространство непрерывных функций
Пространство непрерывных функций
Пространство непрерывных функций — линейное нормированное пространство, элементами которого являются непрерывные на отрезке [ a , b ]
Макропроцессор
Макропроцессор
Макропроцессор (также макрогенератор) — программа, выполняющая преобразование входного текста в выходной при помощи задаваемых ей правил замены последовательностей символов, называемых правилами
stdio.h
stdio.h
stdio.h (от англ. standard input/output header — стандартный заголовочный файл ввода-вывода) заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления
Amiga
Amiga
Amiga — семейство домашних персональных компьютеров и операционных систем к ним, разработанные Amiga Corporation. История Разработка компьютера началась в 1982 году, в городе Лос-Гатос
SMS-шлюз
SMS-шлюз
SMS-шлюз — интерфейс, который позволяет отправлять и получать SMS-сообщения без использования мобильного телефона. При этом SMS-сообщения преобразуются в сообщения электронной почты или HTTP-запросы
Worker (файловый менеджер)
Worker (файловый менеджер)
Worker — файловый менеджер для Linux и других UNIX-подобных операционных систем. Написан на С++ с использованием только стандартной X11-библиотеки xlib и библиотеки avfs для работы с виртуальной
Комментарии:
Добавить комментарий
Ваше Имя:
Ваш E-Mail: