JOSS(ID:200/jos002)

JOHNNIAC Open Shop System 


for 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
EASY FOX => JOSS   Written using
JOSS => AMTRAN   Influence
JOSS => BASIC   positive partial Influence
JOSS => CAL   Extension of
JOSS => CAL   Based on
JOSS => CITRAN   Derivation of
JOSS => COWSEL   Influence
JOSS => DIALOG   Enhancement of
JOSS => DZHOSS   Implementation
JOSS => ESI   Extension of
JOSS => FIGARO   Implementation
JOSS => HOI   Based on
JOSS => INTERP   Implementation
JOSS => JASP   Based on
JOSS => JEAN   Dialect of
JOSS => JOSS II   Evolution of
JOSS => JOSTRAN   Dialect of
JOSS => LCC   Influence
JOSS => PIL/I   Variant
JOSS => PPL   Influence

References:
  • Baker, C. L., JOSS: Scenario of a Filmed Report, RAND Corp., RM-4162-PR, Santa Monica, Calif. (June, 1964). view details
  • Shaw, J. C., "JOSS: A Designer's View of an Experimental On-Line Computing System" pp455-64 view details
          in [AFIPS JCC 26] Proceedings of the 1964 Fall Joint Computer Conference FJCC 1964 view details
  • Samuel, A.L. "Time Sharing on a Multiconsole Computer" MIT-LCS-TR-017 1965 view details
          in [AFIPS JCC 26] Proceedings of the 1964 Fall Joint Computer Conference FJCC 1964 view details
  • Schwartz, JI "Programming languages for on-line computing" view details
          in Kalenich W.A. (ed), Proceedings IFIP Congress (New York, May 24-29, 1965), Spartan Books, New York, 1965. view details
  • Shaw, J. C., "JOSS: Experience with an Experimental Computing Service for Users at Remote Typewriter Consoles", RAND Corp., P-3149, Santa Monica, Calif. (May, 1965). view details
          in Kalenich W.A. (ed), Proceedings IFIP Congress (New York, May 24-29, 1965), Spartan Books, New York, 1965. view details
  • Baker, C. L., JOSS: Introduction to a Helpful Assistant, RAND Corp., Memorandum RM-50580-PR, Santa Monica, Calif. (July, 1966). view details Abstract: A step-by-stsep demonstration of JOSS--a system designed to provide the individual scientist and engineer with a personal computational service immediately available, whenever reqsuired, in his own working environment. The distinguishing features of JOSS are: mobile consoles equipped with electric typewriters for input and output; highly readable and powerful language for numeric computation; English capitalization, spelling, and punctuation rules; easy editing; quick response; exact input; familiar decimal arithmetic; exact output; and report-quality formatted output. The intimate interaction between man and machine permits the JOSS user to exercise judgment continually during the course of computation, changing and modifying the procedure as he wishes. This is one of the unique aspects that distinguishes JOSS from other systems and has led to its enthusiastic adoption by the RAND staff. This talk was presented to the Eleventh Annual Data Processing Conference at the University of Alabama Birmingham Center on 4 May 1966 External link: Online copy
          in Kalenich W.A. (ed), Proceedings IFIP Congress (New York, May 24-29, 1965), Spartan Books, New York, 1965. view details
  • Schwartz, Jules I. "Online programming" pp199-203 view details DOI Abstract: When the transition has been made from off:line to online programming, there are a number of changes in the working conditions noted. These changes in the environment make necessary corresponding changes in the processes related to producing and checking out programs. In the main, it is not the programming language itself which must be changed to provide a facility for the online user; it is the system surrounding the programming language. In this paper the online environment and its effect on programming are discussed.
          in [ACM] CACM 9(03) March 1966 includes proceedings of the ACM Programming Languages and Pragmatics Conference, San Dimas, California, August 1965 view details
  • Wood, L. H., Reinfelds, J., Seitz, R. N, and Clem, P. L., Jr. "The AMTRAN System" pp22-27 view details Extract: General philosophy
    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 combina­tion 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 pur­pose, 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 com­puter in the natural language of mathematics. For example, the system provides automatic array arithmetic, automatic dynamic dimensioning of arrays, no declaration of vari­ables, 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 opera­tors is inadequate and so that they can take advantage of the extremely short turnaround times which are character­istic of conversation-mode programming. This requirement has been met by including algol 60 programming capa­bilities 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 im­portant feature is a simplified procedure-and-operator gen­eration 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 re­quirement 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 ef­fort 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 avail­able 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. Suffi­cient 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 num­ber 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 mathe­matical 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 deal­ing with graphical displays. Most of the people who have used AMTRAN so far have preferred the keyboard-type­writer 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 instruc­tions associated with the keyboard, a full set of instruc­tions 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 in­structions 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 mathe­matical symbols (Fig. 2). The complete AMTRAN type­writer unit currently under development will have the ability to index the roller upward or downward inde­pendent of the carriage return so that mathematical equa­tions 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 in­dexing 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 type­writer. The 5-inch Tektronix storage scopes used for this purpose are inexpensive, afford high resolution, and re­quire 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
  • Baker, C. L. "JOSS: Console Design", 1967 Feb. view details
          in Datamation 12(10) Oct 1966 view details
  • Baker, C. L. "JOSS: Rubrics", 1967 Mar. view details Abstract: A collection of principles to be kept in mind when designing a JOSS-like system, contemplating additions to the JOSS language, or comparing JOSS with other interactive on-line, time-shared remote computing systems External link: Online copy
          in Datamation 12(10) Oct 1966 view details
  • Bryan, G. E., "JOSS: 20,000 Hours at the Console: A Statistical Summary" pp769-777 view details
          in [AFIPS] Proceedings of the 1967 Fall Joint Computer Conference FJCC 31 view details
  • Newell, Alan, Jay Earley and Fred Haney "*l manual" Carnegie Institute of Technology June 26, 1967 view details Extract: Conversational languages
    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
  • Shaw, J.C. "JOSS: experience with an experimental computing service for users at remote consoles" pp. 15-22 view details
          in Orr, William (ed) "Conversational Computing", 1968 view details
  • Sammet, Jean E. "Computer Languages - Principles and History" Englewood Cliffs, N.J. Prentice-Hall 1969. pp.217-226 view details
          in Orr, William (ed) "Conversational Computing", 1968 view details
  • Sammet, Jean E. "Roster of Programming Languages for 1973" p147 view details
          in ACM Computing Reviews 15(04) April 1974 view details
  • Stock, Marylene and Stock, Karl F. "Bibliography of Programming Languages: Books, User Manuals and Articles from PLANKALKUL to PL/I" Verlag Dokumentation, Pullach/Munchen 1973 310 view details Abstract: PREFACE  AND  INTRODUCTION
    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
  • Bobrow, D.G. and B. Raphael, "New programming languages for artificial intelligence" view details
          in [ACM] ACM Computing Surveys (CSUR) 6(3) September 1974 view details
  • Baker, C. L. "JOSS: Johnniac Open-Shop System" 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
  • Sammet, Jean E. and Lee, John A. N. HOPL conference end banquet excerpts.(Videotapes) ACM SIGPLAN history of programming languages conference. (Los Angeles, 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
  • Gruenberger, F. J. "The History of the JOHNNIAC" pp57-59 (reprint of Gruenberger 1968) view details
          in Annals of the History of Computing, July 1979 view details
  • Allen, F. and Schwartz, J. Review of Baker 1978 pp149-150 view details Extract: Review
    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
  • Allen, F. and Schwartz, J. review of Sammet and Lee HOPL conference end banquet excerpts view details Abstract: 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
  • Steel, T. B. review of Wexelblat 1982 view details Abstract: This compendium is a magnificent book, belongs on the shelf of every information processing professional, and should be required reading for anyone who is to be granted a degree in computer science. While the book purports to be the record of the ACM SIGPLAN Conference on the History of Programming Languages held in Los Angeles in 1978, it is rather more than just that. It is an impressionist painting of a longvanished world whose inhabitants created a structure that has a profound influence, not only today but well into the foreseeable future, on the way all our institutions, commercial, governmental, or academic, conduct their affairs. The languages used to prepare computer programs dictate in many respects the thought patterns of the programmers, the questions they ask their users, the difficulty of implementing particular algorithms, and thus to a considerable extent what actually gets done. Beyond that, while it is premature to predict detailed effects, the consequences to the next generation of being taught these languages in school are certain to be enormous. The volume under review presents an account of how this structure came to be the way it is as seen through the eyes of some of the individuals responsible.

    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
  • Van Deusen, M. review of Wexelblat 1982 view details Abstract: The History of Programming Languages provides a glimpse into the language design process for thirteen important languages. Each language chosen had to have been designed before 1967, to allow historical perspective, and had to still be in use in 1977. The authors were invited because of their central positions in the language design efforts. FORTRAN is described by John Backus, ALGOL by Alan Perlis and Peter Naur, LISP by John McCarthy, COBOL by Jean Sammet, APT by Douglas Ross, JOVIAL by Jules Schwartz, GPSS by Geoffrey Gordon, SIMULA by Kristen Nygaard, JOSS by Charles Baker, BASIC by Thomas Kurtz, PL/I by George Radin, SNOBOL by Ralph Griswold, and APL by Kenneth Iverson. To provide some consistency among so many authors, language coordinators were given the responsibility of providing review and aid to the authors. The result is a work of amazingly high quality.

    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
  • Ceruzzi, Paul with McDonald, Rod and Welch, Gregory "Computers: A Look at the First Generation" view details External link: The Computer Museum Report, Volume 7 online at Ed Thelen's site Extract: Programming first generation machines
    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
  • Thayer, R. P. review of Baker 1978 in ACM Computing Reviews January 1983 view details Abstract: It gives me great pleasure to be reviewing a paper by Mr. Charles Baker on JOSS -- the original online, timesharing system. The paper is well written, extremely interesting to read, and technically accurate. The JOSS system was developed by the Rand Corporation for use by engineers directly without the assistance of programmers -- something that was unheard of in the early 1960s. JOSS used the elderly JOHNNIAC computer as its central processor, whence came the name -- JOHNNIAC Open Shop System, or JOSS. Prior to this advance, most computer services were " closed shop " -- i.e., only programmers were allowed to communicate with the computer. With JOSS several terminals were connected with individual lines direct to the computer. Inputs were accepted and interpreted one type line at a time. In 1966, I was one of the original Air Force users of the JOSS system -- the system that paved the way to provide computational support for many Air Force and government engineers.

    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
  • Willis Ware, Bill Gunning, Paul Armer, Mort Bernstein "Building Computers in 1953: JOHNNIAC" Public Lecture Computer History Museum September 15, 1998. view details Extract: JOHNNIAC Interpreters
    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
    • Online version of the JOSS interview
      external link
    • JOSS Console

    • Baker using JOSS Console