RUSH(ID:273/rus001)Interactive Dialect of PL/IRemote Use of Shared Hardware. Allen-Babcock Corp, 1965. Interactive dialect of PL/I Related languages
References: in ACM-sponsored PL/I Forum, Aug., 1967, Washington, D.C. view details in ACM-sponsored PL/I Forum, Aug., 1967, Washington, D.C. view details in Computers & Automation 16(6) June 1967 view details in Computers & Automation 16(6) June 1967 view details Introduction RUSH is a PL/I dialect developed by Allen-Babcock Computing for use in a large interactive timesharing system. The system has been implemented on an IBM 360/50 and is serving some 60 users throughout the United States. RUSH is a true subset of PL/I with the exception of two language elements and several implementation oriented conventions. The rationale used in selecting the RUSH subset and reasons for deviating from PL/I are the principal topics of this paper. RUSH has two components a program construction (collect mode) language, and a command (direct mode) language. The presence of a line number as the first syntactical element classifies a statement as collect mode. Collected statements are kept internally in statement number order, and they comprise the program being developed. Direct mode statements are not prefixed by a line number since they are executed immediately and then discarded. The collect mode language is a faithful subset of PL/I since it is in the area of program construction that language compatibility has some meaning. Many of the direct statements have no PL/I counterpart. Because of this, and since direct statements are not retained, PL/I compatibility is not an issue. An effort has been made, however, to maintain a "PL/I-like" flavor in all elements of the language. For the past year, RUSH has been used for a wide variety of business and scientific applications. Although it lacks many elements of full PL/I, it is proving itself daily as a flexible, powerful language for problem definition and solution. Finally, the STRING option is provided in conjunction with GET EDIT and PUT IMAGE statements so that core-to-core data conversions may be performed. Future effort in input/output will be directed toward completing the present input/output processors, and toward extending the subset to include the FILE option. Consideration is being given to data-directed input and output because of its simplicity from a users point of view. Extract: Multi-Task Operation Multi-Task Operation There are no plans to include task-oriented facilities in the RUSH subset. Although multi-processing is the essence of RUSH itself, resources are shared across many users rather than along a single user's job stream. While task-oriented language elements might provide additional capability in some RUSH applications, they are relatively unimportant compared to other needed extensions. Extract: Compile-Time Facilities Compile-Time Facilities None of the PL/I Compile-Time facilities are included in the RUSH subset, and there are not plans to include them in the near future. However, a new RUSH capability is being field-tested which provides the equivalent of the Compile-Time facility, along with a great deal more generality. The added RUSH facilities are based upon specification of any dataset or character string as input to the RUSH system. Given this ability, one can write RUSH programs which produce other RUSH programs (generators), RUSH programs which modify themselves, or programs which include prewritten sequences of statements (the % INCLUDE capability of PL/I). Extract: List Processing List Processing The RUSH subset does not contain any list-oriented elements of PL/I. Their absence is almost poetic, since the RUSH system is heavily oriented toward lists. As a matter of fact, every RUSH program is represented internally as a series of chained lists, and special hardware modifications were made to expedite list processing. in PL/I Bulletin, Issue 6, March 1968 view details in PL/I Bulletin, Issue 6, March 1968 view details in PL/I Bulletin, Issue 6, March 1968 view details This report summarizes all data collected in a survey of implementations of the PL/I language. An attempt was made to contact all people or groups known or rumored to be undertaking such a project. A fairly lengthy questionnaire was mailed out when a prospect was identified, beginning in August, 1967. The latest response was received in August, 1968. As is the case in most such efforts, it is likely that some projects were overlooked. In other instances, our attempts to contact people were met with no response at all, neither confirming nor denying the existence of the implementation involved. There were also a few cases in which one or more implementations did indeed exist; but their nature was proprietary and, therefore, the questionnaire was not completed. An in two cases, the individual contacted replied by stating that the supposed implementation had never existed. Only in the latter cases is the attempt at contact not included in the overall summary table. The data are summarized in four tables. The first contains the basic identification of all attempted contacts and the resulting response. The second table summarizes all questionnaires returned with respect to implementation data. The third and fourth tables relate responses to questions about the PL/I language and the dialect implemented. Responses from three questionnaires are excluded from these tables since, in the author's opinion, the dialects are more closely related to languages other than PL/I, itself. The third table summarizes restrictions found in the various dialects, while the fourth lists the extensions found in one or more dialects. This report suffers from the fact that the questions were somewhat general (e. g. , "Which features have you implemented in a manner at variance with C28-6571 -4? "), and the responses, therefore, reflect the interpretation imposed by the responder. An attempt has been made to normalize these aspects of the data, but it is clear that the result is far from ideal. in PL/I Bulletin, Issue 6, March 1968 view details A version of the system called RUSH (Remote Use of Shared Hardware) was the basis of a commercial time-sharing service offered by the AlienBabcock Corporation, while the system in use by IBM was called CPS. Starting from the same base, the two systems added different facilities. CPS was released as a Type III system in September 1967. (A Type III program is one issued by the authors or developers as individuals and is not part of IBM's regularly delivered software.) A ?one-page" summary of its commands is shown in Figure IV-16. (It requires only one physical page in the 8½" x 11" source manual) The character set consists of the 26 upper- and lower-case letters, the 10 digits, the 3 special characters, $, @, and # (which together with the letters and digits are called alphameric), and the following 21 symbols: + - * / ( ) = > < . , ? : ; % {} & | _ ? blank in PL/I Bulletin, Issue 6, March 1968 view details [321 programming languages with indication of the computer manufacturers, on whose machinery the appropriate languages are used to know. Register of the 74 computer companies; Sequence of the programming languages after the number of manufacturing firms, on whose plants the language is implemented; Sequence of the manufacturing firms after the number of used programming languages.] in PL/I Bulletin, Issue 6, March 1968 view details in Computers & Automation 21(6B), 30 Aug 1972 view details in ACM Computing Reviews 15(04) April 1974 view details The exact number of all the programming languages still in use, and those which are no longer used, is unknown. Zemanek calls the abundance of programming languages and their many dialects a "language Babel". When a new programming language is developed, only its name is known at first and it takes a while before publications about it appear. For some languages, the only relevant literature stays inside the individual companies; some are reported on in papers and magazines; and only a few, such as ALGOL, BASIC, COBOL, FORTRAN, and PL/1, become known to a wider public through various text- and handbooks. The situation surrounding the application of these languages in many computer centers is a similar one. There are differing opinions on the concept "programming languages". What is called a programming language by some may be termed a program, a processor, or a generator by others. Since there are no sharp borderlines in the field of programming languages, works were considered here which deal with machine languages, assemblers, autocoders, syntax and compilers, processors and generators, as well as with general higher programming languages. The bibliography contains some 2,700 titles of books, magazines and essays for around 300 programming languages. However, as shown by the "Overview of Existing Programming Languages", there are more than 300 such languages. The "Overview" lists a total of 676 programming languages, but this is certainly incomplete. One author ' has already announced the "next 700 programming languages"; it is to be hoped the many users may be spared such a great variety for reasons of compatibility. The graphic representations (illustrations 1 & 2) show the development and proportion of the most widely-used programming languages, as measured by the number of publications listed here and by the number of computer manufacturers and software firms who have implemented the language in question. The illustrations show FORTRAN to be in the lead at the present time. PL/1 is advancing rapidly, although PL/1 compilers are not yet seen very often outside of IBM. Some experts believe PL/1 will replace even the widely-used languages such as FORTRAN, COBOL, and ALGOL.4) If this does occur, it will surely take some time - as shown by the chronological diagram (illustration 2) . It would be desirable from the user's point of view to reduce this language confusion down to the most advantageous languages. Those languages still maintained should incorporate the special facets and advantages of the otherwise superfluous languages. Obviously such demands are not in the interests of computer production firms, especially when one considers that a FORTRAN program can be executed on nearly all third-generation computers. The titles in this bibliography are organized alphabetically according to programming language, and within a language chronologically and again alphabetically within a given year. Preceding the first programming language in the alphabet, literature is listed on several languages, as are general papers on programming languages and on the theory of formal languages (AAA). As far as possible, the most of titles are based on autopsy. However, the bibliographical description of sone titles will not satisfy bibliography-documentation demands, since they are based on inaccurate information in various sources. Translation titles whose original titles could not be found through bibliographical research were not included. ' In view of the fact that nany libraries do not have the quoted papers, all magazine essays should have been listed with the volume, the year, issue number and the complete number of pages (e.g. pp. 721-783), so that interlibrary loans could take place with fast reader service. Unfortunately, these data were not always found. It is hoped that this bibliography will help the electronic data processing expert, and those who wish to select the appropriate programming language from the many available, to find a way through the language Babel. We wish to offer special thanks to Mr. Klaus G. Saur and the staff of Verlag Dokumentation for their publishing work. Graz / Austria, May, 1973 in ACM Computing Reviews 15(04) April 1974 view details in ACM Computing Reviews 15(04) April 1974 view details |