ARexx | |
---|---|
Jazyková třída | rozkazovací způsob |
Typ provedení | skriptovací jazyk , makrojazyk a interpretovaný programovací jazyk |
Objevil se v | 1987 |
Vývojář | William S. Howes a vývoj přání |
Přípona souboru | .rexx .rx |
Byl ovlivněn | REXX |
Licence | proprietární |
ARexx je dialekt programovacího jazyka REXX pro počítače Amiga , vyvinutý v roce 1987 programátorem Williamem S. Hawesem z Wishful Thinking Development, s řadou funkcí nad rámec standardních možností REXX pro podporu specifik AmigaOS . Programy napsané pro ARexx jsou obvykle ve formě souborů skriptů nebo maker .
Jakákoli [1] aplikace napsaná pro AmigaOS, stejně jako AROS , může spouštět skripty ARexx pro rozšíření svých schopností a meziprogramové komunikace. Za tímto účelem aplikace otevírají tzv. "ARexx port" a definovat sady příkazů a/nebo funkcí dostupných pro volání ze skriptů ARexx přes tento pojmenovaný port. Vlastní skript ARexx tedy může například volat funkce implementované jednou a druhou aplikací a odeslat výsledky jejich provádění interpretované ve skriptu jako argumenty příkazu do třetí a čtvrté aplikace. Tato schopnost vám umožňuje kombinovat funkce a data z různých aplikací. Skript ARexx může například načíst data z databáze , přidat je do tabulkového procesoru k provádění výpočtů a poté vložit tabulky a grafy založené na výsledcích do dokumentu otevřeného v textovém editoru .
První verze ARexx se objevily v roce 1987 a byly vyvinuty pro počítače Amiga Williamem S. Hawesem . Vývojář se řídil syntaxí interpretovaného jazyka REXX , kterou popsal Mike Kuleshov v Jazyk REXX: Praktický přístup k programování [2] . ARexx byl součástí AmigaOS 2.0 společností Commodore v roce 1990 a od té doby je přítomen ve všech následujících verzích AmigaOS. Tato pozdější verze ARexx se řídí oficiální syntaxí jazyka REXX, ačkoli byla napsána speciálně pro počítačový ekosystém Amiga . Počínaje AmigaOS 3.5 má dokonce Workbench svůj vlastní port ARexx, přes který může ARexx používat systémové funkce. Howes se později podílel na vývoji standardu ANSI pro REXX .
Původní interpret ARexx byl napsán v assembleru m68k a je používán v AmigaOS 4 a MorphOS v emulačním režimu, protože nebyl portován . Verze ARexx přepsaná v C pro AROS je neúplná a očekává se, že bude nahrazena jiným dialektem REXX , Regina . William Hawes se již nepodílí na vývoji aplikací pro počítače Amiga a žádná jiná firma spojená s platformou Amiga nefinancuje vývoj nových verzí ARexx. Navzdory tomu je stávající verze ARexx nadále používána v potomcích klasických AmigaOS - AmigaOS 4 , MorphOS a AROS .
Z manuálu ARexx (autor odpovídá na otázku o dopadu):
ARexx byl vyvinut na počítači Amiga 1000 s 512 KB paměti a dvěma diskovými jednotkami .
Prototypový interpret byl vyvinut v C pomocí Lattice C a
konečná verze byla napsána v assembleru pomocí sady nástrojů MetaComCo .
Dokumentace byla napsána v editoru TxEd a napsána TeXem v AmigaTeX .
Takže toto je 100% produkt Amiga . [3]
Každý program ARexx musí (z historických důvodů) obsahovat alespoň jeden řádek komentáře, a to musí být první řádek programu:
/* Toto je můj program */Přítomnost tohoto řádku říká interpretu RexxMast, že daný soubor je skript ARexx. Další řádky komentářů v souboru jsou interpretem ignorovány a programátor je může použít podle záměru. Ve skutečnosti samotný program ARexx vždy začíná pouze následujícím řádkem:
ŘEKNĚTE "Ahoj světe!"Po provedení tohoto příkazu se v okně konzoly zobrazí zpráva „Hello World!“.
ARexx přichází s rozsáhlou knihovnou předdefinovaných (systémových) funkcí. Tyto funkce jsou vždy dostupné a jsou optimálně sladěny s interními datovými strukturami přijatými AmigaOS , ale díky tomu se mohou značně lišit od oficiální sady příkazů REXX (například funkce ADDLIB ()).
Kromě předdefinovaných funkcí existuje mnoho funkcí z dalších knihoven napsaných programátory třetích stran pro rozšíření standardní sady. Tyto doplňkové knihovny lze připojit z programu v jazyce ARexx a poté se zpřístupní funkcionalita v nich implementovaná. Například:
Toto je však jen malá část existujících knihoven, kterými můžete ARexx rozšířit.