REXX

Rexx (REstructured eXtended eXecutor) – это интерпретируемый скриптовый язык программирования, который был разработан в IBM в конце 1970-х годов. Он изначально создавался для работы на операционной системе IBM  VM, но с течением времени стал широко использоваться на различных операционных системах, включая UNIX, Windows, OS/2, AIX и другие.

Rexx прост в изучении и использовании, имеет читаемый и интуитивно понятный синтаксис, что делает его популярным среди программистов и системных администраторов. Он широко используется для написания скриптов, автоматизации задач и обработки текстовых данных.

Rexx поддерживает множество операционных систем и является стандартным языком скриптов для некоторых из них. Он также поддерживает различные расширения и улучшения, что делает его мощным и гибким инструментом для разработки различных программ и скриптов.

Пик своего распространения REXX получил в середине 1990-х вместе с популярностью операционной системы OS/2. Это связано с тем, что интерпретатор REXX’а мог вызываться как из командного процессора, который в результате мог исполнять скрипты, состоящие из операторов командной строки (аналогично bash в GNU), так и из любого приложения.

Широкое распространение язык получил в операционной системе AmigaOS (включая последнее издание 3.2 в 2021 г.) в вариации ARexx. Язык позволяет интегрировать новые функции в приложения и осуществлять автоматизацию процессов и связь между различными программами. С учётом особенностей операционной системы AmigaOS язык получил множество сторонних расширений через динамические библиотеки, включая конструкторы графических интерфейсов, что в свою очередь привело к появлению многих популярных самостоятельных программ и пакетов расширения для различных редакторов. Программы могут вызываться из командной строки, из программ и самостоятельно – из иконок на рабочем столе.

В том случае, когда интерпретатор REXX вызывается из cmd.exe (или 4os2.exe), он исполняет командный файл. Если он вызывается из почтового редактора FleetStreet — он исполняет командный файл FleetStreet. Сам по себе REXX не привязан к конкретной части системы и может использоваться любой программой как «свой» язык, при этом каждая из использующих REXX программ может добавить к нему свои функции и операторы, которые будут доступны только при работе REXX’а в контексте этой программы. Например, электронная таблица mesa/2 добавляет в REXX команду, которая позволяет считывать и записывать содержимое ячеек таблиц и т. п.

С тех пор язык получил развитие далеко за пределами OS/2, но традиционно его свойствами остались удобный доступ к командам операционной системы, мощные операции со строками, упрощённая обработка ошибок и встроенный отладчик.

Изначально REXX не был объектно-ориентированным, хотя в настоящее время существуют и такие версии языка (например, Open Object REXX). Синтаксически язык слегка напоминает упрощённый ПЛ/1. Переменные в REXX не типизированы и не требуют декларации.

Позже были Object REXX с объектными расширениями, и NetREXX для JVM.

Как язык сценариев общего назначения, Rexx считается предшественником Tcl и Python.

 

Обсуждение закрыто.