/*----------------------------------------------------------------------------*/ /* */ /* Copyright (c) 1995, 2004 IBM Corporation. All rights reserved. */ /* Copyright (c) 2005-2023 Rexx Language Association. All rights reserved. */ /* */ /* This program and the accompanying materials are made available under */ /* the terms of the Common Public License v1.0 which accompanies this */ /* distribution. A copy is also available at the following address: */ /* https://www.oorexx.org/license.html */ /* */ /* Redistribution and use in source and binary forms, with or */ /* without modification, are permitted provided that the following */ /* conditions are met: */ /* */ /* Redistributions of source code must retain the above copyright */ /* notice, this list of conditions and the following disclaimer. */ /* Redistributions in binary form must reproduce the above copyright */ /* notice, this list of conditions and the following disclaimer in */ /* the documentation and/or other materials provided with the distribution. */ /* */ /* Neither the name of Rexx Language Association nor the names */ /* of its contributors may be used to endorse or promote products */ /* derived from this software without specific prior written permission. */ /* */ /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ /* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ /* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ /* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ /* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ /* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED */ /* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */ /* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY */ /* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */ /* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */ /* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* */ /*----------------------------------------------------------------------------*/ README Sample Programs --------------- To help you exploring programming in Open Object Rexx, the following sample programs are provided (with source code): - arithmeticEvaluation.rex an expression evaluator that builds a parse tree - arrayCallback.rex perform a function over all elements in an array. - ccreply.rex concurrent program using REPLY - complex.cls complex number class - concurrency.rex demonstrate multi-threaded execution with syncronization - constrained.rex Show how to use the isA method to check object types - delegation.rex Show the concept of object method delegation - dynamicMethod.rex methods dynamically added to an object instance - factor.rex factorial program - getOoRexxDocs.rex downloads the ooRexx documentation from SourceForge - greply.rex concurrent program using WAIT and NOWAIT - guess.rex a guessing game - interface.rex define an interface class in ooRexx - ktguard.rex concurrent program using START and GUARD - makestring.rex program that uses makestring method - month.rex displays days of the month of January - native.api folder with examples using the C++ native APIs - philfork.rex a console version of the Philosophers' Forks - pipe.cls a pipeline implementation - properties.rex an example of the Properties class - qdate.rex date query program - qtime.rex time query program - readme.txt this file - rexxcps.rex measuring REXX clauses/second - scclient.rex simple socket client that uses the socket class - scserver.rex simple socket server that uses the socket class - semcls.cls semaphore class, see sections 12.4.4.1, 8.11 and 8.12 in rexxref for further information - sfclient.rex simple socket client that uses the socket function package - sfserver.rex simple socket server that uses the socket function package - singleLinkedList.rex a linked list using objects - singleton.cls implements a singleton class - sortComposite.rex sorting non-string objects - stack.rex a program that uses a stack class - synchronousConcurrency.rex work queue to synchronize activity between threads - timezone.rex performing timezone manipulations. - treeDirectory.cls directory implementation using a balanced binary tree - treeTraversal.rex build a binary tree and demonstrate traversal - usecomp.rex program that uses complex.cls - usepipe.rex program that uses pipe.cls - usesingleton.rex program that uses singleton.cls - usetree.rex show that a treeDirectory is polymorphic with a built-in directory These programs are executable without any change on all supported platforms.