JOSS(ID:200/jos002)JOHNNIAC Open Shop Systemfor JOHNNIAC Open Shop System. Cliff Shaw, RAND Corporation: design 1960-1963; operational May 1963 The first conversational programming system, part of the Information Processor project by Ellis, Shaw, Newell, Uncapher, and Nehama. JOSS was more than a language, as the name suggests, it was a system. The aim of the IP project was: "To devise an information processing system capable of getting along on its own - it must handle its own problems of programming, bookkeeping, communication and coordination with its users. It must appear to its users as a single, Integrated personality. It must be able to assist in devising the method of solution of problems and not merely solve them." Such luminaries as Kay, Nelson and Gruenberger have singled JOSS out as the first every user-directed system, something which Newell placed firmly as part of Shaw's vision: "...the concepts of Joss are pure Cliff, and express attitudes and technical ideals that he has nurtured since long before I got to know him [ie 1954]" From [] "JOSS, the JOHNNIAC Open-Shop System, is a conversational time-sharing system developed at the Rand Corporation to demonstrate, on a small scale, the value of time-sharing and easy access to computing power for the nonprogrammer. In three computer implementations from May 1963 to the 198Os, JOSS has provided an English-like language that is easy to learn and use by trial and error at a terminal. Thus this earliest of simple on-line systems has enabled the computer novice to explore to advantage many small computational problems that might not be worth the effort in another computing environment." Features array calculations, and executabler objects in the form of steps and parts which are numbered. People: Hardware:
Structures: Related languages
References: in [AFIPS JCC 26] Proceedings of the 1964 Fall Joint Computer Conference FJCC 1964 view details in [AFIPS JCC 26] Proceedings of the 1964 Fall Joint Computer Conference FJCC 1964 view details in Kalenich W.A. (ed), Proceedings IFIP Congress (New York, May 24-29, 1965), Spartan Books, New York, 1965. view details in Kalenich W.A. (ed), Proceedings IFIP Congress (New York, May 24-29, 1965), Spartan Books, New York, 1965. view details in Kalenich W.A. (ed), Proceedings IFIP Congress (New York, May 24-29, 1965), Spartan Books, New York, 1965. view details in [ACM] CACM 9(03) March 1966 includes proceedings of the ACM Programming Languages and Pragmatics Conference, San Dimas, California, August 1965 view details General philosophy AMTRAN is a multi-level language. It can be used by the Systems programmer at the level of bit manipulation or by the applied mathematician with no prior knowledge of computing, or by practitioners at any intermediate level. The system can be used in an on-line, conversational mode or in an off-line, batch-processing mode or in any combination of the two. The keyboards, cathode ray scopes and typewriters provide low-cost adjuncts to the usual card, printer, tape, and plotter attachments. Three objectives have been of primary importance in the development of the AMTRAN system. First, a scientist or an engineer with no background in computer techniques should be able to solve relatively straightforward mathematical problems with little or no instruction in the use of the AMTRAN system. For this purpose, the system has standard "convenience" operators in the language of classical mathematics, such as F, d/dx mini-max, etc., which suffice for a large fraction of the problems commonly encountered by the scientist or engineer. Also, the AMTRAN language has been considerably streamlined to permit the user to "converse" with the computer in the natural language of mathematics. For example, the system provides automatic array arithmetic, automatic dynamic dimensioning of arrays, no declaration of variables, automatic assignment of working storage, implied multiplication, natural-English input and output, "picture" formatting, and other adjuncts to natural mathematics. Second, the programmer and the more experienced user'should be provided with the capability to construct their own programs and operators at the keyboard so that they can handle problems for which the standard set of operators is inadequate and so that they can take advantage of the extremely short turnaround times which are characteristic of conversation-mode programming. This requirement has been met by including algol 60 programming capabilities with certain programming extensions?e.g., high- level logical and transfer instructions, extensive list-processing and symbol manipulation capabilities, graphical input and output instructions, etc. Perhaps the most important feature is a simplified procedure-and-operator generation arrangement which permits the construction from the keyboard of general-purpose "super-instructions." These can then be stored in a disc-file library. This means that the programmer is not restricted to 30 to 40 basic FORTRAN-level instructions, but can, in effect, draw upon a repertoire of hundreds or thousands of general-purpose mathematical and logical procedures as building blocks for his programs. Third, the system must be economically competitive with batch-processing systems in speed and storage. This requirement will be met through an incremental compiler. Extract: Conclusion Conclusion An effort has been made in the development of AMTRAN to develop a broad-based programming system which spans the spectrum from a streamlined machine language for the professional programmer to the highest level mathematical operations (for the scientist or engineer). In addition to the writing of an incremental compiler, future plans call for effort in the areas of symbol manipulation, automatic numerical analysis, and the introduction of new simplified basic programming operations. It is hoped that these improvements, particularly in the symbol manipulation area, will improve the programming checkout and debugging rates beyond their present values. Turnaround times are presently running 5% to 10% of the batch processing rates. An interesting result of our demonstrations has been the response of scientists and engineers to the system. The reaction is invariably "Where can I get one of these?". There is no doubt that a market exists for a conversational-mode computer system which speaks the natural language of. mathematics as nearly as possible, and which relieves the user of all those programming and analytical bookkeeping operations which can be prescribed in "cook-book" terms. Of course, incorporating the procedures of classical and numerical analysis into an on-line computer system is a formidable task. Nevertheless, we hope AMTRAN will provide a first step toward everyday use of an automatic mathematical system for on-line computation. Extract: Other conversational mode systems Other conversational mode systems The basic inspiration for AMTRAN was the Thompson-Ramo-Wooldridge on-line computer system originated by G. J. Culler and B. D. Fried and later extended by Culler at the Univ. of California (Santa Barbara). The Culler-Fried system utilizes a 5-inch Tektronix storage scope, a typewriter keyboard, and another typewriter keyboard with specially-labeled operator keys. The system possesses the ability to handle complex numbers, two-dimensional arrays, vectors and matrices. It is designed to permit the console programming of operators or instructions and it also provides array arithmetic. It is very fast in execution. Although there are similarities between AMTRAN and the Culler-Fried systems, there are also sizable differences. Another early conversational mode system consists of the RAND Corporations highly-polished JOSS system, which has formed the basis for the Burroughs INTERP system and the SDS CAL language. Four more recent conversational mode languages are quiktran (ibm's conversational-mode fortran system), and the MAP, Reckoner, and COGO systems. The Reckoner and MAP systems are quite similar to AMTRAN in their provision of a streamlined, applied-mathematics language for scientists and engineers. The COGO system is a problem-oriented language designed to accommodate civil engineering problems. Two on-line batch-processing systems which use special high-speed compilers consist of the Klerer-May system and Dartmouth's BASIC language. The Klerer-May system is particularly strong in its emphasis upon natural mathematical formatting of its input and output. General Electric has implemented BASIC on a commercial basis. AMTRAN differs from the preceding systems in various ways. It has been given certain features intended to facilitate future research in applied mathematics. It should be emphasized that AMTRAN is a full-scale ALGOL-type programming system and not a simplified language designed only for small computations or for a narrow range of problems. Two restricted versions of AMTRAN are presently available which can be used on any IBM 1620 computer with floating point hardware and indirect addressing capabilities. One version is intended for 1620's with 40,000 digits of core storage while the other is designed for 60,000 digit machines. No special equipment is needed except for the usual console typewriter and a card-reader punch. Copies of these 1620 programs are available from the authors upon request. Although these restricted versions are designed for small core machines, they possess considerable power. Virtually all of the capabilities of the 1620 version of fortran ii are present, in addition to automatic array arithmetic multi-level programming of operators, rudimentary symbol manipulation capability, the Algol IF test, subscripted subscripts, and above all, the ability to deal with straightforward problems at approximately. the level of classical mathematical analysis. Through an encoding arrangement, this system can store up to 50 console programs or subroutines and can accommodate matrices or two-dimensional arrays up to 25 x 25. (When small desk-top computers become economically feasible, a 4-8,000 word edition of AMTRAN could combine the mathematical power of a digital computer with the simplicity and convenience of a slide rule.) A more elaborate system utilizing one of the special terminals -described in this article has been implemented on IBM 1620 mod II computer with a disc file. Although the writers have had very favorable experience with keyboards and visual displays, considerable effort has been expended in rendering AMTRAN compatible with typewriter and teletype input and output, since the latter are cheaper than full-scale AMTRAN terminals. An extended version written in Algol 60 is currently under development in collaboration with the Burroughs Corporation. This time-sharing AMTRAN incremental-compiler will act like a single program in the multi-processing B5000 or the faster (800-nanosecond cycle time) B6000 computers. Finally, the Brown Engineering Co. is presently developing an AMTRAN incremental compiler for the IBM 1130 computer. Extract: Hardware Configuration Hardware Configuration As previously mentioned, a typical AMTRAN terminal consists of a large keyboard, one or two cathode ray scopes, a Polaroid camera for the scopes, and a special Selectric typewriter. A stylus or "electric pencil" will soon be available to enter graphical information to the computer. The keyboard has two classes of buttons: labeled buttons which are permanently programmed and unlabeled buttons which are "programmable" by the operator. Sufficient space is provided around the unlabeled pushbuttons so that the user may label them as he wishes on paper overlays provided- for this purpose. Since the number of pushbuttons is necessarily limited, they are used primarily for the more common functions and operators, such as the +, sin, and repeat operators, while mnemonic codes are used to call less commonly used operations such as the error function, or the Newton-Raphson method for solving differential equations. Since the typewriter is used to call a great majority of operations, the question arises: Why use the keyboard at all? Briefly, when a typewriter is used to enter mathematical equations, entry becomes quite slow and prone to error. A conflict seems to arise in the user between the consideration of the problem and the mechanics of typing. On the other hand, the keyboard is relatively inexpensive, permits considerably faster entry than the typewriter, and provides important software advantages because it enters binary codes directly into the computer, bypassing the label-decoding process. Also, a special keyboard is quite desirable for certain special operations, such as those dealing with graphical displays. Most of the people who have used AMTRAN so far have preferred the keyboard-typewriter combination to the typewriter alone. Nevertheless a typewriter can be used in lieu of the keyboard at some reduction in performance. Because of the large number of buttons and instructions associated with the keyboard, a full set of instructions has been stored on the disc file and the user may display them any time. A general instructions button has been provided on the keyboard to elicit a display of general instructions on the cathode ray scope and get the user'started. Thereafter, the user can get specific instructions regarding the use of any particular button by pressing the turn page button, followed by the button in question. Thus, the system can explain itself in a self-teaching fashion to the novice user. The typewriter, used to provide a permanent record of the program, has an 88-character set, which includes most of the Greek alphabet and a large complement of mathematical symbols (Fig. 2). The complete AMTRAN typewriter unit currently under development will have the ability to index the roller upward or downward independent of the carriage return so that mathematical equations may be typed out in the format in which they appear in a mathematics textbook. The typewriter is also used to type out data and results (augmented by the line printer) and, in addition, can serve as a plotter. The reverse indexing feature makes it possible for the typewriter to plot and label a curve in 30-40 seconds. The stations used by the authors incorporate two scopes so that one scope can present alphanumeric information while the other retains "blackboard" graphical displays. The alphanumeric scope is used to print out instructions and error messages, and while it does not provide hard copy as does the typewriter, its writing speed is much greater. Therefore, it may be used to compose segments of the user's program before entry into the computer. Once the input has been checked, it is released to the computer, at which point a type-out occurs. This rapid writing rate has afforded unexpected benefits in the rapid printing or alphanumeric information in comparison to the slow typewriter. The 5-inch Tektronix storage scopes used for this purpose are inexpensive, afford high resolution, and require no internal buffering; consequently, they can be operated over ordinary voice-grade telephone circuits. (An improved 11-inch scope will be available early next year.) The attached Polaroid camera provides excellent high-contrast photos of the data displayed on the scope face. It would also be possible to employ an on-line plotter which would be shared by several stations. The plotter would provide accurate hard copy plots of any desired data AMTRAN software can be implemented on almost scientific computer of any reasonable size and speed, old or new. in Datamation 12(10) Oct 1966 view details in Datamation 12(10) Oct 1966 view details in Datamation 12(10) Oct 1966 view details in [AFIPS] Proceedings of the 1967 Fall Joint Computer Conference FJCC 31 view details The situation normally faced by the designer of a system is that he has a set of distinct facilities ? such as languages, editors, debuggers, timing packages, and cross-reference programs. Each of these is created with a separate set of linguistic and interactive conventions. There is integration only at the level of the underlying operating system, seen by the user-designer as a single uniform command language. On the other hand, general interactive systems from JOSS (Shaw 1965) onward have adopted the other position by integrating all the facilities with the main language system. LISP, APL and l-* belong in this latter category, along with a less well-known system called LCC (Perlis, Mitchell, and VanZoeren 1965). Though at heart a JOSS-like system, LCC has many of the features of a standard HLL, and thus represents 3 rather unique marriage of HLL constructs with the philosophy of complete integration. in [AFIPS] Proceedings of the 1967 Fall Joint Computer Conference FJCC 31 view details in Orr, William (ed) "Conversational Computing", 1968 view details in Orr, William (ed) "Conversational Computing", 1968 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] ACM Computing Surveys (CSUR) 6(3) September 1974 view details in SIGPLAN Notices 14(04) April 1979 including The first ACM SIGPLAN conference on History of programming languages (HOPL) Los Angeles, CA, June 1-3, 1978 view details in SIGPLAN Notices 14(04) April 1979 including The first ACM SIGPLAN conference on History of programming languages (HOPL) Los Angeles, CA, June 1-3, 1978 view details in Annals of the History of Computing, July 1979 view details HOPL conference end banquet excerpts.(Videotapes) ACM SIGPLAN history of programming languages conference. (Los Angeles, June 1-3, 1978). [ See also Revs. 39,078 and 39,079. ] The ACM-SIGPLAN History of Programming Languages Conference held in Los Angeles on June 1-3, 1978, was videotaped and excerpts of the presentations are available on two tapes; these and two tapes from the banquet provide brief but penetrating glimpses of the people most involved in the development of the 13 languages covered. At the conference and in the proceedings these leading formulators of the history of programming languages describe how their language was developed -- the historical setting of the work and how and why decisions were made. The videotape excerpts provide a summary of these descriptions. After introductory remarks, Jean Sammet, the Conference and Program Committee Chairman, introduces the keynote speaker and "the third programmer of the first large scale digital computer, Mark I," Capt. Grace Hopper of the US Navy. Capt. Hopper describes the very early history -- combining personal recollections and technical observations. It is an excellent historical talk, precisely establishing the milieu existing in the 1940s and early 50s, when the concept of using a computer to create programs was just emerging. The FORTRAN presentation by John Backus emphasizes the importance of object efficiency for FORTRAN acceptance. He states that language design was never considered a problem; the real problem was to consistently produce object programs as efficient as hand-coded ones. The presentation captures the clear and unwavering focus of Backus's original team on that goal: a focus and dedication which characterized the direction of one of the most significant software projects in the history of computers. The controversies in the committee designing ALGOL 60 are re-enacted in miniature on these tapes. Alan Perlis describes the American contributions, concluding that ALGOL has Influenced all languages since that time. "It's the mother's milk of us all." Peter Naur describes the European contributions and the origins of recursion in the language. A lively floor discussion involving John McCarthy, John Backus, and Fritz Bauer ensues. The Algol 60 committee got involved in "academic log rolling" according to McCarthy who also points out that the committee decision not to consider implementation led to a language which was not implementable as a whole. It was assumed that "everyone was a gentleman and none would propose something he didn't know how to implement. However there was no guarantee the combination was implementable." The excerpt on the LISP lecture by John McCarthy emphasizes the features of the language and is an excellent description of its intellectual sources. Jean Sammet in presenting COBOL also clearly defines the influences on the language and how and why the choices were made in a series of committee meetings. These choices were very much colored by the decision to take "a short range composite approach good for at least a year or two." The tapes show how differently some of these important languages developed. According to Douglas Ross, APT evolved out of application requirements; by contrast, the major features of JOVIAL were developed in a few minutes, relates Jules Schwartz, its sole designer. Geoffrey Gordon tells how GPSS also grew from feedback from application users. SIMULA, developed by Kristen Nygaard and Ole-Johan Dahl, didn't even start as a programming language. Charles Baker discusses the development of JOSS, and Thomas Kurtz, BASIC -- intended to make learning to program analogous to learning to drive a car: by doing it. PL/I was the largest language represented at the conference. According to presenter, George Radin, much of the complexity and size is due to the necessity of defining the result of all operations on mixed types and to implicit typing. The excerpts of the presentations on SNOBOL by Ralph Griswold and APL by Kenneth Iverson establish the specific motivations for those languages: in both cases conserving human resources was considered very important. The conference banquet tapes contain anecdotes by the conference speakers and by master of ceremonies Bernard Galler. These entertaining historical asides and footnotes sometimes give more insight into the how and why things happened than the more scholarly analyses. For example, George Radin's story about the PL/I committee's ordering pizza -- the pizza had everything anyone wanted -- says a great deal about how the committee functioned when designing the language. These tapes constitute an important historical record. Unfortunately, the quality of the tapes is less than desired. They were not professionally produced and the picture quality is often quite poor. Still-photos by Robert McClure and Richard Wexelblat are used where the videotape is inadequate. However, the excerpts have been well selected by J.A.N. Lee, Jean Sammet, and Henry Tropp. In his summary Fred Brooks says that "the best thing about this conference is the character set." He also points out that the presentations on the languages designed by a committee emphasized the process, whereas the presentations on single-author languages emphasized technical issues. These tapes capture the factors that have made the history: the personalities, the process, and the technology. They are interesting now and will be invaluable to future historians of the pioneering period of language development. in ACM Computing Reviews March 1982 view details After introductory remarks, Jean Sammet, the Conference and Program Committee Chairman, introduces the keynote speaker and "the third programmer of the first large scale digital computer, Mark I," Capt. Grace Hopper of the US Navy. Capt. Hopper describes the very early history -- combining personal recollections and technical observations. It is an excellent historical talk, precisely establishing the milieu existing in the 1940s and early 50s, when the concept of using a computer to create programs was just emerging. The FORTRAN presentation by John Backus emphasizes the importance of object efficiency for FORTRAN acceptance. He states that language design was never considered a problem; the real problem was to consistently produce object programs as efficient as hand-coded ones. The presentation captures the clear and unwavering focus of Backus's original team on that goal: a focus and dedication which characterized the direction of one of the most significant software projects in the history of computers. The controversies in the committee designing ALGOL 60 are re-enacted in miniature on these tapes. Alan Perlis describes the American contributions, concluding that ALGOL has Influenced all languages since that time. "It's the mother's milk of us all." Peter Naur describes the European contributions and the origins of recursion in the language. A lively floor discussion involving John McCarthy, John Backus, and Fritz Bauer ensues. The Algol 60 committee got involved in "academic log rolling" according to McCarthy who also points out that the committee decision not to consider implementation led to a language which was not implementable as a whole. It was assumed that "everyone was a gentleman and none would propose something he didn't know how to implement. However there was no guarantee the combination was implementable." The excerpt on the LISP lecture by John McCarthy emphasizes the features of the language and is an excellent description of its intellectual sources. Jean Sammet in presenting COBOL also clearly defines the influences on the language and how and why the choices were made in a series of committee meetings. These choices were very much colored by the decision to take "a short range composite approach good for at least a year or two." The tapes show how differently some of these important languages developed. According to Douglas Ross, APT evolved out of application requirements; by contrast, the major features of JOVIAL were developed in a few minutes, relates Jules Schwartz, its sole designer. Geoffrey Gordon tells how GPSS also grew from feedback from application users. SIMULA, developed by Kristen Nygaard and Ole-Johan Dahl, didn't even start as a programming language. Charles Baker discusses the development of JOSS, and Thomas Kurtz, BASIC -- intended to make learning to program analogous to learning to drive a car: by doing it. PL/I was the largest language represented at the conference. According to presenter, George Radin, much of the complexity and size is due to the necessity of defining the result of all operations on mixed types and to implicit typing. The excerpts of the presentations on SNOBOL by Ralph Griswold and APL by Kenneth Iverson establish the specific motivations for those languages: in both cases conserving human resources was considered very important. The conference banquet tapes contain anecdotes by the conference speakers and by master of ceremonies Bernard Galler. These entertaining historical asides and footnotes sometimes give more insight into the how and why things happened than the more scholarly analyses. For example, George Radin's story about the PL/I committee's ordering pizza -- the pizza had everything anyone wanted -- says a great deal about how the committee functioned when designing the language. These tapes constitute an important historical record. Unfortunately, the quality of the tapes is less than desired. They were not professionally produced and the picture quality is often quite poor. Still-photos by Robert McClure and Richard Wexelblat are used where the videotape is inadequate. However, the excerpts have been well selected by J.A.N. Lee, Jean Sammet, and Henry Tropp. In his summary Fred Brooks says that "the best thing about this conference is the character set." He also points out that the presentations on the languages designed by a committee emphasized the process, whereas the presentations on single-author languages emphasized technical issues. These tapes capture the factors that have made the history: the personalities, the process, and the technology. They are interesting now and will be invaluable to future historians of the pioneering period of language development. in ACM Computing Reviews March 1982 view details It is a difficult book to review adequately. One must ask if it conveys the same message to that vast majority of information processing specialists who were not in the business at the time of the events recounted as it does to those of us who played an active role in some of the developments as they happened. Judicious inquiry of younger readers of the book suggests that rather more of the informal flavor comes through than one might suspect at first. In that sense the book "tells it like it was," although some of the text makes it quite clear that programming language designers have the same kind of selective and prismatic memories that other people have. The plan of the book is straightforward. Thirteen specific languages were selected by the conference organizers, and the book contains, for each language: a formal paper; a transcript of the presentation; a transcript of remarks by a designated discussant; a transcript of a subsequent question and answer session; the full text of all questions submitted; a biography of the authors. In addition there is the full text of the Keynote Address presented by Captain Grace Murray Hopper, itself required reading, and a series of appendices, including summaries of each language. As stated in the introductory material on the organization of the conference, the criteria for selection of the languages to be included were: "that the languages 1) were created and in use by 1967; 2) remain in use in 1977; and 3) have had considerable influence on the field of computing." The 1967 cutoff was to insure at least ten years perspective. The result of applying these criteria was: ALGOL 60 APL APT BASIC COBOL FORTRAN GPSS JOSS JOVIAL LISP PL/I SIMULA SNOBOL This general review cannot pursue the specific language chapters; that is a task for individual reviews elsewhere in CR. Some overall comments are in order, however. The formal papers are not simply personal recollections of the authors. An organized procedure was established to guide each author in preparing an account according to established historical practice, thus maximizing the archival value of the papers. It appears to have worked, for the authors systematically -- and in some cases, apparently, painfully -- searched for old records, letters, and memoranda. The vignettes that surface therefrom are fascinating. No one should be surprised that the accounts of the camel (designed by committee) languages, ALGOL 60 and COBOL, have a somewhat different flavor from the others. There is a gold mine for students of decision making processes in this book. The conference organizers are to be commended for providing two accounts of ALGOL 60, one from the American and one from the European point of view. The contrasting perceptions and the almost recursive discussion are both intriguing and delightful. This reviewer's one regret is that it was impossible to capture and document the conversations that occurred over the coffee cups and in the corridors. In summary, this is a superb book, a must for all computer professionals. It is also one of the very few records of a conference of any sort where the reader gets a feeling for what it was like to actually be there. This reviewer was there and reading this book almost four years after the conference brought back delightful memories with preternatural clarity. in ACM Computing Reviews March 1982 view details The particular interests of the authors show in the variety of organization and emphasis found in the papers. John Backus describes the background of the FORTRAN project, some of the design decisions, the documentation and implementation. Alan Perlis emphasizes the many people involved in the ALGOL design, from before 1958, through the Zurich and Paris meetings, culminating in ALGOL 60. Peter Naur concentrates on the design decisions made between the Zurich and Paris meetings. The disagreements which surface in appendices to his paper make for fascinating reading. Kristen Nygaard describes the many changes which the design of SIMULA went through from 1961 through 1971, from SIMULA I to SIMULA 67. The book is not a dry history -- many statements seem particularly surprising in hindsight. John Backus says of FORTRAN, "As far as we were aware, we simply made up the language as we went along. We did not regard language design as a difficult problem, merely a simple prelude to the real work of designing a compiler which could produce efficient programs." Jean Sammet stresses with regard to COBOL, "We were going to recommend a short range composite approach good for at least the next year or two." The history of the technical decisions is particularly well researched and presented. Many ideas were taken directly from other languages, such as the separation of the data description and executable statements in COBOL, deriving from FLOW-MATIC. Some seemed to occur almost casually, such as Thomas Kurtz commenting on the design of BASIC, "Around 1960 or 1961, after a visit to the PDP-1 time-shared computer at MIT, I can clearly recall John McCarthy saying, 'Why don't you guys do time sharing?' Shortly afterward I said to Kemeny, 'I think we ought to do time sharing.' Kemeny responded, 'OK.' And that was that!" Other decisions stemmed from deadlocks, as Alan Perlis described, when a European member of the ALGOL committee declared "No! I will never use a period for a decimal point." The proposal from Joseph Wegstein for three levels of language calmed the situation. The ALGOL paper and appendices by Peter Naur present different views of the same experience. Even a project consisting of only two people can produce its share of excitement. Kristen Nygaard describes the shock of a switchboard operator at overhearing a violent argument between two men in a hallway. She was reassured that it was just Dahl and Nygaard discussing SIMULA. One thing which emerges from many of the papers is the deep involvement which a language design can elicit from its designers. John Backus and Jean Sammet both describe many late, long hours. But this book is not just a series of papers by knowledgeable authors. It is itself a history of the History of Programming Languages Conference held in Los Angeles in 1978. Jean Sammet, the General Chairman, describes how the conference was put together. There are many valuable ideas here for potential conference organizers. The Conference Historian, Henry Tropp, provides a historical perspective and suggests archiving of design papers. The keynote address is by Grace Hopper. Its transcript captures the qualities of innovation and humor which make her talks such an experience. The author talks are based on the papers, so there is much redundancy of material. The main value to be gained by the duplication is the opportunity to discover the human side of the authors, which comes out in the more informal relation to the audience. Jean Sammet brings down the house with her lament that students are not given more than a passing exposure to COBOL before they receive their degrees in computer science. The question and answer sessions were often as interesting as the talks. The book gives John Backus's answer to the question why the letters I through N were chosen to designate integers. The readability of these sections attest to the effort which Richard Wexelblat put into the editing of this volume. The History of Languages represents a tremendous amount of effort from a great many people, and is a book which programmers as well as language designers will find both instructive and enjoyable. in ACM Computing Reviews March 1982 view details The first generation of computers were programed in machine language, typically by binary digits punched into a paper tape. Activity in higher-level programming was found on both the large-scale machine and on the smaller commercial drum computers. High-level programming languages have their roots in the mundane. A pressing problem for users of drum computers was placing the program and data on the drum in a way that minimized the waiting time for the computer to fetch them. It did not take long to realize that the computer could perform the necessary calculations to minimize the so called latency, and out of these routines grew the first rudimentary compilers and interpreters. Indeed, nearly every drum or delay line computer had at least one optimizing compiler. Some of the routines among the serial memory computers include SOAP for the IBM 650, IT for the Datatron, and Magic for the University of Michigan's MIDAC. Parallel memory machines had less sophisticated and diverse compilers and interpreters. Among the exceptions were SPEEDCODE developed for the IBM 701, JOSS for the Johnniac, and a number of compilers and interpreters for the Whirlwind. in The Computer Museum Report, Volume 7, Winter/1983/84 view details Baker's paper contains four parts, plus a transcription of a question and answer period from the History of Programming Languages conference. Part 1, on the beginning of JOSS, traces it from the early 1958 meetings through January 1966, when the JOSS system was shut down in favor of JOSS 11, then running on a PDP/8. Part 2 looks at the JOSS language -- that feature which has made JOSS one of the grandfathers of the interactive language system. One of the unique features of JOSS was its universal message " EH? " when it received an incorrect command or instruction. Baker credits Cliff Shaw with the development of the JOSS system. It was Shaw who established what are now called the JOSS Rubrics, one of these being that you have to use black and green ribbon, " green " for your input to the system and " black " for JOSS's answer. (Try to get green and black ribbon if you don't work for the Rand Corporation. We had to use red and black.) Baker does a good job of itemizing the original JOSS language. JOSS, like so many languages, was expanded during the days of JOSS 11 to include many other language statements, particularly those pertaining to files. The third part of the paper discusses the philosophy of JOSS. This is where, and probably for the first time, we made an attempt to make a user-friendly system. The benefit of JOSS was to individuals, noncomputer people, who needed a computer to solve their problems. The last part itemizes the list of JOSS derivatives and languages influenced by JOSS. I agree with the answer provided by Baker to one of the questions: " . . . like bicycle riding and ice skating, once learned, it's [ JOSS ] almost impossible to forget. " in The Computer Museum Report, Volume 7, Winter/1983/84 view details Q: You?d mentioned JOSS just briefly. Could you spend a few moments describing what that was, and how it operated, and what the significance of it was? MORT BERNSTEIN: There?s a JOSS console at the far end of the machine. JOSS was one of the very early time-shared user-oriented computation tools. It was not a general purpose time-sharing system; it was aimed at doing small programs. And the history behind it is, one of the ways we believed to keep the JOHNNIAC going, and justify its maintenance costs, was if we could open the shop. I mean, there were fewer and fewer programmers who became JOHNNIAC programmers as they joined the RAND Corporation, and we kept trying to find ways -- in fact, prior to JOSS there were at least four attempts at producing batch-oriented open shop languages. Fred Gruenberger created Quad, and I had created something called Smack, and another called MORTRAN -- you know why [laughter] -- and there was another one in there somewhere. But these were not successful because they were the kind of programming languages that programmers would create. They weren?t the kind of thing that an engineer, or an economist, or somebody like that would take to, and it took too much. Even though the advertisement was "it?s easy to learn, it?s easy to use," we?ve been hearing that for 40 years; it?s still not true. [Laughter] And the idea was that JOSS would become your computational assistant. Cliff worked very, very hard at making things as natural and easily understandable as he could, and his goal was that the JOSS manual would be one page. Now I -- I don?t think I brought it with me -- I have a one page description of JOSS, which, if you?re a bit of a mind reader, yeah, you can figure out what really you were able to do with it. But it was attractively enough done that it didn?t suffer from all of the shortcomings of all of the floating point of the day. First of all, he did an integer floating point rather than a fractional floating point. It looked like decimal to everybody from the outside. There was nothing that wasn?t decimal, and when you took the square root of 2 and squared it, it came back 2.000000, which is very important for people who don?t understand that we?ve lost a bit somewhere, and now it?s 1.999999. And the syntax was oriented to people. People hardly ever put the IF clause in front of a statement they want to condition; they put it at the end. And Cliff looked at that and said, "That?s where it has to go. A = B IF ...." So it became the secondary clause in the statement. There were all kinds of little good things like that, that made the thing extremely easy to look at, easy to understand, and relatively straightforwardly easy to use. And it took off! And as Gordon observed, ran out of time, space and availability of the JOHNNIAC, and ended up creating a second version of it with some enhancements on a PDP-6. The biggest shortcoming of the machine was its shortage of secondary memory, in that you couldn?t create a program, even a small five-line program, and save it anywhere. There was no "save" space for users. So people had to retype things. Now, there was some facility for punching out decks and loading them back in, but that apparently created some problems that I -- I wasn?t there and don't really understand how it all went, but that was also a lot of the reason for the pressure to move it onto the more modern machine with truly proper storage facilities where people had allocated storage to them and they could recall programs that they had written, and they could write bigger and bigger programs, and build on them, and build them slowly but surely. How long did it last, Willis? How long did JOSS ... ? WILLIS WARE: I don?t know when we finally turned it off. MORT BERNSTEIN: The PDP-6? I don?t, either, but it served -- it grew like Topsy and somewhere there?s a compilation of the number of JOSS-like languages that were propagated into the world by other organizations, and my recollection is, the number was well over 20, so it did have an influence. A guy named Ed Bryan, who was one of the implementors of the PDP-6 version, who looked at what Cliff had done on this machine, and his time-sharing algorithm, as far as Ed was concerned, was better than any time-sharing algorithm that anybody had created up to that time. Interestingly enough, I do have a full source listing of JOSS which I intend, when I get the simulator running, to get running on this thing. Now it?s not going to be a big user of JOSS. I don?t think I can handle that. But it would be a lovely [inaudible]. Q. Just a quick one. What machine are you going to do the emulation on? MORT BERNSTEIN: On a PC. What else? GORDON BELL: OK. There?s some refreshments here. in The Computer Museum Report, Volume 7, Winter/1983/84 view details Resources
|