SQUOZE (сокращенно SQZ ) представляет собой эффективное по памяти представление объединенного исходного и перемещаемого объектного программного файла с таблицей символов на перфокартах, который был представлен в 1958 году с ассемблером SCAT [1] [2] в операционной системе SHARE (SOS). ) для IBM 709 . [3] [4] Программа в этом формате называлась декой SQUOZE . [5] [6] [7] Он также использовался на более поздних машинах, включая IBM 7090 и 7094 .
В кодировке SQUOZE идентификаторы в таблице символов были представлены в 50-символьном алфавите , что позволяло 36-битному машинному слову представлять шесть буквенно-цифровых символов плюс два флаговых бита, таким образом экономя два бита на шесть символов, [6] [1] потому что шесть битов, обычно выделяемых для каждого символа, могут хранить до 64 состояний, а не только 50 состояний, необходимых для представления 50 букв алфавита, а 50 6 <2 34 .
Большинство значимых цифр | Наименее значащие цифры | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
Декабрь | +0 | +1 | +2 | +3 | +4 | +5 | +6 | +7 | ||
Октябрь | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | ||
Декабрь | Октябрь | Корзина | 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 |
+0 | 0 | 000 | пространство | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
+8 | 1 | 001 | 7 | 8 | 9 | А | B | C | D | E |
+16 | 2 | 010 | F | г | ЧАС | я | J | K | L | M |
+24 | 3 | 011 | N | О | п | Q | р | S | Т | U |
+32 | 4 | 100 | V | W | Икс | Y | Z | знак равно | /% | ) ⌑ |
+40 | 5 | 101 | + & | - | - @ | + & | - | * | / | $ |
+48 | 6 | 110 | , | . | N / A | N / A | N / A | N / A | N / A | N / A |
«Squoze» - шутливое причастие прошедшего времени от глагола «сжимать». [5] [6]
Название SQUOZE позже было заимствовано для аналогичных схем, используемых на машинах DEC ; [4] они имели алфавит из 40 символов (50 в восьмеричной системе ) и назывались DEC RADIX 50 и MOD40 , [8] но иногда назывались DEC Squoze .
[…] Используемые битовые позиции […] Бит 0 […] Бит 1 […] Биты 2–35 […] База 50представление символа с заголовком. […] Представление символа по основанию 50 получается следующим образом: […] a. Если символ состоит менее чем из пяти символов, он возглавляется (пробелом, если он находится в незаглавленной области). […] Б. Символ с его символом заголовка выравнивается по левому краю, а все неиспользуемые младшие позиции заполняются пробелами. […] C. Каждый символ в символе заменяется его эквивалентом по основанию 50. […] D. Результат затем преобразуется следующим образом: если символ после того, как каждый символ заменяется его эквивалентом по основанию 50, равен ABCDEF, его представление по основанию 50 будет (A * 50 2 + B * 50 + C) * 2 17 + (Д * 50 2 + Е * 50 + Ж). […][1] [2]
[…] Есть интересная особенность, связанная с кодировкой символов для включения в словарь. В обычном способе выражения символы могут быть составлены из набора из 50 знаков. Если бы кодирование было посимвольным, для представления каждого такого символа потребовалось бы шесть битов. Поскольку символ может содержать до шести символов, для представления каждого символа потребуется всего 36 битов. Это может показаться удобным, поскольку длина слова 709 составляет ровно 36 бит, но мгновенное рассмотрение показывает, что это неудачно, поскольку было бы желательно иметь несколько битов в том же слове, что и представление символа, что дает ключ к разгадке. природе символа. Эти биты отметки могут быть получены. Пусть каждый возможный символ представляет цифру в системе счисления, имеющуюоснование пятидесяти . Теперь шесть символьных символов можно читать как натуральные числа в системе с основанием пятидесяти. Если эти числа преобразованы в обычную систему с основанием два, для максимального числа потребуется только 34 бита, и будет получено усиление в два бита флага. У этого есть случайная особенность уменьшения необходимого количества битов для представления всего кода, но время преобразования перевесило бы экономию со значительным запасом, если бы не специфическая длина слова 709. Вот ясная иллюстрация того критического влияния, которое точные спецификации рассматриваемой машины имеют над деталями схемы кодирования. […]CS1 maint: неподходящий URL ( ссылка ) (7 страниц)
[…]
Системные
программы
PDP-11
часто обрабатывают символы в специально закодированной форме, называемой
RADIX 50
(эту форму иногда называют
MOD40
).
Эта форма позволяет упаковывать 3 символа в 16 бит […][3]
[…] SCAT - это двухкомпонентный ассемблер, который вкратце работает следующим образом: программы, написанные символически в виде одного порядка на карту, на первом этапе загружаются «компилятором», который сканирует программу на наличие символов и выводит сжатую колоду карт (SQUOZE колода), содержащий таблицы этих символов и программу, сжатую и эффективно закодированную. На втором этапе эта колода SQUOZE загружается программой «изменения и загрузки», которая преобразует объектную программу в двоичный машинный язык, который по желанию может быть либо загружен готовым к запуску, либо выводится на абсолютные двоичные карты (23 заказа на карту) для загрузки. и работает в более позднее время. «Листер» может создать печатную версию программы на любом из этих этапов. Символические поправки к программе могут быть вставлены во вторую фазу вместе с декой SQUOZE. […](1 стр.)