НОВОЕ: OS/2 GURU - Вопросы и ответы ru · en · de · es · it · pt · cz · pl · fr

OS/2.GURU Library

Reviews / articles about OS/2 eComStation ArcaOS

Operating systems
ArcaOS, eComStation, IBM OS/2 Warp
eComStation myths 

Latest  
 
 
Blonde Guy

Reformat Утилита для форматирования USB флешек, USB винчестеров (для совместимости с OS/2)

 

(promo)

Unsorted

 

 

AD: Upgrade ArcaOS to NeoWPS level

  • Install original PNG icons drawed by designer, specialized at OS/2 adornation.
  • Install eSchemes 2019 to change colors and buttons on desktop.

REXX - Potential of OS/2 platform


TITLE: REXX - Potential of OS/2 platform

DATE: 2002-01-14 23:04:36

AUTHOR: Basil A. Sidorov
Please use online translator
go to http://translate.google.com
and request the translation of http://ru.ecomstation./projects/reviews/index.php?id=39
to your language

Что такое REXX? Какова его концепция?

Абревиатура REXX расшифровывается как REstructure eXtended eXecutor и созвучна с латинским REX (король). История создания изложена автором, Майком Колишау (Mike Cowlishaw) в "Rexx brief history".

А началась эта история 29 марта 1979, когда была опубликована первая спецификация нового языка. После обсуждения концепций, в конце 1979 года Майк реализовал первый интерпретатор. Первоначально новый язык был доступен только внутри IBM, что с одной стороны позволяло учесть мнения и пожелания большого числа людей, а с другой - делало возможным внесение достаточно кардинальных изменений.

К 1982 году язык оформился в его теперешнем виде и получил вторую букву "X".

В OS/2 REXX появился с версии 1.2, сначала в расширенной (EE), а с версии 1.3 - и в стандартной редакции системы.

REXX - скриптовый язык и применяется там же, где применяются любые скриптовые языки: когда возможности встроенного языка пакетной обработки уже исчерпаны, а переход на "традиционное" программирование себя еще не оправдывает.

Каждый скриптовый язык использует ту или иную концепцию. Основная концепция REXX - "все есть строка". Другая весьма важная особенность - отсутствие зарезервированых слов. Она гарантирует, что Ваши скрипты не перестанут работать только потому, что в новой версии появилось новое ключевое слово или встроенная функция, имена которых конфликтуют с именами в Ваших скриптах.

В повседневной деятельности возникают задачи, которые могут быть прекрасно решены с помощью REXX. Например, маленький шедуллер, обработчик текста, работа с WPS. Каков этот круг задач?

Тривиальный пример работы с WPS - создание программных объектов с помощью SysCreateObject() штатной библиотеки расширения RexxUtil. Или SysOpenObject() с помощью которой можно запустить на исполнение (DOS)программу с требуемыми настройками. А вообще, на www.os2.spb.ru лежит коллекция самых разных скриптов "на все случаи жизни".

Когда мне понадобилось скопировать "всё, что можно" с плохо читаемого компакт-диска - написание скрипта заняло примерно полчаса. Вместе со всеми украшательствами. Думаю, что поиски "чего-нибудь готового" заняли бы больше времени:)

Какие REXX'ы бывают?

Можно выделить три ветви - Classic REXX, Object REXX и NetRexx. Первые два входят в штатную поставку OS/2 начиная с Warp4. Пользователи Warp3 могут установить Object REXX из архива на хоббесе. Эту же версию я рекомендую и для мерлина, а "сладкую парочку" RexxCRT.DLL/RexxUtil.DLL из него - всем, кроме пользователей ACP1+.

Наиболее современная версия классического рекса это, видимо, Regina Rexx, развиваемый Марком Хесслингом (Mark Hessling) и существующий как проект на SourceForge.

Объектный рекс начал разрабатываться внутри IBM в начале 1990-х годов и, насколько я понимаю, позиционируется IBM'ом как основной диалект и заменитель "классики".

NetRexx был создан и развивается Майком Колишау и представляет язык Java-программирования с рексоподобным синтаксисом.

Где можно найти твои статьи про Object REXX?

Статьи опубликованы на сайте RDM/2, архив 1999 года. Первая из них дублирует :) чти.мя ACP1, вторая сравнивает возможности ввода/вывода классического и объектного REXX'ов.

Могут ли другие скриптовые языки (perl, vb) заменить REXX?

Мне сложно ответить на этот вопрос, т.к. я весьма шапочно знаком с Perl'ом и еще меньше - с Visual Basic'ом.

