JOSS

JOSS
Paradigmsnon-structured, procedural, imperative
FamilyJOSS
Designed byCliff Shaw
DeveloperRAND Corporation
First appeared1963; 61 years ago (1963)
ScopeLexical
Implementation languageassembly language
PlatformJOHNNIAC, PDP-6
Influenced
TELCOMP, CAL, FOCAL, MUMPS
Part of a JOSS session at RAND in 1970 in which the user carries several simple calculations in direct mode. Note the difference between the period at the end of the statements and the interpunct for multiplication.

JOSS (acronym for JOHNNIAC Open Shop System)[a] was one of the first interactive, time-sharing programming languages. It pioneered many features that would become common in languages from the 1960s into the 1980s, including use of line numbers as both editing instructions and targets for branches, statements predicated by boolean decisions, and a built-in source-code editor that can perform instructions in direct or immediate mode, what they termed a conversational user interface.

JOSS was initially implemented on the JOHNNIAC machine at RAND Corporation and put online in 1963. It proved very popular, and the users quickly bogged the machine down. By 1964, a replacement was sought with higher performance. JOHNNIAC was retired in 1966 and replaced by a PDP-6, which ultimately grew to support hundreds of computer terminals based on the IBM Selectric. The terminals used green ink for user input and black for the computer's response. Any command that was not understood elicited the response Eh?.

The system was highly influential, spawning a variety of ports and offshoots. Some remained similar to the original, like TELCOMP and STRINGCOMP, CAL, CITRAN, ISIS, PIL/I, JEAN (ICT 1900 series), BOSS and INTERP on the Burroughs B5500, Algebraic Interpretive Dialogue (AID, on PDP-10). Others, such as FOCAL and MUMPS, developed in distinctive directions. JOSS also bears a strong resemblance to the BASIC interpreters found on microcomputers in the 1980s, differing mainly in syntax details.

  1. ^ Bryan 1966, p. 2.


Cite error: There are <ref group=lower-alpha> tags or {{efn}} templates on this page, but the references will not show without a {{reflist|group=lower-alpha}} template or {{notelist}} template (see the help page).