SQUOZE (abbreviated as SQZ) is a memory-efficient representation of a combined
source
Source may refer to:
Research
* Historical document
* Historical source
* Source (intelligence) or sub source, typically a confidential provider of non open-source intelligence
* Source (journalism), a person, publication, publishing institute o ...
and
relocatable object
Object may refer to:
General meanings
* Object (philosophy), a thing, being, or concept
** Object (abstract), an object which does not exist at any particular time or place
** Physical object, an identifiable collection of matter
* Goal, an ...
program file with a
symbol table
In computer science, a symbol table is a data structure used by a language translator such as a compiler or interpreter, where each identifier (or symbols), constants, procedures and functions in a program's source code is associated with info ...
on
punched card
A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to di ...
s which was introduced in 1958 with the
SCAT assembler on the
SHARE Operating System
The SHARE Operating System (SOS) is an operating system introduced in 1959 by the SHARE user group. It is an improvement on the General Motors GM-NAA I/O operating system, the first operating system for the IBM 704. The main objective was to im ...
(SOS) for the
IBM 709
The IBM 709 was a computer system, initially announced by IBM in January 1957 and first installed during August 1958. The 709 was an improved version of its predecessor, the IBM 704, and was the third of the IBM 700/7000 series of scientific co ...
.
A program in this format was called a ''SQUOZE
deck''.
It was also used on later machines including the
IBM 7090
The IBM 7090 is a second-generation transistorized version of the earlier IBM 709 vacuum tube mainframe computer that was designed for "large-scale scientific and technological applications". The 7090 is the fourth member of the IBM 700/7000 ser ...
and
7094.
Encoding
In the ''SQUOZE encoding'', identifiers in the symbol table were represented in a 50-character
alphabet
An alphabet is a standardized set of basic written graphemes (called letters) that represent the phonemes of certain spoken languages. Not all writing systems represent language in this way; in a syllabary, each character represents a syll ...
, allowing a 36-bit
machine word
In computing, a word is the natural unit of data used by a particular processor design. A word is a fixed-sized datum handled as a unit by the instruction set or the hardware of the processor. The number of bits or digits in a word (the ''word s ...
to represent six
alphanumeric
Alphanumericals or alphanumeric characters are a combination of alphabetical and numerical characters. More specifically, they are the collection of Latin letters and Arabic digits. An alphanumeric code is an identifier made of alphanumeric ch ...
characters plus two flag bits, thus saving two bits per six characters,
because the six bits normally allocated for each character could store up to 64 states rather than only the 50 states needed to represent the 50 letters of the alphabet, and 50
6 < 2
34.
Using base 50 already saves a single bit every three characters, so it was used in two three-character chunks. The manual
has a formula for encoding six characters ABCDEF:
For example "SQUOZE", normally 36 bits:
35 33 37 31 44 17
(base 8) would be encoded in two 17-bit pieces to fit in the 34 bits as
( 0o220231 << 17 ) , 0o175473 0o110114575473
.
A simpler example of the same logic would be how a three-digit
BCD number would take up 12 bits, such as 987:
9 8 7
(base 16) 1001 1000 0111
(base 2), but any such value could be stored in 10 bits directly, saving two bits, such as 987:
3db
(base 16) 11 1101 1011
(base 2).
Etymology
"Squoze" is a facetious past participle of the verb 'to squeeze'.
The name SQUOZE was later borrowed for similar schemes used on
DEC machines;
they had a 40-character alphabet (50 in
octal
The octal numeral system, or oct for short, is the radix, base-8 number system, and uses the Numerical digit, digits 0 to 7. This is to say that 10octal represents eight and 100octal represents sixty-four. However, English, like most languages, ...
) and were called
DEC RADIX 50
RADIX 50 or RAD50 (also referred to as RADIX50, RADIX-50 or RAD-50), is an uppercase-only character encoding created by Digital Equipment Corporation (DEC) for use on their DECSYSTEM-20, DECsystem, Programmed Data Processor, PDP, and VAX com ...
and
MOD40,
but sometimes nicknamed
DEC Squoze.
See also
*
Packed BCD
In computing and electronic systems, binary-coded decimal (BCD) is a class of binary encodings of decimal numbers where each digit is represented by a fixed number of bits, usually four or eight. Sometimes, special bit patterns are used for ...
*
Hertz encoding
The hertz (symbol: Hz) is the unit of frequency in the International System of Units (SI), equivalent to one event (or cycle) per second. The hertz is an SI derived unit whose expression in terms of SI base units is s−1, meaning that one he ...
*
Chen–Ho encoding
Chen–Ho encoding is a memory-efficient alternate system of binary encoding for decimal digits.
The traditional system of binary encoding for decimal digits, known as binary-coded decimal (BCD), uses four bits to encode each digit, resulting ...
*
Densely packed decimal
Densely packed decimal (DPD) is an efficient method for binary encoding decimal digits.
The traditional system of binary encoding for decimal digits, known as binary-coded decimal (BCD), uses four bits to encode each digit, resulting in signif ...
(DPD)
*
BCD (character encoding)
BCD (''binary-coded decimal''), also called alphanumeric BCD, alphameric BCD, BCD Interchange Code, or BCDIC, is a family of representations of numerals, uppercase Latin letters, and some special and control characters as six-bit character cod ...
*
Base 50 (numeral system)
*
Base conversion
Positional notation (or place-value notation, or positional numeral system) usually denotes the extension to any base of the Hindu–Arabic numeral system (or decimal system). More generally, a positional system is a numeral system in which th ...
References
Further reading
*
* {{cite book , author-first1=John Robert , author-last1=Ehrman , author-first2=James N. , author-last2=Snyder , publisher=
University of Illinois
The University of Illinois Urbana-Champaign (U of I, Illinois, University of Illinois, or UIUC) is a public land-grant research university in Illinois in the twin cities of Champaign and Urbana. It is the flagship institution of the University ...
, Graduate College Digital Computer Laboratory , title=The PORTHOS Executive System for the IBM 7094 - User's Manual , chapter=3.3.2.1 SCAT , date=1964-04-15 , pages= , url=https://core.ac.uk/download/pdf/4834584.pdf , access-date=2020-06-07 , url-status=live , archive-url=https://web.archive.org/web/20200607163131/https://core.ac.uk/download/pdf/4834584.pdf , archive-date=2020-06-07 , quote-page= , quote=
€¦SCAT is a two part assembler which in brief operates as follows: Programs written symbolically as one order per card are ingested during the first phase by the "compiler" which scans the program for symbols and outputs a condensed deck of cards (SQUOZE deck) containing tables of these symbols and the program condensed and efficiently coded. During the second phase this SQUOZE deck is ingested by the "modify and load" program which converts the object program to binary machine language which by option can either be loaded ready to run or output on absolute binary cards (23 orders per card) for loading and running at a later time. The "lister" can produce a printed version of the program at either of these stages. Symbolic corrections to a program can be inserted into the second phase along with the SQUOZE deck.
€¦} (1 page)
Executable file formats