MIX (lenguaje de programación)MIX es una computadora hipotética usada en la monografía de Donald Knuth, El Arte de Programar Computadoras (en inglés, The Art of Computer Programming o TAOCP), MIX es el modelo numérico 1009, que deriva de modelos numéricos y nombres contemporáneos, máquinas comerciales influyentes para el autor. (“MIX” también es el valor 1009 en numeración romana.) En la década de los '60s MIX fue superado por una nueva (también hipotética) arquitectura computacional, MMIX (2009), incorporada en las siguientes ediciones de TAOCP. Las implementaciones de software tanto para arquitecturas MIX como MMIX, han sido desarrolladas y liberadas por Knuth como “MIXware” y “MMIXware,” respectivamente. Existen también muchos derivados de los emuladores MIX/MMIX de Knuth. GNU MDK, por ejemplo, es un paquete de software liberado y corre sobre una gran variedad de plataformas. Su propósito para la educación es similar a la Arquitectura DLX desarrollada por John L. Hennessy y David A. Patterson, para la Arquitectura de computadoras: Una Aproximación Cuantitativa (en inglés, Computer Architecture: A Quantitative Approach). ArquitecturaMIX es una computadora híbrida binaria/decimal. Cuando se programa en binario, cada byte contiene 6 bits (valores de rango de 0 a 63). En el decimal, cada byte tiene 2 dígitos decimales (valores del rango 0 a 99). Los bytes se agrupan en palabras de cinco bytes además de un signo. Muchos de los programas escritos para MIX trabajan indistintamente en binario o decimal, siempre y cuando el almacenamiento no supere el valor de 63 en un simple byte. Una palabra puede contener valores en un rango de −1.073.741.823 a 1.073.741.823 en modo binario y −9.999.999.999 a 9.999.999.999 en modo decimal. la representación de valores integrales de signo y Magnitud distinguen en la arquitectura MIX entre “−0” y “+0.”, esto contrasta con la computadoras modernas, para quienes las representaciones de cantidades integrales de complemento a dos incluyen una representación única para el cero, pero para quien el rango mayor de valores pertenece a los números negativos y no a los positivos. RegistradoresHay 9 tipos de registros en MIX:
Se asume como un byte a 6 bits. La mayoría puede especificar la posición de los campos (bytes) del registro que serán modificados, usando un sufijo con la forma (primero:último) ((first:last)). El campo de orden cero es el bit de signo. MIX también registra también si la operación anterior se sobrecargó, y tiene un triple indicador de comparación (menor que'/less than, igual que/equal to, o mayor que/ greater than). En el siguiente diagrama se muestra como se dividen esos campos.
Memoria y entrada/salidaLa máquina MIX tiene 4000 palabras de almacenamiento (cada una con 5 bytes y un signo), direcciones desde 0 a 3999. Una variedad de dispisitivo de entrada y salida también incluidas:
InstructionesCada instrucción máquina en memoria ocupa una palabra, y consiste en cuatro elementos: la dirección (2 bytes y el signo de la palabra) en memoria a ser leída o escrita; una especificación de índice (1 byte, describiendo donde se usara el índice de registro rI) para agregar a la dirección; una modificación (1 byte) que especifica qué partes del espacio del registro o memoria será leída o alterada; y el código de la operación (1 byte). Todo el código de la operación tiene una asociación mnemónica. Los programas en MIX frecuentemente usan código flexible, en particular para retornar desde una subrutina. ya que MIX carece de una pila de subrutina para el retorno automático. El código flexible facilita la modicación del byte, permitiendo que el programa almacene datos para, por ejemplo, la parte de una dirección de destino de instrucción, dejando sin modificar al resto de la instrucción. Los programas MIX están generalmente construidos usando el Lenguaje Ensamblador MIX o MIXAL. El siguiente ejemplo fue tomado del tema códigos de programas hola mundo en diferentes lenguajes de programación:
Véase tambiénEnlaces externos
|