JOSS II(ID:1688/jos003)

Version 2 of JOSS 


Second generation of JOSS, including improved maths and interaction, porting to DEC PDP machines.

Still actually called JOSS (and so the first ever recursive acronym - since it no longer ran on the JOHNNIAC, it was the JOSS Open Shop System!) it was only called JOSS II outside RAND. The name was preserved internally to ensure continuity of funding.

Had expanded syntax, added functionality, and incorporated some of the syntax from LISP 1.5 to facilitate one-line logical expressions.


Related languages
JOSS => JOSS II   Evolution of
LISP 1.5 => JOSS II   Influence
JOSS II => ABLE   Implementation of
JOSS II => AID   Evolution of
JOSS II => BASYS   Influence
JOSS II => HYTRAN   Influence
JOSS II => ISIS   Variant
JOSS II => JOSSI   Implementation
JOSS II => MAP   Implementation of
JOSS II => MATH/360   Implementation of
JOSS II => MINIJOSS   Implementation
JOSS II => Scratchpad   Incorporated some features of
JOSS II => SON of JOSS   Implementation

References:
  • 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
  • Bryan, G. E. "JOSS: Introduction to the System Implementation" view details Abstract: JOSS is a time-shared computer system that provides for the solution of numerical problems via an easily learned language at remote typewriter consoles.

    The PDP-6 hardware used to implement JOSS consists of 32,000 words of 1.75|j.sec core memory, a 1-million-word 4|asec drum, a 6-million-word discfile, and various peripheral devices.  A special data relocation mode for memory references has been added to facilitate interpretation of JOSS programs.  The JOSS consoles, built around a Selectric I/O typewriter, were specially manufactured to RAND specifications.  Features include full duplex signaling, line parity checking, a page eject mechanism, and several buttons and lights to control and report console status.  The stand-alone JOSS software consists of the JOSS language interpreter and its arithmetic subroutines, a monitor for user'scheduling and resource allocation, and I/O routines for the disc, drum, consoles, and other peripheral devices.

    JOSS service is currently available to nearly 500 users through 34 consoles, six of which are remote to RAND operating over both private and dataphone lines. Extract: The JOSS System
    The JOSS System

    JOSS is a computer system that allows a user direct interaction with a powerful computer through a familiar device (typewriter) and in a familiar language (arithmetic or algebra).  The machine that houses JOSS is dedicated exclusively to that task 24 hours a day, 7 days a week. No background tasks are performed. In contrast with project MAC, SDC, and other "general purpose" time-sharing systems, JOSS has been designed for the casual user and applications programmer rather than for the systems programmer.

    In order to make such a service available to many people at an economic price, the system is time shared; that is, simultaneous and noninterfering service is supplied to a number of users at their individual typewriter consoles.  The primary advantage of JOSS is its ability to provide fast solutions to reasonably complex problems with a minimum of administrative delay.  The user must specify all data relevant to describing his problem and the algorithm for its solution, but need only provide a minimum of detail regarding how his problem is to be solved on the available hardware. The JOSS user has at his command a machine of about the power of a 4K 704, with the additional bonus of a language interpreter.

    JOSS is a problem-solving tool that the user can apply to small- and medium-size problems with a minimum investment on his part in learning its use.
    Extract: History
    History

    Work was first started on JOSS in 1960.  The system was implemented on the, JOHNNIAC computer (now retired) by J. C. Shaw, to whom goes the bulk of the credit for both design and construction.  The system was partially operational in early 1963 and fully operational with eight consoles in January 1964 - no small accomplishment considering the 4000 word memory and doddering years of JOHNNIAC.

    However, JOSS was impressive enough on the few days JOHNNIAC felt well to substantiate the acquisition of a new computer and the creation of a well-supported project to build a second JOSS. As one user quipped, "It's better than beer - we're hooked."

    (The name JOSS still stands for JOHNNIAC Open Shop System in spite of the fact that JOHNNIAC now resides in the Los Angeles County Museum.  It has been suggested that JOSS should now be interpreted as JOSS Open Shop System.)

    Introduction of the new JOSS in formal operation took place in mid-February 1966, although selected users had been contributing to system debugging since its first coherent words in early November 1965.  Implementation on a large modern computer gave the new JOSS about an order-of-magnitude more capability than its predecessor - 30 times as fast, 5 times the storage per user, 4 times as many consoles, 50 percent faster consoles, room for several powerful new language features, and, in addition, spare capacity.  We believe that well over 100 consoles can be handled within the present configuration without service degradation. Extract: Scope and Intent
    Scope and Intent

    JOSS is commonly characterized as a tool for the solution of small numerical problems--and so it is.  But the word "small" would be better rendered as "not large."  To say that JOSS is a good desk calculator is a substantial understatement, although it is often used effectively for that purpose.  A list of the limitations of JOSS is perhaps more instructive than one of its capabilities.  As a data retrieval system, it is poor; no provision exists for handling large files of information; it can't tackle very large problems (by today's standards); the 40-page FORTRAN code is unfeasible; and the compact but long-running program, say, 2 hours on a 7094, although possible, would be extremely tedious ?  perhaps as much as 60 hours.

    Together with other so-called time-sharing systems, JOSS enjoys the substantial advantages of the interactive environment.  The user is able to approach his console with perhaps only a partially formed idea of his problem and to come away in a few minutes or hours with the answer.  This method is estimated to be about ten times faster than the usual problem-inception-to-problem-solution approach to a computer.  It is successful enough that many problems that weren't worth the effort before are now being solved.

    JOSS differs from the general-purpose interactive time-shared systems in that its operation is simple and its goals are limited.  What little information the casual user does have to remember about the system's operation can usually be brought back to mind by experimenting at the console without recourse to a manual of operation or to the help of a system "expert."  For this ease of use, JOSS gives up many general-purpose features, but retains a large complement of casual users. As Willis Ware has said, "For a certain class of problems, at least, the programmer as the middleman between the problem and the machine is no longer needed."
    Extract: The JOSS Language
    The JOSS Language

    The language provided for JOSS users is simple and easy to learn with relatively few rules governing correct use.  In many ways it is similar to other algebraic languages in wide use on every variety of computing machine.  The language has been specially adapted to convenient, direct use by an active user at a typewriter console.

    Most familiar statement types exist:  Replacement (assignment), transfer of control, input, output, and formatting are executed by the verbs:  Set, To, Demand, Type, and Form.  The conditional if clause may be appended to any JOSS statement. The JOSS D£ statement acts more like a subroutine call than the similarly named FORTRAN statement.

    Significantly, some statement types do not appear.  Declarations such as DIMENSION are unnecessary, because of the linked-list memory assignment in the user's block, and modes (e.g., REAL, INTEGER) are handled implicitly.

    Whether a statement is to be interpreted immediately or stored for future execution is indicated implicitly by prefixing statements to be stored with a "step label," which gives the proper location of the new statement relative to others already stored.  Thus, a step labeled 1.25 will be inserted after step 1.2 and before 1.28; it will replace any previous step labeled 1.25.  Statements without step labels are interpreted immediately.

    A collection of steps with step numbers having the same integer part is called a "part."  Thus, all steps labeled one-point-something constitute part 1.  A Do statement causes interpretation of a part as if it were a subroutine.  Example 1 illustrates the use of six common JOSS verbs, the conditional if clause, direct and indirect program statements, and the ordering of statements by step number.

    Certain of the JOSS language facilities deserve special mention because they are less frequently found in the common algebraic languages.  The verb Let defines a formula or rule for computation.  It may have up to ten parameters.  The functions sum and prod allow direct expression of the mathematical operations for summation and product over a specified range of values.  Use of these and similar functions (max and min) eliminates many program loops and aids in the compact expression of the desired computation.

    Conditional expressions, which may be used wherever expressions are valid and which use colons and semi- colons to denote the if...then... if...then...if...then...otherwise... notation, again contribute to compact notation of complex choices and discontinuous functions.  

    [...]

    JOSS arithmetic is carried out by an interpretive package of routines that operates on numbers carried in scientific notation--an integer magnitude and a decimal exponent.  Primary advantages of this notation are exact I/O number conversion and the restriction of repeating fractions to those familiar in the decimal system.

    Users may save programs, data, forms, and formulas on the discfile and retrieve them from the file using the verbs File, Discard, and Recall. Items stored on the disc are in symbolic form.  The file operation behaves as if the user were typing on the disc and the recall operation acts as if the disc were typing on the user's program space.  This means that the user's current core contents are only changed as implied by the contents of the disc.  Statements replace current statements of the same number, and new values are assigned if variables defined on the disc were previously defined in core.  The user may reference the files with his program to accomplish a limited form of chaining.

    There are a number of features normally included in computing systems that JOSS does not have: (1) There is no way for a user to handle high-volume I/O, which precludes the use of large tape files. (2) The interpretive mode of JOSS operation (even down to the arithmetic) limits the speed of operation. Thus, very long, detailed calculations are impractical.  (3) The maximum amount of core available to individual use is limited to 4K, making very large programs or programs with large data bases infeasible, Finally, (4) JOSS operates only on numbers, which rules out generalized symbol manipulation programs.  All of these limitations were imposed because their inclusion was considered incompatible with a high-speed, highly interactive computing service for a large number of casual users.
          in Decus Conference Fall 1966 view details
  • Bryan, G. E. and Paxson, E. W., The JOSS Notebook, RAND Corp., Memorandum RM 5367-PR, Santa Monica, Calif. (Aug., 1967). view details Abstract: A loose-leaf reference guide for JOSS sophomores, who have had experience at a console and are familiar with the introductory JOSS literature (RM-5058-PR, RM-5220-PR, RM-5322-PR, RM-5377-PR). In addition to the basic tutorial material on JOSS language, commands, and functions, practical instructions are given on how to insert paper and change ribbons; typewriter settings; procedures for contacting JOSS; and actions to take in the event of console, line, or machine malfunction. Twelve annotated sample programs are included, together with an index that complements the heavy cross-referencing used throughout the notebook. In contrast to the more technical JOSS publications, these notes generally eschew detailed discussion in favor of informal interpretation and exemplary material. External link: Online copy
          in Decus Conference Fall 1966 view details
  • Bryan, G. E. and Smith, J. W., JOSS Language: Apercu and Precis, Pocket Precis, Poster Precis, RAND Corp., Memorandum RM-5377-PR, Santa Monica, Calif. (Aug., 1967). view details Abstract: A JOSS user's portfolio containing three brief reference summaries of the actions that can be requested of JOSS and of the language for requesting these actions. The summaries are presented in varying formats to suit the user's convenience: a pocket-size book for personal use (Pocket Precis, 17 pp.), a larger and more complete piece for desk-top or console use (Apercu and Precis, 23 pp.), and a poster-size summary for the bulletin board (Poster Precis, 1 p.). The precis demonstrate that the language provided for JOSS is terse, unambiguous, and readable, stressing familiar English terminology and punctuation and with relatively few rules governing correct use. The speed and ease of interaction between JOSS and the user, the simplicity of the language, the use of familiar decimal arithmetic, and JOSS's precise error and status reporting combine to allow most problems to be solved by an understanding of the problem at hand and a list of JOSS commands and functions. External link: Online copy
          in Decus Conference Fall 1966 view details
  • Clapp, Lewis "Time-Sharing System Scorecard" Computer Research Corporation 1967 view details
          in Decus Conference Fall 1966 view details
  • Gimble, E.P. "JOSS: Problem Solving for Engineers" RAND RM-5322-PR 1967 view details Abstract: A step-by-step demonstration of the basic principles of JOSS operation to enable engineers to solve progressively more involved problems in numeric calculation. Following an overview of the JOSS system, including descriptions of the console and language, examples of JOSS input and output demonstrate how the basic commands, both direct and indirect, are applied. Direct commands are used to solve problems when only a few answers are required, and indirect commands are used when many answers are required, when many variables are to be set, or when a number of steps must be performed in a prescribed sequence. Special JOSS techniques allow the user to choose between several acceptable commands, to minimize function arguments, and to direct JOSS to "dress up" output with headings and condensed printout. A filing system provides long-term storage for programs and data and eliminates the need for retyping frequently used material. The appendixes include a list of legitimate JOSS commands, a description of the use of expressions and propositions, and a discussion of the available JOSS functions.
    External link: Online copy
          in Decus Conference Fall 1966 view details
  • Greenwald. I.E. "JOSS: Disc File System" Rand RM-5257-PR 1967 view details Abstract: Describes the user program and data storage system of JOSS, Rand's personal, on-line, time-shared computing service, in order to provide maintenance personnel with program documentation for the correction or modification of file-handling routines. The JOSS filing system provides the user with a service that will save him from retyping frequently used programs and/or data. It will also supply a limited program-chaining capability. Since this type of service implies low user demand for file action in terms of total session time, there is little concern with the time to service such demands. On the other hand, the amount of primary storage occupied by the file-service routines and associated core buffers is of considerable concern.
    External link: Online copy
          in Decus Conference Fall 1966 view details
  • Leonhardt, P.L. (Ed) The JOSS Newsletter: November 1967-June 1968. view details
          in The JOSS Newsletter view details
  • Marks, Shirley L. and Armerding, George W., The JOSS Primer, RAND Corp., Memorandum RM-5220-PR, Santa Monica, Calif. (Aug., 1967). view details Abstract: Introduction to JOSS, RAND's time-shared computing system, for the beginning user with examples illustrating the system's basic elements, which can easily be learned without programming experience. Seated at a mobile console connected to a computer via telephone lines, the Primer reader follows the instructions step by step, duplicating examples, trying variations, and observing results. He types commands in imperative English sentences, instructing JOSS to perform procedures in arithmetic, algebra, trigonometry, and logic. JOSS responds with answers in user-prescribed formats and with error messages that help the user correct errors and resume processing. To extend the beginner's knowledge of JOSS, the Primer concludes with lists of JOSS commands and functions and suggested reading in the JOSS literature. External link: online copy
          in The JOSS Newsletter view details
  • Northrop, Gaylord M. "Use of Multiple On-Line, Time-Shared Computer Consoles in Simulation and Gaming" view details Abstract: A progress report on the interactive use of on-line, time-shared JOSS computer consoles in war gaming at RAND during the six months since publicly accessible files were added to JOSS capabilities. By programming consoles to interrogate certain files periodically, a crude but highly serviceable real-time store-and-forward communication system is created. The simple JOSS programming language is perhaps the most important feature, since it makes it possible for game players to contribute to the improvement of programming. When the automated Tactical Air Control System simulation was exercised by five Army ROTC students, the Litton Digital Message Entry Device (DMED) format proved too rigid to cover all FAC information needed, and that the Fighter Duty Officer needs three CRT displays: for FAC requests, aircraft status, and his own assignments of aircraft to missions. A text-only diplomatic message simulation and a data-only sub-launched missile duel are also included. Teletype consoles (Type 33 and 35) can be used as JOSS consoles, permitting participation, regardless of location, through conventional teletype or dataphone connections.
    External link: Online copy
          in The JOSS Newsletter view details
  • Sammet, Jean E., "Roster of Programming Languages 1967" view details
          in Computers & Automation 16(6) June 1967 view details
  • Schur, Lee David "Time-shared computer languages" Addison Wesley 1973 p 323-390 view details
          in Computers & Automation 16(6) June 1967 view details
  • Wessel, Andrew E. "Data Automation Development and Systems Implementation - Some Problems and Conclusions." Rand Corp P-3648 1967 view details Abstract: A discussion of the problems involved in building an information processing system helpful in planning and decisionmaking, and an example in the form of a JOSS program for patent searching (retrieval by index terms). Operational requirements are difficult to state and are constantly changing. System developers and computer manufacturers often talk decision theory but build administrative data flow and control systems--not direct man-computer interaction for higher-level activities, such as patent examination. An example of such an interactive system is the Rand-U.S. Patent Office experimental system, which is implemented on JOSS. We are just now inputting real patent numbers and real index terms. The building of subject index term lists is one of the reasons for the experiment.
          in Computers & Automation 16(6) June 1967 view details
  • Leonhardt, P.L. (Ed) The JOSS Newsletter: July 1968-December 1968 view details
          in The JOSS Newsletter view details
  • Leonhardt, P.L. & J.S. Groves (Eds) The JOSS Newsletter: January 1969-June 1969 view details
          in The JOSS Newsletter view details
  • Saindon, J. "The JOSS Newsletter: July 1969-December 1969" view details Abstract: Abstract: A semiyearly compilation of the monthly JOSS Newsletter and occasional JOSS Flashes by which the staff of Rand's interactive nongraphical computing system communicates with the users. This issue is devoted largely to administrative matters. Outside Rand Santa Monica, there are now about 20 remote JOSS stations: blue consoles at Rand Washington, Rand New York, McClellan AFB (Sacramento), Offutt AFB (SAC), OASD and AFCSA in the Pentagon, and the rest via teletype from various military users and UCLA. External link: Online copy
          in The JOSS Newsletter view details
  • Smith, Joseph W. "Joss-II - Design Philosophy" view details Abstract: JOSS is a multiuser, single-server computing system consisting of a collection of individual users' consoles connected to a central computing center by dual communication lines. The consoles are electric typewriters augmented by special electronics. The center consists of a general-purpose, digital computer, § with ancillary devices for storage and input/ output, and a collection of machine-language routines "permanently resident" in the highspeed core storage of the computer.
    There are three sets of routines:
    (1) input/output routines for communicating with the users' consoles and their long-term (magnetic-disc) files;
    (2) central-processing routines for interpreting and responding to requests typed by the users and for interpreting the users' stored programs; and
    (3) supervisory routines for general management and accounting, and for giving each user a fair and proportionate share of processing. The center may be considered a single, active agent that serves the consoles and the users by time-sharing its activities; that is, it turns its attention from user to user'so rapidly and smoothly as to give individual users the illusion of a single-user, single-server'system. The three collections of routines may be viewed as active subagents, operating concurrently and synchronized by a common purpose. With this viewpoint as an introduction to the system, the single, active agent, JOSS, is described in terms of
    (1) the actions that can be requested of JOSS;
    (2) the language for requesting the actions; and
    (3) the parts played by the three sets of routines in servicing the users and carrying out the requests.
    Associated with each user is a collection of dynamically changing information: programs, data, information about actions initiated by the user, and other pertinent data. The central-processing routines service a user by processing his block of information. Although list structures are used extensively for storing information in the user's block, neither a general structure nor a general processor for lists is used. Instead, information is maintained in several distinct and simple list structures, whose representations are attuned both to the organization of the system's central computer and to the special nature of JOSS. These and other considerations concerning the storage and handling of information are discussed in detail.
    The organization of the central-processing routines mirrors the responsibilities of a central processing unit serving more than one user: communication with the users and with the supervisory routines; command interpretation and execution; intercommand sequencing and control; error diagnosis, control, and commentary. For purposes of storage and execution, commands typed by the users are represented as almost direct copies of the line typed by the user. The operation is interpretive: Although the execution of commands often requires that
    information be compiled and retained, no compilation in the usual programmatic sense is done. An extra level of interpretation controlled by a tabular representation of the rules for forming commands is not used. Instead, each type of command is handled by a distinct routine that "reads" like the rules for forming instances of the command type. These routines are composed, in the main, of direct examinations of the primitive tokens entering into the command, mixed with uses of reentrant subroutines for interpreting more complex expressions. The major routines are described in terms of requests that can be made of JOSS, and in terms of JOSS's interpretation of the requests and responses to valid and invalid ones. Many design points of both the language and the responses to requests in the language are discussed in detail, as are major points of implementation of the routines. Extract: Introduction
    Introduction
    JOSS is an on-line, remote-console, time-shared computing service of the RAND Corporation designed to give the individual scientist or engineer an easy, direct way of solving numerical problems without recourse to professional computer programmers or to extensive, ad hoc programming education.
    The entire system is dedicated to a single task: providing a uniform, round-the-clock computing service to users, so that JOSS appears to be a personal "computing aide", privately interacting with the user and responding promptly and precisely to instructions couched in a simple language and transmitted from his electric-typewriter console.
    Extract: APERCU
    APERCU
    JOSS is an on-line, time-shared computing service of the RAND Corporation designed to appear to each user as a personal computing aide and file clerk, interacting privately with the users by means of their remote electric-typewriter consoles. Control of each typewriter is proprietary: Either the user has control for input purposes, or JOSS has control for output purposes.
    Users request actions of JOSS by typing single-line commands, t A numeric label prefixed to the command is an implied directive to JOSS to retain the command as a step of a stored program, rather than to carry it out directly. JOSS retains steps in sequence, according to the numeric value of the label or step number. Thus the step number determines if an addition, insertion, or replacement is required.
    Steps are organized into parts according to the integer parts of the step numbers. Steps and parts are units that may be edited, deleted, typed out, or filed in long-term storage. In addition, they are natural stored-program units for specifying, in a hierarchical manner, procedures to be carried out by JOSS.
    Decimal and logical values may be assigned to any of the 52 upper- and lower-case letters admitted as identifiers. Values may be organized into vectors and arrays by using indexed letters, and the letters may be used to refer to entire arrays for deleting, typing, filing in long-term storage, and as actual parameters of formulas.
    In addition to values, arbitrarily complex expressions for values and letters may be assigned to a letter, which may then be used as an abbreviation for the expression; expressions so assigned are called formulas. Formulas involving formal parameters may also be assigned to a letter. The letter, accompanied by expressions for actual parameters, may then be used as an abbreviation for the formula with the actual parameters substituted for the formal ones. The letter itself may be used to refer to the formula for purposes of deleting, typing, filing, and as an actual parameter of formulas.

    Expressions for the sum, product, largest and smallest of a set of decimal values, and for the first in a range of decimal values for which a condition holds, can be written succinctly and used as expressions for values.

    Expressions for the sum, product, largest and smallest of a set of decimal values, and for the first in a range of decimal values for which a condition holds, can be written succinctly and used as expressions for values. For example:
    sum [i = l(l)n: A(i) ]       max(x, y, z/3)
    min [i = l(l)n: A(i) ]       prod(x, y, z/3)
    first [i = l(l)n:A(i) /= B(i)J
    Except for the function first, either of the two notational styles may be used.f The conjunction or disjunction of a set of logical values can also be expressed in either of the two styles and used as expressions for logical values. Short "programs" for choosing expressions for values differentially on the basis of a set of conditions can be expressed succinctly and used as expressions for values. For example, phrases such as
         if a = b, usex + y; if a > b, use x; otherwise, use y
    are expressed as
         (a = b: x + y; a > b: x; y).
    Such iterative functions and conditional expressions, together with formulas, lead to powerful, direct expressions for complex procedures, even recursive ones.
    JOSS represents decimal numbers in scientific notation: nine digits of significance and a base-ten scale factor with exponent in the range — 99 through +99. Addition, subtraction, multiplication, division, and square root are carried out to give true results rounded to nine significant digits; zero is substituted on underflow, while overflow yields an error message. In other elementary functions, care is taken to provide acceptable significance, to minimize discontinuities, to factor out error conditions, and to hit certain "magic" values on the nose.
    The six numerical relations together with and, or, not, and a set of ad hoc logical functions may be used to express conditions, which may be attached to any step, and to express logical values.
    A general rule governs the formation and use of expressions for values: With the exception of step labels, which must be decimal numerals, wherever a decimal (logical) numeral is allowed in a command, an arbitrarily complex expression for a decimal (logical) value may be substituted.
    JOSS types answers one-per-line. identifying answers by the expression used in the step calling tor the output; in the event of conditional expressions, JOSS uses only the chosen subexpression for identification. Decimal points and equal signs are lined up, and fixed-point notation is used when reasonable. For more formal output, the user can define full-line forms to specify literal information and blank fields to be filled in with answers. A string of underscores with an optional decimal point is used to specify fixed-point fields; a string of periods specifies a tabular form of scientific notation.
    Users can request JOSS to file, in long-term storage, identifiable units and collections of units—steps, parts, forms, formulas, and values. Users may then request JOSS to recall such filed items, discard them from the files, or type out a list of items in a file.
    Users start JOSS off on the task of carrying out a stored program by directing JOSS to Do a step or part—repeatedly (for a range of values or a specified number of times), if desired. JOSS cancels all outstanding tasks before starting out on a direct (initiated from the console) task, begins the interpretation of a part at the first step of the part, and then interprets each step in sequence. Each subsequent indirect (initiated by a step of a stored program) Do causes JOSS to retain the status of the current task, drop a level to carry out the new task, and then return to pick up the suspended one. If the user wishes JOSS to act in the same manner for a directly initiated task, the command must be enclosed in parentheses. JOSS modifies this general behavior whenever encountering
    1.  An error.
    2.  A branching command.
    3.  A stopping command.
    4.  A command for terminating a task or a portion of a task.
    5.  An interrupt signal from the user.
    The deep and involved hierarchy of tasks and formulas that can occur (recursion is allowed) make it mandatory that JOSS's status be perfectly clear each time control is returned to the user, for any reason. In addition to error messages, interrupt messages, and stopping messages, JOSS types status messages on completion of parenthetical tasks to distinguish this state from the state of having finished a direct, nonparenthetical task. JOSS is able to proceed in every situation; in the event of errors, the user can take corrective action and then direct JOSS to continue with a Go command. Extract: LISP influence
       Both the facility and the LISP-like format for conditional expressions
    were dictated by a desire to get as much mileage as possible out of JOSS's
    line-at-a-time style. A more general facility is provided by many programming
    languages through constructions exemplified by
                    if x < 1 then 5 else if x >  1 then 10 else 20

    This mode of expression seems appropriate if the conditions can be used to
    control the execution of statements  or groups of statements. However,  the
    style seems unnecessarily wordy, and even confusing, when used solely  for
    choosing expressions?a comment that is completely independent of the fact
    that little could be said in a single JOSS line. It is this author's opinion that
    such conditional choices for values are viewed, in the mind's eye, as spatial
    entities that can be grasped in toto, rather than as overly qualified, strung-out
    sentences in which the parts obscure the whole.  In any event, the facility
    is useful enough to warrant incorporation. The colon separating the condition
    from its associated expression seemed appropriate, connoting (as it usually
    does) a strong connection or association between what precedes and what follows.
    The semicolon was adopted in favor of the more immediately appealing
    comma because it seemed to stand out better, particularly when comma-separated
    lists of arguments and index values were used.

          in Halpern, Mark I and Shaw Christopher J (eds) "Annual Review in Automatic Programming" (6) 1969 Pergamon Press, Oxford view details
  • Allardice, J. "The JOSS Newsletter" July 1970-December 1970 view details Abstract: A semiyearly compilation of the monthly JOSS Newsletter, this issue includes reminders, explanations, and suggestions, as well as news of JOSS service and cost status. The price of JOSS computing has increased a penny per thousand charge units, the number of charge units for a computation period being the product of the number of core blocks required for work area and the compute time, measured in 60ths of a second, called "tics." Since the first of the present JOSS typewriters was installed in September 1965, each typewriter has performed an estimated 50 million operations a year. Output speed has now been cut from 15 characters per second to 13, in an effort to lengthen the lives of the typewriters. More than a third have been rebuilt by IBM.
    External link: Online copy
          in The JOSS Newsletter view details
  • Saindon, J. and Allardice, J. "The JOSS Newsletter: January 1970-June 1970" view details Abstract: A semiyearly compilation of the monthly JOSS Newsletter by which the JOSS staff at Rand communicates with users of the conversational-mode remote-terminal computing system. (Other interested persons may ask to be placed on the distribution list.) This issue consists of directions, suggestions, and explanations for users External link: Online copy
          in The JOSS Newsletter view details
  • Smith, Lyle B. "A Survey of Interactive Graphical Systems for Mathematics" view details
          in [ACM] ACM Computing Surveys 2(4) Dec1970 view details
  • Barron, DW "Approaches to conversation FORTRAN" pp123-127 view details Abstract: This paper defines the term 'conversational programming system' in a pragmatic way by considering the facilities that the user expects to see in such a system. The difficulties of implementation are discussed, in the context of developing an outline design for a conversational FORTRAN system that makes a reasonable compromise between flexibility and efficiency. Extract: Introduction
    Introduction
    Conversational programming systems are enjoying a great
    vogue at present. Commercial time-sharing services are doing
    good business, and following the success of systems such as
    BASIC and of JOSS (alias TELCOMP alias JEAN) 'conversational
    FORTRAN' and 'conversational ALGOL' are being
    offered. However, these terms are not particularly well defined.
    Very often, all that is provided is a simple editing facility for
    source programs and an ability to communicate with the teleprinter
    at run-time, coupled to a more-or-less standard 'batch'
    compiler. (In one system of the author's acquaintance, the user
    of the conversational FORTRAN system is required to type
    his program as formatted card images, without the benefit of
    a TAB mechanism.)
    Another term that is used in this connection is 'incremental
    compiling', again, often without a clear definition. In this paper
    we aim to define the term 'conversational programming system'
    in a pragmatic way by considering the facilities that the user
    might expect to see. We then discuss various ways of achieving
    this for a FORTRAN-like language, including incremental
    compilation, and suggest a system that combines the external
    features that the programmer wants with reasonable internal
    efficiency. (As will be seen, this does not necessarily imply a
    fully interactive compiler.) Extract: City Conversational FORTRAN
    A few years ago a FORTRAN system was developed for student work at The City University: in order to achieve good diagnostics this system employed many of the techniques outlined in this paper, although it was intended for batch use. Unfortunately, no description of this significant piece of work was published at the time.
          in The Computer Journal 14(1) 1971 view details
  • Marks, S. "The JOSS Newsletter: November 1967-June 1971" P-3940/7 1971 view details Abstract: A final compilation of 44 issues of the [JOSS Newsletter], which has been issued monthly since November 1967 to users of JOSS, RAND's interactive, time-shared computer system designed for the solution of small numerical problems. Although the [Newsletter] has been discontinued, the JOSS system will continue to be used until renovation is no longer practical. A final version of the JOSS Program Library Catalog was issued in March 1971. Although no more JOSS programs will be abstracted, the read-only protection of the library files will still be available for JOSS programs offered to other users in RAND documentation or by personal communication. This final edition of the [Newsletter] replaces previous editions of P-3940.
    External link: Online copy
          in The JOSS Newsletter view details
  • Randell, B review of JOSS II papers in ARIAP 6 view details Abstract: Papers in which system designers make an honest attempt to
    review, explain and, where necessary, criticise, the decisions that
    they made in designing a software system are all too rare (though
    similar papers about hardware systems are virtually nonexistent).
    This paper on the design philosophy of JOSS-II - and
    in particular the sections on list structures and list processing,
    conditional expressions and storage management, and the
    'reprise' - is very worthwhile on this account. However, other
    sections of the paper describing the details of the JOSS-II
    language are less successful. Much space is taken up by a rather
    discursive account of the rules of the language. A briefer, more
    formal description of the language, with more discussion of the
    alternatives which had been considered and discarded would
    have been preferable.
    Even more regrettable is the lack of any attempt to assess the
    merits and demerits of the language, relative to other general
    purpose languages both conversational and conventional.
    A paper such as this should not have had a 22-item bibliography
    in which nothing other than papers and reports relating to JOSS
    appears.
          in The Computer Journal 14(1) 1971 view details
  • Sammet, Jean E., "Roster of Programming Languages 1972" 140 view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Clark, R.L. "JOSS Users' Reference Manual", Report F-1535/9, RAND Corp (Jan 1975) view details
          in Computers & Automation 21(6B), 30 Aug 1972 view details
  • Sammet, Jean E "Roster of programming languages for 1976-77" pp56-85 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Kupka, I. and Wilsing, N. "Conversational Languages" John Wiley, 1980 view details
          in SIGPLAN Notices 13(11) Nov 1978 view details
  • Marks, Shirley l. "JOSS: Conversational Computing for the Nonprogrammer" view details
          in [ACM] CACM 26(09) September 1983 view details