stringtranslate.com

APLASTA

SQUOZE (abreviado como SQZ ) es una representación de memoria eficiente de un archivo de programa de objeto fuente y reubicable combinado con una tabla de símbolos en tarjetas perforadas que se introdujo en 1958 con el ensamblador SCAT [1] [2] en el sistema operativo SHARE (SOS) para el IBM 709. [ 3] [4] Un programa en este formato se llamaba baraja SQUOZE . [5] [6] [7] También se utilizó en máquinas posteriores, incluidas las IBM 7090 y 7094 .

Baraja SQUOZE

Una baraja SQUOZE contiene una forma binaria codificada del código de lenguaje ensamblador original; las barajas SQUOZE se convierten a código de máquina absoluto y se almacenan en la memoria mediante un programa de carga. [8] [9] [10]

Codificación de caracteres del nombre del identificador

En la codificación SQUOZE , los identificadores en la tabla de símbolos se representaban en un alfabeto de 50 caracteres , lo que permitía que una palabra de máquina de 36 bits representara seis caracteres alfanuméricos más dos bits de bandera, ahorrando así dos bits por cada seis caracteres, [6] [1] porque los seis bits normalmente asignados para cada carácter podían almacenar hasta 64 estados en lugar de solo los 50 estados necesarios para representar las 50 letras del alfabeto, y 50 6  < 2 34 .

El uso de la base 50 ya ahorra un bit cada tres caracteres, por lo que se utilizó en dos bloques de tres caracteres. El manual [1] tiene una fórmula para codificar seis caracteres ABCDEF:

Por ejemplo, "SQUOZE", normalmente de 36 bits 35 33 37 31 44 17(base 8) , se codificaría en dos partes de 17 bits para que quepan en los 34 bits como ( 0o220231 << 17 ) | 0o175473 == 0o110114575473.

Un ejemplo más simple de la misma lógica sería cómo un número BCD de tres dígitos ocuparía 12 bits, como 987: 9 8 7(base 16) 1001 1000 0111(base 2) , pero cualquier valor de este tipo podría almacenarse en 10 bits directamente, ahorrando dos bits, como 987: 3db(base 16) 11 1101 1011(base 2) .

Etimología

"Squoze" es un participio pasado jocoso del verbo "apretar". [5] [6]

El nombre SQUOZE se tomó prestado más tarde para esquemas de codificación de caracteres similares utilizados en las máquinas DEC ; [4] tenían un alfabeto de 40 caracteres (50 en octal ) y se llamaban DEC RADIX 50 y MOD40 , [11] pero a veces se les apodaba DEC Squoze .

Véase también

