<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sib">
	<id>https://sibwiki.org/index.php?action=history&amp;feed=atom&amp;title=Rexx</id>
	<title>Rexx - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sibwiki.org/index.php?action=history&amp;feed=atom&amp;title=Rexx"/>
	<link rel="alternate" type="text/html" href="https://sibwiki.org/index.php?title=Rexx&amp;action=history"/>
	<updated>2026-05-31T14:08:55Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://sibwiki.org/index.php?title=Rexx&amp;diff=85919&amp;oldid=prev</id>
		<title>Yaroslav: Bot: Automated import of articles</title>
		<link rel="alternate" type="text/html" href="https://sibwiki.org/index.php?title=Rexx&amp;diff=85919&amp;oldid=prev"/>
		<updated>2026-05-30T21:57:46Z</updated>

		<summary type="html">&lt;p&gt;Bot: Automated import of articles&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторонка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{YouTube|UJ0yJhXswxA|width=300|height=250}}&lt;br /&gt;
&lt;br /&gt;
Rexx — это высокоуровневый язык программирования, изначально разработанный корпорацией IBM в конце 1970-х годов. Язык проектировался преимущественно как мощный и универсальный инструмент для написания сценариев (скриптов) и автоматизации задач операционных систем. Благодаря простому синтаксису и свободному формату написания кода, язык получил широкое распространение в академической и корпоративной среде восьмидесятых и девяностых годов.&lt;br /&gt;
&lt;br /&gt;
== История создания и развитие ==&lt;br /&gt;
Разработка языка была инициирована программистом Майком Коулишоу. Процесс создания начался 20 марта 1979 года и завершился к середине 1982 года. Исторически Rexx разрабатывался как замена существовавшим на тот момент скриптовым языкам exec и exec 2, которые отличались высокой сложностью и высоким порогом вхождения. &lt;br /&gt;
&lt;br /&gt;
Архитектурно язык формировался под сильным влиянием сложного и громоздкого академического языка ПЛ/1 (PL/1), который в те годы часто применялся для решения корпоративных задач. Rexx концептуально задумывался как экстремальное упрощение ПЛ/1: он должен был стать легким в освоении языком, доступным для широкого круга пользователей операционных систем, а также служить промежуточной учебной ступенью перед переходом к программированию на ПЛ/1.&lt;br /&gt;
&lt;br /&gt;
В 1981 году язык был впервые официально представлен на профильной конференции, где получил высокие оценки технического сообщества. В 1982 году корпорация IBM выпустила Rexx в качестве полноценного коммерческого продукта. Язык активно продвигался компанией и был портирован на большинство актуальных операционных систем того времени, включая PC DOS, OS/2, Windows, а впоследствии и Linux. &lt;br /&gt;
&lt;br /&gt;
Изначально Rexx функционировал исключительно как интерпретируемый язык, однако в 1987 году был выпущен первый полноценный компилятор. В 1990 году состоялся первый специализированный симпозиум, по итогам которого была создана ассоциация разработчиков языка Rexx Language Association.&lt;br /&gt;
&lt;br /&gt;
В середине 1990-х годов, на фоне роста популярности новых технологий, появилось несколько существенных ответвлений языка:&lt;br /&gt;
Объектно-ориентированный диалект Object REXX, стандартизация которого была завершена в 1996 году.&lt;br /&gt;
Диалект NetRexx, архитектура которого опиралась на вычислительную модель Java. NetRexx транслировался в байт-код для виртуальной машины Java, однако из-за синтаксических и парадигмальных отличий он был несовместим с классическим исходным кодом Rexx.&lt;br /&gt;
&lt;br /&gt;
== Архитектура и синтаксис ==&lt;br /&gt;
Синтаксис языка отличается крайней лаконичностью: базовый стандарт включает всего от 23 до 32 основных инструкций. В языке отсутствуют жестко зарезервированные ключевые слова в глобальном пространстве имен; слова становятся ключевыми исключительно в определенном локальном контексте. &lt;br /&gt;
&lt;br /&gt;
Программный код строится на базе трех типов инструкций (стейтментов):&lt;br /&gt;
Операции присваивания.&lt;br /&gt;
Операции вычисления.&lt;br /&gt;
Операции, выполняемые по локальным ключевым словам.&lt;br /&gt;
&lt;br /&gt;
Логическая группировка инструкций осуществляется с помощью конструкции блока do. В отличие от языков семейства Паскаль, где требуется пара begin/end, в Rexx блок открывается словом do и закрывается словом end. Данный блок может выступать как простой группировкой операторов (например, в условных ветвлениях), так и классическим циклом. &lt;br /&gt;
&lt;br /&gt;
Циклические конструкции обладают исключительной гибкостью, заимствованной из ПЛ/1. Программист может задавать фиксированное количество повторений (указав число после do), создавать циклы со счетчиком, задавать начальное значение, конечное условие и шаг итерации. Архитектура позволяет комбинировать множество условий продолжения и прерывания работы в рамках одного составного оператора цикла. Также предусмотрена конструкция бесконечного цикла do forever, выход из которого осуществляется по внутреннему условию.&lt;br /&gt;
&lt;br /&gt;
Для множественного ветвления алгоритма применяется специализированная инструкция select (аналог switch в C-подобных языках). В среду также встроена система обработки ошибок, которая перехватывает исключения во время исполнения и возвращает стандартизированные коды ошибок.&lt;br /&gt;
&lt;br /&gt;
Концептуальный пример синтаксиса для вычисления квадратного корня из двух по методу Ньютона:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 /* Пример использования блока do */&lt;br /&gt;
 do forever&lt;br /&gt;
    /* Логика вычисления по методу Ньютона */&lt;br /&gt;
    /* Инструкция условного выхода при достижении нужной точности */&lt;br /&gt;
 end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Типы данных и составные переменные ==&lt;br /&gt;