Однако, читая "Изучаем Perl" Р.Л.Шварца и Т.Кристиансена, нельзя не обратить внимание на сильную привязку Perl'а к юниксоподобным системам, а VB раздражает большим числом своих инкарнаций.

Кроме того, рекс не просто общецелевой скриптовый язык, это еще и "универсальный клей", используемый самыми разными компонентами OS/2 и различными прикладными программами. Заменить его в этом качестве может только другой рекс.

В частности, REXX используется инсталятором OS/2, широко применяется при CID-инсталяции различных программ. Некоторые LanServer'овские утилиты - тоже rexx-скрипты.

С чего начать изучение REXX?

Изучение REXX'а начинается с того же, что и все остальное - с чтения штатной документации. Для тех, кому удобнее читать русское руководство - нужен либо "русский Мерлин" либо (c)rexx.inf из него.

Руководство должно быть прочитано полностью. Особенно - раздел "Встроенные функции". Это позволит не изобретать велосипеды типа wordpos() или space().

В части синтаксиса нужно помнить об открывающей скобке: length(string) - вызов функции "length" с аргументом "string", а length (string) - объединение (через пробел) двух строк.

Некоторую сложность могут представлять кортежи (stem) с их правилами подстановки "хвостовых" значений.

Но если воспользоваться rexxtry (интерактивный скрипт из штатной поставки) - большинство вопросов выясняются легко и быстро.

'REXX Tips and Tricks' - этот текст будет полезен начинающим?

Безусловно. Причем читать его нужно и тем, кто не собирается использовать REXX, а просто хочет расширить свои познания об штатных утилитах, языке пакетной ("обычные" .cmd) обработки и т.п. Скажем, классическое: "SomeProg 2>&1 > nul" проще всего найти именно там. Версия периодически меняется, так что искать лучше по слову "rxtt".

Что можно сказать о производительности? Какого размера бывают рексовые скрипты?

"Пузомеркой" интерпретатора является RexxCPS, который измеряет время исполнения некоторых типичных операций. Но говоря о производительности, следует помнить, что скорость работы процессоров постоянно растет. Как следствие, использование скриптовых языков вообще и REXX, в частности, становится все более удобным.

Размеры скриптов бывают самыми разными: от однострочного

	/* SAY.CMD */ interpret 'say' arg(1)

до многосоткилобайтовых монстров типа PPWizard.

Практически же оптимальным является скрипт до 10-15 килобайт. Дело в том, что интерпретация REXX-скриптов в OS/2 является двухстадийной. На первой стадии строится так называемый токенизированый образ, на второй - интерпретируется результат токенизации.

Если скрипт достаточно мал и токенизированый образ оказался менее 64Кб, он сохраняется в расширенных атрибутах файла, что ускоряет все последующие запуски скрипта.

Если образ настолько велик, что не помещается в расширенных аттрибутах, то первая стадия будет повторятся каждый раз, существенно увеличивая общее время запуска скрипта. В такой ситуации (утилитой rexxc) можно сохранить токенизированный образ как дисковый файл. Если файлу присвоить расширение .cmd - он будет исполняться как обычный текстовый скрипт.

Используя такую технику следует помнить, что формат токен-образа не стандартизирован и зависит от версии интерпретатора. Таким образом токенизированые скрипты (обычно) не годятся для распространения как самостоятельная программа.

Здесь я бы отметил ещё одно преимущество Object Rexx - написание модульных скриптов становится тривильным: аттрибут public для общедоступных классов/процедур и директива requires в скриптах, которые будут ими пользоваться. Для классов есть и более изощрённая техника, которая позволит избавиться от накладных расходов, связанных с директивой requires.

Что нужно сделать, чтобы использовать REXX в своей программе на Си?

Все необходимое (руководство, хедеры, примеры) есть в OS/2 Tookit. Само API реализовано в рамках проекта SAA как SAA Rexx API и достаточно универсально для использования самыми разными интерпретаторами.

... А если я хочу использовать REXX, как внутренний скриптовый язык своей программы? Например, пользователь делает описание "3D-сцены" на рексе (параметры объектов и сцены). Дальше, остается воспользоваться готовым решением - запустить интерпретатор рекса. При выполнении скрипта, вызываются функции программы (расстановка объектов и т.п.)

Совет простой - читать RexxPG/смотреть примеры/хедеры всё того же ToolKit'а. Интерпретатор REXX'а имеет различные хуки, которые позволяют определять собственные команды/функции, манипулировать пулом переменных и вводом/выводом, перехватывать обработку ошибок и даже подменять интерпретатор, если это нужно.

Лично я этим не занимался, но вот несколько примеров:

Есть ли REXX в других ОС? Какие у них ограничения?

