SOS /S-O-S/

n.,obs. An infamously losing text

editor. Once, back in the 1960s, when a text editor was needed

for the PDP-6, a hacker crufted together a quick-and-dirty `stopgap editor' to be

used until a better one was written. Unfortunately, the old one

was never really discarded when new ones came along. SOS is a

descendant (`Son of Stopgap') of that editor, and many PDP-10

users gained the dubious pleasure of its acquaintance. Since then

other programs similar in style to SOS have been written, notably

the early font editor BILOS /bye'lohs/, the Brother-In-Law Of

Stopgap (the alternate expansion `Bastard Issue, Loins of

Stopgap' has been proposed).

Node:source, Next:source of all good bits,

Previous:SOS, Up:= S =

source n.

[very common] In reference to software, `source' is invariably

shorthand for `source code', the preferred human-readable and

human-modifiable form of the program. This is as opposed to

object code, the derived binary executable form of a program.

This shorthand readily takes derivative forms; one may speak of

"the sources of a system" or of "having source".

Node:source of all good

bits, Next:space-cadet keyboard, Previous:source, Up:= S =

source of all good bits n.

A person from whom (or a place from which) useful information

may be obtained. If you need to know about a program, a guru might be the source of all good bits.

The title is often applied to a particularly competent

secretary.

Node:space-cadet keyboard,

Next:spaceship

operator, Previous:source of all good bits,

Up:= S =

space-cadet keyboard n.

A now-legendary device used on MIT LISP machines, which

inspired several still-current jargon terms and influenced the

design of EMACS. It was equipped with

no fewer than seven shift keys: four keys for bucky bits (`control', `meta',

`hyper', and `super') and three like regular shift keys, called

`shift', `top', and `front'. Many keys had three symbols on them:

a letter and a symbol on the top, and a Greek letter on the

front. For example, the `L' key had an `L' and a two-way arrow on

the top, and the Greek letter lambda on the front. By pressing

this key with the right hand while playing an appropriate `chord'

with the left hand on the shift keys, you could get the following

results:

L

lowercase l

shift-L

uppercase L

front-L

lowercase lambda

front-shift-L

uppercase lambda

top-L

two-way arrow (front and shift are ignored)

And of course each of these might also be typed with any

combination of the control, meta, hyper, and super keys. On this

keyboard, you could type over 8000 different characters! This

allowed the user to type very complicated mathematical text, and

also to have thousands of single-character commands at his

disposal. Many hackers were actually willing to memorize the

command meanings of that many characters if it reduced typing

time (this attitude obviously shaped the interface of EMACS).

Other hackers, however, thought having that many bucky bits was

overkill, and objected that such a keyboard can require three or

four hands to operate. See bucky

bits, cokebottle, double bucky, meta bit, quadruple bucky.

Note: early versions of this entry incorrectly identified the

space-cadet keyboard with the `Knight keyboard'. Though both were

designed by Tom Knight, the latter term was properly applied only

to a keyboard used for ITS on the PDP-10 and modeled on the

Stanford keyboard (as described under bucky bits). The true space-cadet

keyboard evolved from the first Knight keyboard.

Node:spaceship operator,

Next:SPACEWAR, Previous:space-cadet

keyboard, Up:= S =

spaceship operator n.

The glyph <=>, so-called apparently because

in the low-resolution constant-width font used on many terminals

it vaguely resembles a flying saucer. Perl uses this to denote the signum-of-difference

operation.

Node:SPACEWAR, Next:spaghetti code, Previous:spaceship operator,

Up:= S =

SPACEWAR n.

A space-combat simulation game, inspired by E. E. "Doc"

Smith's "Lensman" books, in which two spaceships duel around a

central sun, shooting torpedoes at each other and jumping through

hyperspace. This game was first implemented on the PDP-1 at MIT

in 1962. In 1968-69, a descendant of the game motivated Ken

Thompson to build, in his spare time on a scavenged PDP-7, the

operating system that became Unix.

Less than nine years after that, SPACEWAR was commercialized as

one of the first video games; descendants are still feeping in video arcades everywhere.

Node:spaghetti code, Next:spaghetti inheritance,

Previous:SPACEWAR, Up:= S =

spaghetti code n.

Code with a complex and tangled control structure, esp. one

using many GOTOs, exceptions, or other `unstructured' branching

constructs. Pejorative. The synonym `kangaroo code' has been

reported, doubtless because such code has so many jumps in

it.

Node:spaghetti inheritance,

Next:spam, Previous:spaghetti code, Up:= S =

spaghetti inheritance n.

[encountered among users of object-oriented languages that use

inheritance, such as Smalltalk] A convoluted class-subclass

graph, often resulting from carelessly deriving subclasses from

other classes just for the sake of reusing their code. Coined in

a (successful) attempt to discourage such practice, through

guilt-by-association with spaghetti code.

The Jargon File, Version 4.2.2, 20 Aug 2000 · 第 1502 / 1941 题