It is a follow-on and a significant extension of the Rexx programming language (often called "Classic Rexx"). Object REXX retains all the features and syntax of "Classic Rexx" while adding full object-oriented programming (OOP) capabilities. Although Object REXX does not implement all aspects of the "Information Technology – Programming Language REXX" ANSI X3.274-1996[1] standard, it offers many new features of its own.
Following its "Classic Rexx" influence, Object REXX is designed to be easy to learn, use, and maintain.
Several object-oriented implementations of REXX are available, including Open Object Rexx ("ooRexx") and Rexx Object Oriented ("roo!").[2]: 311
History
In 1988, the "Oryx" project at IBM, under the technical direction of Simon C. Nash, experimented with merging "Classic Rexx" with the object model of Smalltalk.[3][4] The motivation behind the project was to transfer the advantages of OOP to "Classic Rexx" while remaining compatible and thus transferring the usability of "Classic Rexx" to OOP.[5] Early on, the projects focused on OOP aspect such as treating everything as an object, object-based encapsulation and message passing, object-based concurrency, classes and inheritance.[6]
This initial work later led under the direction of Rick McGuire to the first prototype of Object REXX, which was presented in 1992. In 1994, IBM announced that Object REXX would replace "Classic Rexx" as the standard REXX interpreter in the next version of OS/2.[4] In 1996, Object REXX[a] was released as part of the OS/2 Warp 4 operating system.[7] In 1997, versions for Windows 95, Windows NT and Linux followed.[8][9] In 1999 an Object REXX version for AIX V4.1.5 or higher was released.[10] In 2000, versions for zLinux and Sun/Solaris followed. For Windows 2000, Windows Me, Windows 98 and Windows NT 4.0, the last major update for Object REXX was released in 2001.[11]
On 12 October 2004, IBM announced the discontinuation of Object REXX and transferred the source code and licensing rights[b] to the non-profit Special Interest Group (SIG), the Rexx Language Association (RexxLA). In 2005, the RexxLA released ooRexx as a new incarnation of Object REXX as free and open-source software under the Common Public License.[12] This first version of ooRexx 3.0.0 has been heavily refactored compared to the original IBM source code in order to increase readability. Later, the ooRexx kernel was rewritten in pure C++, and a new architecture and native interface were designed and implemented under the technical direction of Rick McGuire. This work enabled the RexxLA to release ooRexx 4.0.0 with support for 64-bit in 2009. To this day, the RexxLA continues to develop, support and maintain ooRexx as well as "Classic Rexx" and NetRexx. Furthermore, the RexxLA organizes annual symposia.[13]
IBM's original Object REXX interpreter continues to be available in OS/2-derived operating systems, such as ArcaOS and eComStation.
Releases
The following table contains noteworthy features and changes of major Object REXX and ooRexx interpreter versions. All ooRexx releases and the necessary documentation are available on Sourceforge.[14][15] For Arch Linux based distributions the current and the development version are available as Arch User Repository. Since release 5.0.0, portable versions of the interpreter are available that allow it to be used without installation.
Legend:
Old version
Old version, still maintained
Latest version
Latest preview version
Future release
Major Releases
Release Date
Notable Features and Changes
Old version, no longer maintained: Object REXX 1.0.0 (OS/2)[16]
1996-09-25
First official release as part of OS/2 Warp 4
Old version, no longer maintained: Object REXX 1.0.0 (Windows)[17]
1997-02-28 (IE) 1997-05-30 (DE)
First releases for Windows as "Interpreter Edition" (IE) and "Development Edition" (DE)
DE additionally provides a dialogue class library, a graphical dialogue editor and a built-in tokeniser
Provides structured programming constructs such as select, do loops, if-then-else branching and subroutine calls
Provides array handling, arithmetic and other build-in functions
Support for OOP concepts such as classes, object, methods, encapsulation, messaging, polymorphism, inheritance and multiple inheritance (metaclasses and mix-in classes)
Additional method each for the String, Mutablebuffer, StackFrame, Queue and OrderedCollection classes
Additional methods for the Relation class, several sorting methods for OrderedCollections and methods for inserting and deleting elements for the Array class
ooRexx is designed to retain all the features of "Classic Rexx". Its conforms[c] to the ANSI standard for the Rexx language (X3.274-1996, “Programming Language Rexx”[1]), for interoperability across platforms with other conforming implementations. Thus "Classic Rexx" programs typically run under ooRexx without any changes. This makes it easy to transport both program code and developer knowledge from "Classic Rexx" to ooRexx. To this, ooRexx adds all the features of OOP, such as subclassing, polymorphism, and data encapsulation. Further features include multiple inheritance via mixinclasses.
The code that IBM released to open source in 2004 did not include the classes for IBM System Object Model (SOM) and Workplace Shell (WPS) support.[30] The OS/2 version of IBM Object REXX includes classes to support SOM [31] and WPS.[32] These are also included OS/2's initial follow-on product, eComStation, and also in its current descendant, ArcaOS.[33]
ooRexx follows the design philosophy of "Classic Rexx" to create a "human-centered" programming language that is easy to learn, code, remember and maintain, in part by keeping the language small and following the principle of least astonishment.[2][34] ooRexx 5.0.0, for instance, contains only thirty keyword instructions.[35] In addition, there is only one data type, the character string, which does not have to be declared, which reduces the effort for programmers compared to strictly typed languages.[36]
Free-form
As "Classic Rexx", ooRexx has a free-form syntax where the positioning of the program code is irrelevant. Before execution, the interpreter merges multiple unquoted blanks into one, while a character string enclosed in quotation marks (single or double) is not changed. Concatenation can be requested explicitly with two vertical bars (||), or implicitly by separating terms with spaces or by abutting terms. Since a free-form language requires fewer syntactic rules to be considered, it is assumed that it eases the learning effort by reducing the intrinsic cognitive load.[37]
As "Classic Rexx", ooRexx is a case-insensitive programming language. The interpreter capitalizes all characters outside quotation marks before executing them. Because the cases do not need to be differentiated, fewer additional details need to be learned and frustrating syntax errors are avoided.[37]
a=" This"'is'"REXX!"/* a merged string */SayA/* output: This is REXX! */SAYa/* output: This is REXX! */
Message paradigm
Similar to the messaging paradigm implemented by Alan Kay in Smalltalk, everything in ooRexx is an object that can be communicated with by sending messages naming a method. The notion of sending messages to objects as if they were living beings helps beginners to learn OOP concepts.[38]
In contrast to Smalltalk, there is an explicit message operator, the tilde (~), where the receiving object is placed to the left of it and the result of the operation is returned. Like Smalltallk, ooRexx messages can be cascaded if two tildes (~~) are used instead of one, returning the object that received the method rather than the result produced. The default behavior of most methods can be changed by specifying an option, which can be either spelled out or abbreviated and is not case-sensitive. This enables a literal understanding and reduces the learning effort for beginners.[37] For example the strip method by default removes leading and trailing blanks. This behavior can be changed, for example, by specifying "leading" or "l" as an option.
a=" This"'is'"ooRexx!"/* a merged string */SayA/* output: This is ooRexx! */SAYa~Strip("Leading")/* output: This is ooRexx! */sayA~strip("l")/* output: This is ooRexx! */
Built-in and external functions
ooRexx release 5.0.0 contains 82 built-in functions, the number of which has remained relatively stable over the years.[35] Using the ::requiresdirective, external function libraries can be integrated on a per program basis. Such libraries are usually organized around domain-specific functions.
The Rexx extension library provides a class for reading and writing comma-separated values (CSV) files, for creating and processing JavaScript Object Notation (JSON) data and a sub-command environment that partially emulates a TSO/CMS environment.[39] The RxMath library offers advanced mathematical functions such as square root calculation, exponential function, logarithm, sine, cosine, tangent, arc sine and power calculation.[40] The RxSock library enables to incorporate TCP/IP protocols,[41] while the RxFtp library[42] specifically provides access to the file transfer protocol.
Bridges
The Windows extension includes a Windows Script Host (WSH) Scripting Engine that can be used to perform general automation tasks. It also includes Object Linking and Embedding/ActiveX (OLE) support allowing to interact with Windows programs such as the Microsoft Office via the OLEObject.[43] ooSQLite provides an interface to SQLite, an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine.[44] There is also an external library that implements a bidirectional Java bridge, based on the Bean Scripting Framework, called BSF4ooRexx, which allows Java classes to be used in ooRexx programs.[38]
Operating system specific
For Windows, ooRexx includes the OODialog framework allowing to produce Windows dialogs and therefore graphical user interfaces.[45] In addition to OLE support allows the Windows extension to interact with the Windows program manager, the system event log, the clipboard and the registry as well as to query, edit and interact with windows, menus or submenus.[43]
For POSIX-compatible operating systems, the nCurses class library enables the writing of text-based user interfaces using the ncurses programming library.[46] The RxUnixSys library provides functions on most Unix systems for interacting with processes and threads, users and user groups, files and file systems and other.[47]
Halaman ini berisi artikel tentang cendekiawan. Untuk penyair, lihat Antonio Negri (penyair). Antonio NegriLahir1 Agustus 1933 (umur 90)Padua, ItaliaEraFilsafat kontemporerKawasanFilsafat BaratAliranAutonomisme · MarxismeMinat utamaFilsafat politik · Konflik kelas · Globalisasi · Kebersamaan · BiopolitikGagasan pentingFilsafat globalisasi · multitude · Teori imperium · Kekuatan konstituen ·...
Questa voce sugli argomenti monumenti e provincia di Catanzaro è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Fontana Carlo PacinoAutoreMaestri scalpellini locali Data1663 MaterialePietra calcarea UbicazionePiazza Vittorio Emanuele II, Girifalco Coordinate38°49′12.9″N 16°25′31.15″E / 38.82025°N 16.42532°E38.82025; 16.42532Coordinate: 38°49′12.9″N 16°25′31.15″E / 38.82025°N 16.42532°E38.82025; 16....
Non-profit historical society and museum in Park Hill, Oklahoma This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Cherokee Heritage Center – news · newspapers · books · scholar · JSTOR (September 2018) (Learn how and when to remove this template message) Arts and crafts booths on the Cherokee Heritage Center g...
Captura de pantalla de su (Unix) en Linux, esta versión es de util-linux El programa su es una utilidad de los sistemas operativos del tipo Unix que permite usar el intérprete de comandos de otro usuario sin necesidad de cerrar la sesión. Comúnmente se usa para obtener permisos de root para operaciones administrativas, sin tener que salir y reentrar al sistema. Algunos entornos de escritorio, entre ellos GNOME y KDE, tienen programas que piden gráficamente una contraseña antes de permit...
Jorge Ribolzi Ribolzi en un partido con Boca en 1977.Datos personalesNombre completo Jorge Daniel RibolziApodo(s) RusoNacimiento Ramos Mejía, Buenos Aires, Argentina25 de enero de 1953 (70 años)Nacionalidad(es) ArgentinoCarrera deportivaDeporte FútbolClub profesionalDebut deportivo 1972( Atlanta)Posición Mediocampista de creaciónRetirada deportiva 1984( Ferro de General Pico)[editar datos en Wikidata] Jorge Daniel Ribolzi (Ramos Mejía, Provincia de Buenos Aires, Arge...
Aimi TerakawaNama asal寺川 愛美Lahir25 Desember 1991 (umur 31)Kobe, Prefektur Hyōgo, JepangPekerjaan pengisi suara penyanyi Tahun aktif2010–sekarangAgenHibikiTinggi158 cm (5,18 ft)[1]Karier musikGenre J-pop Anison Instrumen Vokal Gitaris Tahun aktif2011–sekarangLabelPony CanyonKing Records (2020–sekarang)Artis terkaitMilky Holmes FeathersPoppin'PartyPeaky P-KeySitus webaimi.info Aimi Terakawa (寺川 愛美, Terakawa Aimi, lahir 25 Desember ...
For the 1984 video game of the same name, see Cutthroats (video game). 1999 video gameCutthroats: Terror on the High SeasDeveloper(s)Hothouse CreationsPublisher(s)Eidos InteractiveComposer(s)Allister BrimblePlatform(s)Microsoft WindowsReleaseNA: September 17, 1999[1]EU: September 30, 1999Genre(s)StrategyMode(s)Single-player Cutthroats: Terror on the High Seas, also known as simply Cutthroats, is a real time strategy game developed by Hothouse Creations and published by Eidos Interacti...
Artikel ini membutuhkan penyuntingan lebih lanjut mengenai tata bahasa, gaya penulisan, hubungan antarparagraf, nada penulisan, atau ejaan. Anda dapat membantu untuk menyuntingnya.Gaya atau nada penulisan artikel ini tidak mengikuti gaya dan nada penulisan ensiklopedis yang diberlakukan di Wikipedia. Bantulah memperbaikinya berdasarkan panduan penulisan artikel. (Pelajari cara dan kapan saatnya untuk menghapus pesan templat ini) Nur Rahman Umar,Abbas sebagai Bupati Kolut 2017-2022Bupati Kolak...
جلادة (محلة) تقسيم إداري البلد اليمن المحافظة محافظة إب المديرية مديرية العدين العزلة عزلة الرضائى القرية قرية الرضائي السكان التعداد السكاني 2004 السكان 32 • الذكور 18 • الإناث 14 • عدد الأسر 6 • عدد المساكن 6 معلومات أخرى التوقيت توقيت اليمن (+3 غرينيتش) تعدي...
Government minister in New South Wales, Australia Minister for Regional Transport and RoadsIncumbentJenny Aitchisonsince 5 April 2023Department of TransportStyleThe HonourableNominatorPremier of New South WalesAppointerGovernor of New South WalesInaugural holderPaul TooleFormation2 April 2019 The Minister for Regional Transport and Roads is a minister in the Government of New South Wales who has responsibilities for the development of road infrastructure and road pricing, and taxi and hi...
Russian legislative constituency Shchyokino single-member constituency Constituency of the Russian State DumaDeputyNoneFederal subjectTula OblastDistrictsArsenyevsky, Belyovsky, Bogoroditsky, Chernsky, Kamensky, Kireyevsky, Kurkinsky, Leninsky, Odoyevsky, Plavsky, Shchyokinsky, Suvorovsky, Tyoplo-Ogaryovsky, Volovsky, YefremovskyVoters468,085 (2003)[1] The Shchyokino constituency (No.177) was a Russian legislative constituency in Tula Oblast in 1993–2007. The constituency covered up...
Эта статья — о стране. Об одноимённом материке см. Австралия (континент). У этого термина существуют и другие значения, см. Австралия (значения). Австралийский Союзангл. Commonwealth of Australia Флаг Герб Гимн: «Advance Australia Fair»«Вперёд, прекрасная Австралия» Австралия на к...
British art historian SirRoy StrongCH, FRSLBorn (1935-08-23) 23 August 1935 (age 88)Winchmore Hill, Middlesex, EnglandAlma materQueen Mary's College, University of London (BA)Warburg Institute (PhD)OccupationArt historianSpouse Julia Trevelyan Oman (m. 1971; died 2003) Sir Roy Colin Strong, CH, FRSL (born 23 August 1935) is an English art historian, museum curator, writer, broadcaster and landscape designer. He has ...
The Ford Iosis. Ford Iosis rear view The Ford Iosis is a four-door, four-seat saloon concept car developed by Ford Europe. It first was shown to the public at the 2005 Frankfurt Motor Show. Along with the Ford SAV (shown earlier that year at the Geneva Auto Show), it was designed to showcase the dynamic new design, the Ford Kinetic Design, direction Ford intends to pursue for the European market.[1] The shape of the concept car has been said to resemble an Aston Martin, featuring clean angles...
German left-wing weekly newspaper For the Pakistani animal theme park, see Jungle World, Rawalpindi. You can help expand this article with text translated from the corresponding article in German. (October 2022) Click [show] for important translation instructions. View a machine-translated version of the German article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the tra...
В Википедии есть статьи о других людях с именем Сигеберт. Сигеберт из Жамблуфр. Sigebert de Gembloux Дата рождения около 1030[1][2][…] Место рождения Жамблу, Намюр[d], Намюр, Валлония, Бельгия Дата смерти 5 октября 1112 Место смерти Жамблу, Намюр[d], Намюр, Валлония, Бельгия Г...
SheikhMohamed El-MokraniBornMohamed El- MokraniDiedMay 5, 1871Kalâa of Ait Abbas, Bejaia, AlgeriaKnown forRevolution Against French Occupation Sheikh Mohamed El-Mokrani (Arabic: الشيخ محمد المقراني; Kabyle: Lḥaǧ Muḥend n Ḥmed n At-Meqqran;[1] d. 1871) was one of the principal leaders of the popular uprising of 1871 against the French occupation of Algeria. Early life Mohamed was a descendant of the rulers of the Kingdom of Ait Abbas,[2] des...
Partick Library in August 2018 Partick Library is a public library at 305 Dumbarton Road in the Glasgow district of Partick.[1] It was built between 1922 and 1926 by the Office of Works. A single storey building, it has a slate roof with skylights. A boundary wall with wrought iron railings surrounds the library, with its entrance marked by stone piers. The interior is noted for its plasterwork, with coving and corniced ceilings.[1] It was opened in 1925. It closed in December...