Здесь сложно что-либо добавить к информации с авторского сайта. Интерпретаторы рекса есть практически везде - от майнфреймов до наладонных компьютеров. Я работал с рексом в PCDOS, с Региной (Win32/DOS32), классикой и объектным рексом в OS/2. Если исключить интерпретатор PCDOS (с крайне неприятным ограничением <64Кб на значение переменной), то написание универсальных скриптов вполне реально.

Вместе с тем, я считаю, что наиболее перспективным является Object REXX, несмотря на то, что пока(?) он развивается исключительно фирмой IBM и свободно доступен только для OS/2 и Linux'а.

Как ты думаешь, есть ли смысл предлагать REXX, как язык для начинающих программистов? вместо Паскаля? (например, в школах) ...

Сложно сказать. С одной стороны и Pascal и Rexx - алгоритмические языки, с другой - Pascal знает гораздо большее:) число преподователей.

... идея сумасшедшая, но зато какие просторы для творчества открываются перед "малышом"?!! (обновлять на десктопе объекты, доступ к SOM)

Если это десктоп OS/2 - безусловно:)

Есть ли гарантии, что REXX никуда не исчезнет?

"Полную гарантию может дать только страховой полис":) На самом деле в "Философия Java" Брюса Эккеля есть такой (примерно) текст: "На одном из моих семинаров Алан Голуб доказывал, что наиболее используемые в настоящее время языки - Rexx и Cobol, в указанном порядке".


На вопросы отвечал: Василий А. Сидоров

Вопросы задавал: Eugene Gorbunoff

Test the program:

Virtual keyboard - on-screen virtual keyboard (useful for touchscreens, to input special characters)

Comments:

Timur Kazimirov
2002-01-15 02:01:58

.....!!! .... ..... ..........

Eugene Gorbunoff
2002-01-15 02:22:09

.... .... ...... ........ .. ......... =)

Timur Kazimirov
2002-01-15 09:13:44

.. ..... ... ..... - ..... ........... .....

Alexander Lapshin
2002-01-15 20:19:57

..... .........!

..... ......... ........?

..... .................. ... ..... lgs.kiev.ua ?

......
2002-01-19 05:42:40

. ...... ...... .. os2ezine

[url] ......., ... "At one time Rexx was going away to be replaced by Visual Basic, IBM's new corporate scripting language; IBM's basic is dead and Rexx still survives."

... ....... .... .. ..... ....? IBM ...... VB ... REXX ......... ...?

stellar
2002-10-16 15:07:21

"....... ...... . Perl, .. ............. ... ....... ........ .

.............. ........".

-- .....

.......
2003-04-04 17:06:09

Rexx - .. .............. ...., ....... ............. ...... ........ ...... .. ..., ... ............ ....... .......... . ...-.. ... ........ ....... ..........., .......... .......... ......

. ....... cmd.exe .......... ... ....... (....... ...... ... rexx-.........) .. ...... ....... . rexx-........ ... ........ ........ ............ . .... ...... . ............: ... ......... ....... . cmd.exe ... ...-.. .............. . ........., ... .............. Perl?

......
2004-03-30 17:31:15

. ..... ......., . .. .. .... ........ ..... ... REXX, .......... ........ ........., . ...... ..........

.... .. . .... .......... .... ...... ......., .. .. .... .. PHP . Java, . .... .. REXX . FORT ;-)

......... ........

........
2005-05-30 14:25:26

>> .... .. . .... .......... .... ...... ......., .. .. .... .. PHP . Java, . .... .. REXX . FORT ;-)

........., ......, ....... ... ....... .......... - ....... .........

Chuk
2005-05-31 12:14:26

. ... .. ........ ...... .... ..... ... .... ... .... .. ........... . Perl . Java . C# . Delphi . C++ ... ..... ..... ...... ...... .. ...... ..... .. .... ....... ...... ... .. ........

disputant
2010-08-21 22:08:20

"...... ........ ..... .... ...... ......... ....."

..... ........ :) - ...... ....... . ..........., . .. . ...........

Books about eComStation and OS/2 Warp: for dummies, developers and specialists. Find the listings here.

 

Siberian OS/2

 


 

 

ArcaOS 5.1.1 - DOS works again

DOS virtual machine works again (it was working on Core 2 Duo, and didn't for i5). Install ArcaOS in UEFI mode to use DOS VM.

Russian OS/2

eCo Software is making russian eComStation since 2001, all versions of ArcaOS since 2017.

// надо на ENG!!
Blonde Guy

Buy OS/2 application: DVD/CD Toys

Warpstock Europe 2025

The conference is planned to the spring of 2025.

video about the city

eCo Software doesn't participate.

 

(C) OS2.GURU 2001 -- 2025