<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=REXX</id>
	<title>REXX - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=REXX"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=REXX&amp;action=history"/>
	<updated>2026-07-17T00:00:42Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=REXX&amp;diff=16720&amp;oldid=prev</id>
		<title>imported&gt;Lê Lợi (bot): Автодевикификация Шаблон:Языки программирования.</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=REXX&amp;diff=16720&amp;oldid=prev"/>
		<updated>2025-12-03T11:41:34Z</updated>

		<summary type="html">&lt;p&gt;Автодевикификация &lt;a href=&quot;/mediawiki/index.php?title=%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD:%D0%AF%D0%B7%D1%8B%D0%BA%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Шаблон:Языки программирования (страница не существует)&quot;&gt;Шаблон:Языки программирования&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;REXX&amp;#039;&amp;#039;&amp;#039; или &amp;#039;&amp;#039;&amp;#039;Rexx&amp;#039;&amp;#039;&amp;#039; (REstructured eXtended eXecutor, произносится «рекс») — [[интерпретируемый язык программирования]], разработанный фирмой [[IBM]]. Существуют как коммерческие, так и свободно распространяемые реализации данного языка.&lt;br /&gt;
&lt;br /&gt;
Пик своего распространения REXX получил в середине 1990-х вместе с популярностью операционной системы [[OS/2]]. Это связано с тем, что интерпретатор REXX’а мог вызываться как из командного процессора, который в результате мог исполнять скрипты, состоящие из операторов командной строки (аналогично [[bash]] в [[GNU]]), так и из любого приложения.&lt;br /&gt;
&lt;br /&gt;
Широкое распространение язык получил в операционной системе AmigaOS (включая последнее издание 3.2 в 2021 г.) в вариации ARexx. Язык позволяет интегрировать новые функции в приложения и осуществлять автоматизацию процессов и связь между различными программами. С учётом особенностей операционной системы AmigaOS язык получил множество сторонних расширений через динамические библиотеки, включая конструкторы графических интерфейсов, что в свою очередь привело к появлению многих популярных самостоятельных программ и пакетов расширения для различных редакторов. Программы могут вызываться из командной строки, из программ и самостоятельно - из иконок на рабочем столе.&lt;br /&gt;
&lt;br /&gt;
В том случае, когда интерпретатор REXX вызывается из cmd.exe (или [[4os2]].exe), он исполняет командный файл. Если он вызывается из почтового редактора [[FleetStreet]] — он исполняет командный файл FleetStreet. Сам по себе REXX не привязан к конкретной части системы и может использоваться любой программой как «свой» язык, при этом каждая из использующих REXX программ может добавить к нему свои функции и операторы, которые будут доступны только при работе REXX’а в контексте этой программы. Например, электронная таблица [[mesa/2]] добавляет в REXX команду, которая позволяет считывать и записывать содержимое ячеек таблиц и т. п.&lt;br /&gt;
&lt;br /&gt;
С тех пор язык получил развитие далеко за пределами OS/2, но традиционно его свойствами остались удобный доступ к командам операционной системы, мощные операции со строками, упрощённая обработка ошибок и встроенный [[отладчик]].&lt;br /&gt;
&lt;br /&gt;
Изначально REXX не был объектно-ориентированным, хотя в настоящее время существуют и такие версии языка (например, [[Object REXX|Open Object REXX]]). Синтаксически язык слегка напоминает упрощённый [[ПЛ/1]]. Переменные в REXX не типизированы и не требуют декларации.&lt;br /&gt;
&lt;br /&gt;
Из особенностей языка следует отметить мощный и удобный оператор &amp;#039;&amp;#039;&amp;#039;PARSE&amp;#039;&amp;#039;&amp;#039; для разбора строк (похожий на «=~ m/» в [[Perl]], но более простой). Его синтаксис:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    parse [upper] &amp;#039;&amp;#039;исходник шаблон&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
позволяет писать легко читаемые конструкции вроде&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    MyVar = &amp;quot;Вася Иванов&amp;quot;&lt;br /&gt;
    parse var MyVar FirstName LastName&lt;br /&gt;
    say &amp;quot;Имя:&amp;quot; FirstName&lt;br /&gt;
    say &amp;quot;Фамилия:&amp;quot; LastName&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
или, к примеру, если имя написано через запятую, можно указать это в шаблоне&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    MyVar = &amp;quot;Иванов, Вася&amp;quot;&lt;br /&gt;
    parse var MyVar LastName &amp;quot;,&amp;quot; FirstName&lt;br /&gt;
    say &amp;quot;Имя:&amp;quot; FirstName&lt;br /&gt;
    say &amp;quot;Фамилия:&amp;quot; LastName&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
а также можно пользоваться прямой индексацией столбцов:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    MyVar = &amp;quot;(202) 123—1234&amp;quot;&lt;br /&gt;
    parse var MyVar 2 AreaCode 5 7 SubNumber&lt;br /&gt;
    say &amp;quot;Код города:&amp;quot; AreaCode&lt;br /&gt;
    say &amp;quot;Телефон:&amp;quot; SubNumber&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
