ARexx: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
AGGreSSor (обсуждение | вклад) |
Tucvbif (обсуждение | вклад) |
||
(не показано 8 промежуточных версий 6 участников) | |||
Строка 1: | Строка 1: | ||
{{грубый перевод}} |
|||
{{нет ссылок|дата=2022-06-09}} |
|||
{{Карточка языка программирования |
{{Карточка языка программирования |
||
| name = ARexx |
| name = ARexx |
||
| logo = |
| logo = |
||
| paradigm = [[императивное программирование|императивный]] |
| paradigm = [[императивное программирование|императивный]] |
||
| class = [[сценарный язык]], [[Макрокоманда|макроязык]] и [[ |
| class = [[сценарный язык]], [[Макрокоманда|макроязык]] и [[интерпретируемый язык программирования]] |
||
| year = [[1987]] |
| year = [[1987]] |
||
| developer = [[Уильям С. Хоуз]] и [[Wishful Thinking Development]] |
| developer = [[Уильям С. Хоуз]] и [[Wishful Thinking Development]] |
||
Строка 19: | Строка 21: | ||
| website = |
| website = |
||
}} |
}} |
||
⚫ | '''ARexx''' — диалектом язык программирования [[REXX]] для компьютеров [[Amiga]], разработан в 1987 году программистом Уильямом С. Хоузом из компании Wishful Thinking Development, с целом рядом функций выходящих за рамки стандартных возможностей REXX для поддержки специфики [[AmigaOS]]. Программы, написанные для ARexx обычно представлены в виде файлов [[Сценарный язык|сценариев]] или [[макрокоманда|макросов]]. |
||
⚫ | Любое<ref>{{cite web|title=ARexx Command Hosts|url=https://groups.google.com/g/comp.lang.rexx/c/XdpYattU0Rs?pli=1|first=Eric|last=Giguere}}</ref> приложение написанное для AmigaOS, а также [[AROS]], может выполнять сценарии ARexx для расширения своих возможностей и межпрограммного обмена данными. Для этой цели приложения открывают т. н. «порт ARexx» и определяют наборы команд и/или функций доступных для вызова из сценариев ARexx через этот именованный порт. Таким образом, пользовательский сценарий ARexx может, например, вызывать функции реализуемые одним и другим приложениями, а интерпретируемые в сценарии результаты их выполнения отправить аргументами команд к третьему и четвёртому приложениям. Эта возможность позволяет смешивать и сопоставлять функции и данные из разных приложений. Например, сценарий ARexx может извлекать данные из [[база данных|базы данных]], добавлять их в [[электронная таблица|электронную таблицу]] для выполнения вычислений, а затем вставлять таблицы и диаграммы на основе полученных результатов в документ открытый в [[текстовый процессор|текстовом процессоре]]. |
||
⚫ | '''ARexx''' |
||
⚫ | Любое<ref>{{cite web|title=ARexx Command Hosts|url=https://groups.google.com/g/comp.lang.rexx/c/XdpYattU0Rs?pli=1|first=Eric|last=Giguere}}</ref> приложение написанное для |
||
== История == |
== История == |
||
Первые версии ARexx появились в |
Первые версии ARexx появились в 1987 году и были разработаны для компьютеров [[Amiga]] [[Хоуз, Уильям|Уильямом С. Хоузом]]. Разработчик руководствовался синтаксисом [[интерпретатор|интерпретируемого языка]] [[REXX]] описанным {{iw|Кулешов, Майк|Майком Кулешовым|en|Mike Cowlishaw}} в книге «The REXX Language: A Practical Approach to Programming»<ref>{{cite book|title=The REXX Language: A Practical Approach to Programming|url=https://archive.org/details/rexxlanguageprac0000cowl|first=Michael|last=Cowlishaw|publisher=Prentice Hall|year=1985|edition=1st|isbn=0-13-780651-5}}</ref>. ARexx был включён в поставку [[AmigaOS]] 2.0 корпорацией [[Commodore]] в 1990 году и с тех пор присутствовал во всех последующих версиях AmigaOS. Эта более поздняя версия ARexx следует официальному синтаксису языка REXX, хотя и была написана специально для экосистемы компьютеров [[Amiga]]. Начиная с AmigaOS 3.5, даже рабочий стол [[AmigaOS#Workbench|Workbench]] получил собственный порт ARexx, через который ARexx может использовать системные функции. Позже Хоуз принял участие в разработке стандарта [[Американский национальный институт стандартов|ANSI]] для [[REXX]]. |
||
Оригинальный интерпретатор ARexx был написан на [[ассемблер]]е [[Motorola 680x0|m68k]] и используется в [[AmigaOS 4]] и [[MorphOS]] в режиме эмуляции |
Оригинальный интерпретатор ARexx был написан на [[ассемблер]]е [[Motorola 680x0|m68k]] и используется в [[AmigaOS 4]] и [[MorphOS]] в режиме эмуляции так как не был [[портирование ПО|портирован]]. Версия ARexx переписанного на языке [[Си (язык программирования)|Си]] для [[AROS]] является неполной и предполагается к замене другим диалектом [[REXX]] — [[Regina (язык программирования)|Regina]]. Уильям Хоуз больше не участвует в разработке приложений для компьютеров [[Amiga]], и никакая другая фирма, связанная с платформой Amiga, не финансирует разработку новых версий ARexx. Несмотря на это, существующая версия ARexx продолжает использоваться в потомках классической [[AmigaOS]] — [[AmigaOS 4]], [[MorphOS]] и [[AROS]]. |
||
Из руководства ARexx (автор отвечает на вопрос о влиянии):<blockquote> |
|||
⚫ | |||
ARexx был разработан ка компьютере [[Amiga 1000]] имеющем 512 КБ памяти и два [[дисковод]]а.<br> |
|||
Прототип интерпретатора был разработан на [[Си (язык программирования)|Си]] с использованием [[Lattice C]],<br> |
|||
а окончательная версия написана на [[ассемблер]]е с использованием инструментария [[MetaComCo]].<br> |
|||
Документация была написана в редакторе TxEd и свёрстана [[TeX]] в {{iw|AmigaTeX}}.<br> |
|||
Так что это [[Amiga]]-продукт на 100 %.<ref>[https://archive.org/stream/ARexx_Users_Reference_Manual_1.0_1987_Hawes_William_S./ARexx_Users_Reference_Manual_1.0_1987_Hawes_William_S._djvu.txt ARexx Users Reference Manual]</ref> |
|||
</blockquote> |
|||
⚫ | |||
Каждая программа на ARexx |
Каждая программа на ARexx должна состоять (по историческим причинам) как минимум из одной строки комментария, причём это должна быть первая строка программы: |
||
/* Это моя программа */ |
/* Это моя программа */ |
||
Строка 43: | Строка 51: | ||
== Библиотеки ARexx == |
== Библиотеки ARexx == |
||
ARexx поставляется с обширной библиотекой предопределённых (системных) функций. Эти функции всегда доступны и оптимально согласованы с внутренними структурами данных принятыми в [[AmigaOS]], но из-за этого они могут сильно отличаться от официального набора команд [[REXX]] (например, функция ADDLIB ()). |
ARexx поставляется с обширной библиотекой предопределённых (системных) функций. Эти функции всегда доступны и оптимально согласованы с внутренними структурами данных принятыми в [[AmigaOS]], но из-за этого они могут сильно отличаться от официального набора команд [[REXX]] (например, функция ADDLIB ()). |
||
Помимо предопределённых функций существует множество функций из дополнительных библиотек написанных сторонними программистами для расширения стандартного набора. Эти дополнительные библиотеки могут быть подключены из программы на языке ARexx и после этого становится доступным реализованный в них функционал. Например: |
Помимо предопределённых функций существует множество функций из дополнительных библиотек написанных сторонними программистами для расширения стандартного набора. Эти дополнительные библиотеки могут быть подключены из программы на языке ARexx и после этого становится доступным реализованный в них функционал. Например: |
||
* rexxreqtools.library |
* rexxreqtools.library — Интеграция возможностей библиотеки reqtools.library в ARexx. Позволяет программе на ARexx выдавать пользователю окна запросов для выбора файлов, директорий, шрифтов и цветов палитры. |
||
* tritonrexx.library |
* tritonrexx.library — Позволяет создавать графические интерфейсы на базе GUI Triton. |
||
* rexxtricks.library |
* rexxtricks.library — Предлагает различные функции-«трюки» для использования функций DOS, прямого доступа к SCSI, экрану и пиктограммам приложений из программ на языке ARexx. |
||
Однако это лишь малая часть существующих библиотек, с помощью которых можно расширить ARexx. |
Однако это лишь малая часть существующих библиотек, с помощью которых можно расширить ARexx. |
||
== См. также == |
== См. также == |
||
* [[REXX]] |
|||
* [[AmigaOS#ARexx|Диалект ARexx в AmigaOS]] |
* [[AmigaOS#ARexx|Диалект ARexx в AmigaOS]] |
||
== Примечания == |
|||
{{примечания}} |
|||
== Ссылки == |
== Ссылки == |
||
⚫ | |||
{{reflist}} |
|||
⚫ | |||
⚫ | |||
== Внешние ссылки == |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
[[Категория:Языки программирования по алфавиту]] |
[[Категория:Языки программирования по алфавиту]] |
Текущая версия от 16:54, 9 июня 2022
Этот перевод статьи с другого языка требует улучшения (см. Рекомендации по переводу). |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
ARexx | |
---|---|
Класс языка | императивный |
Тип исполнения | сценарный язык, макроязык и интерпретируемый язык программирования |
Появился в | 1987 |
Разработчик | Уильям С. Хоуз и Wishful Thinking Development |
Расширение файлов |
.rexx .rx |
Испытал влияние | REXX |
Лицензия | проприетарная |
ARexx — диалектом язык программирования REXX для компьютеров Amiga, разработан в 1987 году программистом Уильямом С. Хоузом из компании Wishful Thinking Development, с целом рядом функций выходящих за рамки стандартных возможностей REXX для поддержки специфики AmigaOS. Программы, написанные для ARexx обычно представлены в виде файлов сценариев или макросов.
Любое[1] приложение написанное для AmigaOS, а также AROS, может выполнять сценарии ARexx для расширения своих возможностей и межпрограммного обмена данными. Для этой цели приложения открывают т. н. «порт ARexx» и определяют наборы команд и/или функций доступных для вызова из сценариев ARexx через этот именованный порт. Таким образом, пользовательский сценарий ARexx может, например, вызывать функции реализуемые одним и другим приложениями, а интерпретируемые в сценарии результаты их выполнения отправить аргументами команд к третьему и четвёртому приложениям. Эта возможность позволяет смешивать и сопоставлять функции и данные из разных приложений. Например, сценарий ARexx может извлекать данные из базы данных, добавлять их в электронную таблицу для выполнения вычислений, а затем вставлять таблицы и диаграммы на основе полученных результатов в документ открытый в текстовом процессоре.
История
[править | править код]Первые версии ARexx появились в 1987 году и были разработаны для компьютеров Amiga Уильямом С. Хоузом. Разработчик руководствовался синтаксисом интерпретируемого языка REXX описанным Майком Кулешовым[англ.] в книге «The REXX Language: A Practical Approach to Programming»[2]. 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 %.[3]
Структура программы
[править | править код]Каждая программа на 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.
См. также
[править | править код]Примечания
[править | править код]- ↑ Giguere, Eric ARexx Command Hosts .
- ↑ Cowlishaw, Michael. The REXX Language: A Practical Approach to Programming. — 1st. — Prentice Hall, 1985. — ISBN 0-13-780651-5.
- ↑ ARexx Users Reference Manual