Referencias

  1. ^ abcd SHARE 709 System Committee, ed. (junio de 1961) [1959]. "Sección 02: Lenguaje SCAT; Apéndice 1: Tabla de caracteres permitidos; Apéndice 3: Formato de la baraja SQUOZE - Capítulo 8: Diccionario". Manual de referencia de SOS - Sistema SHARE para IBM 709 (PDF) . Nueva York, EE. UU.: SOS Group, International Business Machines Corporation . págs. 02.00.01 – 02.00.11, 12.03.08.01 – 12.03.08.02, 12.01.00.01. X28-1213. Distribución n.º 1–5. Archivado (PDF) desde el original el 2020-06-18 . Consultado el 2020-06-18 . pp. 12.03.08.01 – 12.03.08.02: […] Posiciones de bit utilizadas […] Bit 0 […] Bit 1 […] Bits 2–35 […] Representación en base 50 del símbolo con carácter de encabezamiento. […] La representación en base 50 de un símbolo se obtiene de la siguiente manera: […] a. Si el símbolo tiene menos de cinco caracteres, se encabeza (con un espacio en blanco si está en una región sin encabezado). […] b. El símbolo con su carácter de encabezamiento se justifica a la izquierda y cualquier posición de orden inferior no utilizada se llena con espacios en blanco. […] c. Cada carácter del símbolo se reemplaza por su equivalente en base 50. […] d. El resultado se convierte entonces de la siguiente manera: si el símbolo, después de que cada carácter se reemplaza por su equivalente en base 50, es ABCDEF, su representación en base 50 es (A*50 2 +B*50+C)*2 17 +(D*50 2 +E*50+F). […][1][2]
  2. ^ Salomon, David (febrero de 1993) [1992]. Escrito en la Universidad Estatal de California, Northridge, California, EE. UU. Chivers, Ian D. (ed.). Ensambladores y cargadores (PDF) . Serie Ellis Horwood en Computadoras y sus aplicaciones (1.ª ed.). Chicester, West Sussex, Reino Unido: Ellis Horwood Limited / Simon & Schuster International Group . ISBN 0-13-052564-2Archivado (PDF) del original el 23 de marzo de 2020. Consultado el 1 de octubre de 2008 .(xiv+294+4 páginas)
  3. ^ Jacob, Bruce; Ng, Spencer W.; Wang, David T.; Rodrigez, Samuel (2008). "Parte I Capítulo 3.1.3 Optimizaciones de localidad en línea: compresión dinámica de instrucciones y datos". Sistemas de memoria: caché, DRAM, disco . La serie Morgan Kaufmann en arquitectura y diseño de computadoras. Morgan Kaufmann Publishers / Elsevier. pág. 147. ISBN 978-0-12-379751-3.(900 páginas)
  4. ^ ab Jones, Douglas W. (2018). "Conferencia 7, Códigos de objeto, cargadores y enlazadores: pasos finales en el camino hacia el código de máquina". Sistemas operativos, primavera de 2018. Parte de la colección de sistemas operativos CS:3620. Universidad de Iowa , Departamento de Ciencias de la Computación. Archivado desde el original el 2020-06-06 . Consultado el 2020-06-06 .
  5. ^ ab Boehm, Elaine M.; Steel, Jr., Thomas B. (junio de 1958). Implementación de programación simbólica en máquinas: resumen de un artículo que se presentará en la reunión de verano de 1958 de la ACM. ACM '58: preimpresiones de artículos presentados en la 13.ª reunión nacional de la Association for Computing Machinery. págs. 17-1–17-3. doi :10.1145/610937.610953. Archivado desde el original el 2020-06-06 . Consultado el 2020-06-06 .(3 páginas)
  6. ^ abc Boehm, Elaine M.; Steel, Jr., Thomas B. (abril de 1959). "El sistema SHARE 709: implementación de la programación simbólica en la máquina". Journal of the ACM . 6 (2): 134–140. doi : 10.1145/320964.320968 . S2CID  16545134. pp. 137–138: […] Hay una característica interesante relacionada con la codificación de símbolos para su inclusión en el diccionario. En el modo habitual de expresión, los símbolos pueden construirse a partir de un conjunto de 50 caracteres. Si la codificación fuera carácter por carácter, se necesitarían seis bits para la representación de cada uno de esos caracteres. Como un símbolo puede contener hasta seis caracteres, se necesitaría un total de 36 bits para la representación de cada símbolo. Esto puede parecer conveniente, ya que la longitud de una palabra 709 es exactamente de 36 bits, pero si se considera un momento se ve que es desafortunado, ya que sería deseable tener uno o dos bits disponibles en la misma palabra que la representación del símbolo, lo que daría una pista sobre la naturaleza del símbolo. Estos bits de señalización se pueden obtener. Supongamos que cada carácter posible representa un dígito en un sistema numérico que tiene una base de cincuenta . Ahora, seis símbolos de caracteres se pueden leer como números naturales en un sistema de base cincuenta. Si estos números se convierten al sistema de base dos habitual, solo se requieren 34 bits para el número máximo y se ha logrado una ganancia de dos bits de señalización. Esto tiene la característica incidental de disminuir el número necesario de bits para representar el código completo, pero el tiempo de conversión superaría el ahorro por un margen significativo si no fuera por la longitud peculiar de la palabra 709. Aquí hay una ilustración clara del efecto crítico que las especificaciones precisas de la máquina en cuestión tienen sobre los detalles de un esquema de codificación. […](7 páginas)
  7. ^ Shell, Donald L. (abril de 1959) [octubre de 1958]. "El sistema SHARE 709: un esfuerzo cooperativo". Revista de la ACM . 6 (2): 123–127. doi : 10.1145/320964.320966 . S2CID  16476514.(5 páginas)
  8. ^ "Información general del sistema de procesamiento de datos IBM 7090" (PDF) . IBM. 1959. págs. 12-13. G22-6505-.
  9. ^ Ehrman, John Robert; Snyder, James N. (15 de abril de 1964). "3.3.2.1 SCAT". El sistema ejecutivo PORTHOS para IBM 7094 - Manual del usuario (PDF) . Universidad de Illinois , Laboratorio de Computación Digital de la Facultad de Posgrado. Archivado (PDF) del original el 7 de junio de 2020 . Consultado el 7 de junio de 2020 . […] SCAT es un ensamblador de dos partes que, en resumen, funciona de la siguiente manera: los programas escritos simbólicamente como un orden por tarjeta son ingeridos durante la primera fase por el "compilador" que escanea el programa en busca de símbolos y genera una baraja condensada de tarjetas (baraja SQUOZE) que contiene tablas de estos símbolos y el programa condensado y codificado de manera eficiente. Durante la segunda fase, el programa "modificar y cargar" ingiere esta baraja SQUOZE y la convierte en lenguaje de máquina binario, que puede cargarse listo para ejecutarse o imprimirse en cartas binarias absolutas (23 órdenes por carta) para cargarlas y ejecutarlas más tarde. El "lister" puede producir una versión impresa del programa en cualquiera de estas etapas. Las correcciones simbólicas de un programa se pueden insertar en la segunda fase junto con la baraja SQUOZE. […]
  10. ^ Manual de referencia de SOS (PDF) . IBM . Noviembre de 1959.
  11. ^ "8.10 .RAD50". Ensamblador PAL-11R - Manual del programador - Lenguaje ensamblador de programas y ensamblador reubicable para el sistema operativo de disco (2.ª edición revisada). Maynard, Massachusetts, EE. UU.: Digital Equipment Corporation . Mayo de 1971 [febrero de 1971]. pág. 8-8. DEC-11-ASDB-D . Consultado el 18 de junio de 2020. pág. 8-8: […] Los programas de los sistemas PDP-11 a menudo manejan símbolos en una forma especialmente codificada llamada RADIX 50 (esta forma a veces se denomina MOD40 ). Esta forma permite empaquetar 3 caracteres en 16 bits […][3]

Lectura adicional