выведет следующие строки на экран:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
    Код города: 202&lt;br /&gt;
    Телефон: 123—1234&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример программы ==&lt;br /&gt;
Пример программы на REXX’е — калькулятор, выполняющий шесть операций (+, -, *, /, //, %), понимающий операции в скобках и произвольное количество переменных:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/* calc.cmd народный калькулятор (с) 1998 */&lt;br /&gt;
SAY &amp;#039;Русский народный калькулятор v0.0&amp;#039;&lt;br /&gt;
XX = &amp;quot;X=&amp;quot;; X0 = &amp;quot;X=X&amp;quot;&lt;br /&gt;
  SAY &amp;#039;Введите выражение или Q для завершения&amp;#039;&lt;br /&gt;
DO FOREVER&lt;br /&gt;
  PULL v&lt;br /&gt;
  IF v = &amp;#039;Q&amp;#039; THEN LEAVE &lt;br /&gt;
  S = LEFT( v, 1 )&lt;br /&gt;
  IF( DATATYPE( S, &amp;#039;A&amp;#039; ) )&lt;br /&gt;
    THEN&lt;br /&gt;
      DO&lt;br /&gt;
        IF( POS( &amp;#039;=&amp;#039;, v ) = 0 )&lt;br /&gt;
           THEN&lt;br /&gt;
             DO  &lt;br /&gt;
               INTERPRET XX v &lt;br /&gt;
               SAY &amp;#039;X=&amp;#039; X &lt;br /&gt;
             END&lt;br /&gt;
           ELSE   &lt;br /&gt;
             INTERPRET v&lt;br /&gt;
      END&lt;br /&gt;
    ELSE&lt;br /&gt;
      DO  &lt;br /&gt;
        INTERPRET X0 v&lt;br /&gt;
        SAY &amp;#039;X=&amp;#039; X&lt;br /&gt;
      END&lt;br /&gt;
END&lt;br /&gt;
EXIT&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Пример выполнения программы (&amp;#039;&amp;#039;&amp;#039;&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039; обозначен ввод пользователя):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
 Русский народный калькулятор v0.0&lt;br /&gt;
 Введите выражение или Q для завершения&lt;br /&gt;
 &amp;gt;300+(12.5*2+5)&lt;br /&gt;
 X= 330.0&lt;br /&gt;
 &amp;gt;Y=X*2&lt;br /&gt;
 &amp;gt;Y+2&lt;br /&gt;
 X= 662.0&lt;br /&gt;
 &amp;gt;+33&lt;br /&gt;
 X= 695.0&lt;br /&gt;
 &amp;gt;+123&lt;br /&gt;
 X= 818.0&lt;br /&gt;
 &amp;gt;/10&lt;br /&gt;
 X= 81.8&lt;br /&gt;
 &amp;gt;//2&lt;br /&gt;
 X= 1.8&lt;br /&gt;
 &amp;gt;+1024&lt;br /&gt;
 X= 1025.8&lt;br /&gt;
 &amp;gt;%4&lt;br /&gt;
 X= 256&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
* [[ARexx]]&lt;br /&gt;
* [[AmigaOS#ARexx|Диалект ARexx в AmigaOS]]&lt;br /&gt;
* [[Система виртуальных машин#Системы программирования и язык REXX|Системы программирования и язык REXX]]&lt;br /&gt;
* Сайт [http://www.librexx.ru/ LibRexx] {{Wayback|url=http://www.librexx.ru/ |date=20170331031143 }}&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [http://www.ibm.com/rexx/ Страничка языка REXX] на сайте IBM&lt;br /&gt;
* [http://www.quercus-sys.com/ Коммерческий интерпретатор REXX для Windows, OS/2 и DOS] {{Wayback|url=http://www.quercus-sys.com/ |date=20050205144018 }}&lt;br /&gt;
* [http://regina-rexx.sourceforge.net/ Свободно распространяемый кроссплатформенный интерпретатор Regina Rexx] {{Wayback|url=http://regina-rexx.sourceforge.net/ |date=20170730102026 }}&lt;br /&gt;
* [http://www.oorexx.org/ Open Object Rexx (ooRexx)] {{Wayback|url=http://www.oorexx.org/ |date=20171231093446 }} — проект с открытым кодом, управляемый Rexx Language Association (RexxLA)&lt;br /&gt;
* [http://www.script-coding.com/ooRexx.html Обзор Open Object Rexx] {{Wayback|url=http://www.script-coding.com/ooRexx.html |date=20110322141236 }}{{ref|ru}}&lt;br /&gt;
* [https://web.archive.org/web/20061010200846/http://amitoday.spb.ru/news.phtml?n=734 История появления ARexx для AmigaOS]&lt;br /&gt;
* [http://www.amirus.org.ru/arexx_intro/arexx_intro.html Краткий обзор ARexx] {{Wayback|url=http://www.amirus.org.ru/arexx_intro/arexx_intro.html |date=20060813021122 }}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Категория:Языки программирования по алфавиту]]&lt;br /&gt;
[[Категория:Скриптовые языки]]&lt;br /&gt;
[[Категория:Командные оболочки]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Lê Lợi (bot)</name></author>
	</entry>
</feed>