Rexx обладает динамической типизацией. Переменные не требуют предварительного объявления и изначально не имеют фиксированного типа. Особенностью языка является то, что неинициализированная переменная обрабатывается интерпретатором как текстовая строка, содержащая собственное имя в верхнем регистре. Тип данных (число или строка) определяется динамически в зависимости от того, какое значение присваивается переменной в процессе выполнения.&lt;br /&gt;
&lt;br /&gt;
Фундаментальной архитектурной находкой языка является концепция «составных переменных» (compound variables). Составная переменная состоит из базовой части («корня» или stem) и присоединяемого через точку «хвоста» (tail). &lt;br /&gt;
Эта универсальная конструкция позволяет разработчикам эмулировать практически любые структуры данных из других языков:&lt;br /&gt;
Классические массивы (если в качестве хвоста используются порядковые числа).&lt;br /&gt;
Многомерные массивы и деревья (путем добавления нескольких хвостов через точки).&lt;br /&gt;
Ассоциативные массивы и записи (если хвост является текстовой строкой, например, названием дня недели).&lt;br /&gt;
С точки зрения интерпретатора любая подобная структура остается единой составной переменной, что делает работу с данными интуитивно понятной.&lt;br /&gt;
&lt;br /&gt;
== Обработка строк и инструкция Parse ==&lt;br /&gt;
Язык обладает мощными встроенными возможностями для обработки текстовой информации. Ключевым инструментом для этих задач выступает встроенная инструкция parse.&lt;br /&gt;
&lt;br /&gt;
Инструкция parse осуществляет синтаксический анализ переданной текстовой строки, автоматически разделяя её на фрагменты и распределяя эти фрагменты по заданному списку переменных. Разработчик может передавать инструкции различные модификаторы, определяющие границы переменных, символы-разделители или источники данных (например, чтение напрямую с клавиатуры). Благодаря этой инструкции в профессиональном жаргоне программистов укоренился термин «парсить» (осуществлять синтаксический разбор данных).&lt;br /&gt;
&lt;br /&gt;
== Сферы применения, достоинства и недостатки ==&lt;br /&gt;
Пик популярности языка пришелся на 1990-е и начало 2000-х годов. В этот период для него создавались визуальные интегрированные среды разработки, графические библиотеки и инструменты для автоматизации. Долгое время он оставался стандартом для написания скриптов на мейнфреймах IBM.&lt;br /&gt;
&lt;br /&gt;
Главными достоинствами языка считаются простота, низкий порог вхождения и высокая читаемость исходного кода. Язык легко осваивался системными администраторами и рядовыми сотрудниками для написания небольших сценариев автоматизации операционных систем без необходимости изучения сложных языков вроде C. Универсальность позволяла эффективно манипулировать текстом и системными вызовами.&lt;br /&gt;
&lt;br /&gt;
К существенным недостаткам относится техническое устаревание архитектуры (стандарты конца 1970-х годов). Будучи интерпретируемым языком сверхвысокого уровня, Rexx обладает крайне низкой вычислительной производительностью. Он не адаптирован для разработки современных многокомпонентных веб-приложений или систем управления базами данных. Кроме того, вокруг языка сформировалось относительно небольшое сообщество разработчиков, что привело к дефициту готовых библиотек и обучающих материалов в сети Интернет. &lt;br /&gt;
&lt;br /&gt;
В современной индустрии разработки программного обеспечения язык Rexx практически полностью вытеснен универсальным языком Python, а также языком JavaScript, которые обладают несоизмеримо более масштабной экосистемой и адаптированы под современные вычислительные парадигмы.&lt;br /&gt;
&lt;br /&gt;
== См. также ==&lt;br /&gt;
[[Ruby]]&lt;br /&gt;
[[Rust]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Языки программирования]]&lt;br /&gt;
[[Category:Скриптовые языки]]&lt;br /&gt;
[[Category:Динамические языки программирования]]&lt;br /&gt;
[[Category:История компьютерных технологий]]&lt;br /&gt;
[[Category:Устаревшие языки программирования]]&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=UJ0yJhXswxA Смотреть видео]&lt;/div&gt;</summary>
		<author><name>Yaroslav</name></author>
	</entry>
</feed>