Articulo de referencia

Compilador de código fuente a código fuente

Un traductor de código fuente , compilador de código fuente ( compilador S2S ), transcompilador o transpilador [ 1 ] [ 2 ] [ 3 ] es un tipo de traductor que toma como entrada el...

Un traductor de código fuente , compilador de código fuente ( compilador S2S ), transcompilador o transpilador [ 1 ] [ 2 ] [ 3 ] es un tipo de traductor que toma como entrada el código fuente de un programa escrito en un lenguaje de programación y produce un código fuente equivalente en el mismo o en un lenguaje de programación diferente, generalmente como una representación intermedia . Un traductor de código fuente convierte entre lenguajes de programación que operan aproximadamente al mismo nivel de abstracción , mientras que un compilador tradicional traduce de un lenguaje de nivel superior a un lenguaje de nivel inferior . Por ejemplo, un traductor de código fuente puede realizar una traducción de un programa de Python a JavaScript , mientras que un compilador tradicional traduce de un lenguaje como C a ensamblador o Java a bytecode . [ 4 ] Un compilador de paralelización automática frecuentemente toma como entrada un programa en un lenguaje de alto nivel y luego transforma el código y lo anota con anotaciones de código paralelo (por ejemplo, OpenMP ) o construcciones de lenguaje (por ejemplo, sentencias de Fortranforall ). [ 2 ] [ 5 ]

Otro propósito de la compilación de código fuente a código fuente es traducir el código heredado para que utilice la siguiente versión del lenguaje de programación subyacente o una interfaz de programación de aplicaciones ( API ) que rompe la compatibilidad con versiones anteriores. Realizará una refactorización automática del código , lo cual es útil cuando los programas a refactorizar están fuera del control del implementador original (por ejemplo, convertir programas de Python 2 a Python 3, o convertir programas de una API antigua a una nueva API) o cuando el tamaño del programa hace que refactorizarlo manualmente sea poco práctico o requiera mucho tiempo.

Los transcompiladores pueden mantener la estructura del código traducido lo más parecida posible al código fuente para facilitar el desarrollo y la depuración del código fuente original, o pueden modificar la estructura del código original de tal manera que el código traducido no se parezca al código fuente. [ 6 ] También existen utilidades de depuración que mapean el código fuente transcompilado de vuelta al código original; por ejemplo, el estándar JavaScript Source Map permite mapear el código JavaScript ejecutado por un navegador web de vuelta al código fuente original cuando el código JavaScript fue, por ejemplo, minimizado o producido por un lenguaje transcompilado a JavaScript. [ 7 ]

Algunos ejemplos son Closure Compiler , CoffeeScript , Dart , Haxe , Opal , TypeScript y Emscripten . [ 8 ]

traductores de lenguaje ensamblador

Los denominados traductores de lenguaje ensamblador son una clase de traductores de código fuente a código fuente que convierten código de un lenguaje ensamblador a otro, incluyendo (pero no limitándose a) diferentes familias de procesadores y plataformas de sistemas .

Intel CONV86

Intel comercializó su procesador de 16 bits 8086 como compatible en código fuente con el 8080 , un procesador de 8 bits. [ 9 ] Para ello, Intel disponía de un traductor basado en ISIS-II del código fuente del 8080 al 8086 llamado CONV86 [ 10 ] [ 11 ] [ 12 ] [ 13 ] (también conocido como CONV-86 [ 14 ] y CONVERT  86 [ 15 ] [ 16 ] ) disponible para clientes OEM desde 1978, posiblemente el primer programa de este tipo. [ nb 1 ] Admitía múltiples niveles de traducción y funcionaba a 2  MHz en un sistema de desarrollo de microprocesadores Intel MDS-800 con unidades de disquete de 8 pulgadas . Según los informes de los usuarios, no funcionaba de forma muy fiable. [ 17 ] [ 18 ]

SCP TRANS86

Seattle Computer Products (SCP) ofreció TRANS86.COM, [ 16 ] [ 19 ] [ 20 ] escrito por Tim Paterson en 1980 mientras desarrollaba 86-DOS . [ 21 ] [ 22 ] [ 23 ] La utilidad podía traducir el código fuente de ensamblador de Intel 8080 y Zilog Z80 (con mnemónicos de Zilog/ Mostek ) al código fuente .ASM para el Intel 8086 (en un formato solo compatible con el ensamblador cruzado ASM86 de SCP para CP/M-80 ), pero solo admitía un subconjunto de códigos de operación , registros y modos, y a menudo todavía requería una corrección y reelaboración manual significativa posteriormente. [ 24 ] [ 21 ] Además, al realizar solo una mera transliteración , [ 15 ] [ 19 ] [ 10 ] [ 11 ] el traductor de fuerza bruta de una sola pasada no realizaba ninguna optimización de registros y saltos. [ 25 ] [ 26 ] Requería aproximadamente 24 KB de RAM. [ 16 ] La versión 1 de SCP de TRANS86.COM se ejecutaba en sistemas basados ​​en Z80. [ 16 ] [ 19 ] Una vez que 86-DOS estaba en funcionamiento, Paterson, en un enfoque inspirado en el autoalojamiento , utilizó TRANS86 para convertirse en un programa que se ejecutaba bajo 86-DOS. [ 23 ] [ 19 ] Numerada como versión 2 , esta se denominó TRANS.COM. [ 19 ] [ 26 ] [ 25 ] [ 27 ] [ 28 ] Más tarde, en 1982, el traductor aparentemente también estaba disponible en Microsoft . [ 16 ] [ 29 ] 

Sorcim TRANS86

También llamado TRANS86 , Sorcim también ofreció un traductor de 8080 a 8086 desde diciembre de 1980. [ 30 ] [ 15 ] Al igual que el programa de SCP, fue diseñado para portar código de aplicación CP/M-80 (en formato de ensamblador ASM, MAC, RMAC o ACT80) a MS-DOS (en un formato compatible con ACT86). [ 30 ] [ 16 ] [ 31 ] [ 32 ] En formato ACT80 también admitía algunos mnemónicos Z80. La traducción se realizaba instrucción por instrucción con cierta optimización aplicada a los saltos condicionales. El programa se ejecutaba en CP/M-80, MP/M-80 y Cromemco DOS con un mínimo de 24  KB de RAM y no tenía restricciones en el tamaño del archivo fuente. [ 16 ] [ 33 ]

Investigación digital XLT86

Mucho más sofisticado y el primero en introducir tecnologías de compiladores optimizadores en el proceso de traducción de código fuente fue XLT86 1.0 de Digital Research en septiembre de 1981. XLT86 1.1 estuvo disponible en abril de 1982. [ 34 ] El programa fue escrito por Gary Kildall [ 15 ] [ 35 ] [ 36 ] [ 37 ] y tradujo el código fuente .ASM para el procesador Intel 8080 (en un formato compatible con los ensambladores ASM, MAC o RMAC) al código fuente .A86 para el 8086 (compatible con ASM86). Utilizando el análisis del flujo de datos global en el uso de registros del 8080, [ 38 ] [ 15 ] [ 39 ] [ 40 ] el traductor multipaso de cinco fases también optimizaría la salida para el tamaño del código y se encargaría de las convenciones de llamada ( las llamadas BDOS de CP/M-80 se asignaron a llamadas BDOS para CP/M-86 ), de modo que los programas de CP/M-80 y MP/M-80 pudieran portarse a las plataformas CP/M-86 y MP/M-86 automáticamente. XLT86.COM en sí mismo fue escrito en PL/I-80 para plataformas CP/M-80. [ 41 ] [ 16 ] [ 34 ] [ 42 ] El programa ocupaba 30 KB de RAM para sí mismo más memoria adicional para el gráfico del programa . En un sistema de memoria de 64 KB, el tamaño máximo de archivo fuente admitido era de aproximadamente 6 KB, [ 41 ] [ 16 ] [ 43 ] [ 34 ] por lo que los archivos más grandes debían dividirse en consecuencia antes de la traducción. [ 16 ] [ 34 ] Como alternativa, XLT86 también estaba disponible para DEC VAX/VMS . [ 16 ] [ 34 ] Aunque la entrada y salida de XLT86 funcionaban a nivel de código fuente, la representación en memoria del programa del traductor y las tecnologías de optimización de código aplicadas sentaron las bases para la recompilación binaria . [ 44 ] [ 45 ] [ 46 ]     

Otros

2500  AD  Software ofrecía un traductor de código fuente de 8080 a 8086 como parte de su paquete XASM para máquinas CP/M-80 con Z80, así como para sistemas Zilog ZEUS y Olivetti PCOS . [ 47 ]

Desde 1979, Zilog ofreció un traductor de Z80 a Z8000 como parte de su  sistema de desarrollo PDS 8000. [ 48 ] [ 49 ] [ 50 ] [ 51 ] [ 52 ] [ 18 ] Advanced Micro Computers (AMC) [ 52 ] [ 18 ] y 2500  AD  Software también ofrecieron traductores de Z80 a Z8000. [ 47 ] Este último se denominó TRANS [ 53 ] [ 54 ] y estaba disponible para Z80 CP/M, CP/M-86, MS-DOS y PCOS. [ 47 ]

El kit de desarrollo Z88DK proporciona un traductor de código fuente de Z80 a i486 dirigido a nasm llamado "to86.awk", escrito en 2008 por Stefano Bodrato. [ 55 ] A su vez, se basa en un convertidor de 8080 a Z80 escrito en 2003 por Douglas Beattie, Jr., llamado "toz80.awk". [ 55 ]

En 2021, Brian Callahan escribió un traductor de código fuente de CP/M 2.2 para 8080 a MS-DOS dirigido a nasm llamado 8088ify. [ 56 ]

Implementaciones de lenguajes de programación

Las primeras implementaciones de algunos lenguajes de programación comenzaron como transcompiladores, y la implementación predeterminada para algunos de esos lenguajes aún lo es. Además de la tabla que aparece a continuación, un mantenedor de CoffeeScript proporciona una lista de lenguajes que se compilan a JavaScript. [ 57 ]

Portar un código base

Cuando los desarrolladores desean migrar a un lenguaje diferente conservando la mayor parte del código existente, puede ser preferible usar un transcompilador en lugar de reescribir todo el software manualmente. Dependiendo de la calidad del transcompilador, el código puede requerir o no intervención manual para funcionar correctamente. Esto difiere de los lenguajes transcompilados, cuyas especificaciones exigen que el código fuente resultante funcione siempre sin modificaciones. Todos los transcompiladores utilizados para migrar un código fuente requerirán ajustes manuales si se busca lograr la máxima calidad en términos de legibilidad y cumplimiento de las convenciones de la plataforma.

Pipelines de transcompilación

Una canalización de transcompilación es el resultado de la transcompilación recursiva . Al encadenar múltiples capas de tecnología, con un paso de transcompilación entre cada capa, la tecnología se puede transformar repetidamente, creando de manera efectiva una especificación distribuida independiente del lenguaje .

XSLT es una herramienta de transformación de propósito general que se puede utilizar entre muchas tecnologías diferentes para crear una canalización de código derivada . [ 73 ]

transcompilación recursiva

La transcompilación recursiva (o transpilación recursiva ) es el proceso de aplicar la noción de transcompilación de forma recursiva para crear una secuencia de transformaciones (que a menudo parten de una única fuente de información ) que convierten repetidamente una tecnología en otra.

Al repetir este proceso, se puede transformar A → B → C → D → E → F y luego volver a A(v2) . Parte de la información se conservará a través de esta secuencia, de A → A(v2) , y esa información (a un nivel abstracto) demuestra en qué coinciden los componentes A-F.

En cada una de las distintas versiones que produce la canalización del transcompilador, esa información se conserva. Puede adoptar diversas formas y tamaños, pero cuando regresa a A (v2) , tras haber sido transcompilada seis veces en la canalización anterior, la información vuelve a su estado original.

Esta información que sobrevive a la transformación a través de cada formato, de A–F–A(v2) , es (por definición) contenido derivado o código derivado .

La transcompilación recursiva aprovecha el hecho de que los transcompiladores pueden mantener el código traducido lo más parecido posible al código fuente para facilitar el desarrollo y la depuración del código fuente original, o bien pueden modificar tanto la estructura del código original que el código traducido no se parezca al código fuente. También existen utilidades de depuración que mapean el código fuente transcompilado de vuelta al código original; por ejemplo, los mapas de origen de JavaScript permiten mapear el código JavaScript ejecutado por un navegador web de vuelta al código fuente original en un lenguaje transcompilado a JavaScript.

Véase también

Notas

  1. Un programa comercial que se sabe que fue traducido automáticamente bajo ISIS-II desdeel código fuente 8080 CP/M-80 al 8086 CP/M-86 usandoCONV86 de Intel fue WordStar 3.0 de MicroPro en septiembre de 1981.

Referencias

  1. ARC-Softwaresystems (junio de 1988). "Aus BASIC mach C: B→C Transpiler" [ Convierta BASIC en C: B→C Transpiler ] . Amiga-Magazin (Anuncio) (en alemán). vol.  1988, núm.  6. Esslingen, Alemania: Markt & Technik Verlag Aktiengesellschaft . pag.  101. ISSN 0933-8713 . Archivado desde el original el 1 de febrero de 2020 . Consultado el 18 de enero de 2020 . […] ¡Achtung C - und Basic -Programmierer! […] Jetzt gibt es den B→C TRANSPILER das einzigartige Umwandlungs-Software-System von ARC […] El B→C TRANSPILER übersetzt lauffähige AMIGA -Programme básico en código C compilador. […] Durch Spezialbefehle kann C-Code en Basicprogramme directamente integrado werden. […] Basic-Befehle werden erweitert transpiliert. ( HAM-Modus , IFF , usw. werden unterstützt). […] Mit this Konzept neuester Generation verbindet der B→C TRANSPILER auf einzigartige Weise die Vorteile eines Interpreters mit denen eines Compilers […] 
  2. 1 2Pountain, Dick (diciembre de 1989). «Configuración de programas paralelos, Parte 1: El Transpilador Occam, actualmente en desarrollo, facilitará la escritura de software para el procesamiento paralelo» . BYTE . Vol.  14, n.º  13. McGraw-Hill, Inc. págs. 349-352 . ISSN 0360-5280 . ark:/13960/t34188734 . Consultado el 6 de enero de 2022. pág . 350: […] El nombre Transpilador pretende sugerir una combinación de transputador y compilador , del mismo modo que transputador se acuñó a partir de transistor y computadora (es decir, una computadora que también es un componente). […]   (Nota: Se utiliza el término transpilador Occam como sinónimo de un compilador de código fuente a código fuente que funciona como un preprocesador que toma un programa Occam normal como entrada y deriva un nuevo código fuente Occam como salida con asignaciones de enlace a canal, etc., añadidas, configurándolo así para el procesamiento paralelo para que se ejecute de la forma más eficiente posible en una red de transcomputadores ).
  3. Sector 7 Software Limited (07-12-1993) [22-09-1992]. "Transpiler" . Gaceta Oficial de la Oficina de Patentes y Marcas de los Estados Unidos . Clase 9. Vol. 1157 (1.ª ed.). Bedford, Bedfordshire, Reino Unido: Oficina de Patentes y Marcas de los Estados Unidos . pág. TM 81. SN 74-316.610. Archivado del original el 01-02-2020 . Recuperado el 18-01-2020 . […] Prioridad reclamada en virtud de la Sec. 44(D) en la solicitud del Reino Unido n.º 1495953, presentada el 31-03-1992. N.º de registro A1495953, de fecha 31-03-1992, expira el 31-03-1999. Para software y programas informáticos (US Cl. 38). Primer uso: 1 de agosto de 1991; en el comercio: 1 de agosto de 1991.     (Nota: Esta empresa desarrolla productos como VX/BASIC, un transpilador de BASIC a C para DEC VMS . A pesar de lo que afirman, este no es el primer uso público del término transpilador; véase, por ejemplo, el transpilador de BASIC a C de ARC para Amiga en 1988 y el transpilador Occam de Concurrent Technology Systems (CTS) en 1989).
  4. 1 2 "Transpilador" . devopedia.org . 17 de marzo de 2017. Archivado del original el 5 de noviembre de 2019. Consultado el 22 de junio de 2019 .
  5. "Tipos de compiladores" . compilers.net. 1997–2005. Archivado del original el 19 de julio de 2019. Consultado el 28 de octubre de 2010 .
  6. Fowler, Martin (12 de febrero de 2013). "Compilación transparente" . Archivado del original el 1 de enero de 2020. Recuperado el 13 de febrero de 2013 .
  7. "Especificación del formato del mapa fuente" . tc39.es. 14 de marzo de 2026. Archivado del original el 24 de abril de 2026. Consultado el 26 de abril de 2026 .
  8. Epic Games ; Mozilla . "HTML5 Epic Citadel" .
  9. Scanlon, Leo J. (1988). Lenguaje ensamblador 8086/8088/80286 . Brady Books. pág . 12. ISBN  978-0-13-246919-7[ …] El 8086 es compatible con el software del 8080 a nivel de lenguaje ensamblador. […]
  10. 1 2Instrucciones de funcionamiento del convertidor de lenguaje ensamblador MCS-86 para usuarios de ISIS-II . A30/379/10K TL. Santa Clara, California, EE. UU.: Intel Corporation . Marzo de 1979 [1978]. Número de pedido 9800642A . Consultado el 18 de enero de 2020 .(Nota: Puede encontrar una versión más reciente de este manual aquí ).
  11. 1 2Instrucciones de funcionamiento del convertidor de lenguaje ensamblador MCS-86 para usuarios de ISIS-II . A175/280/7.5 FL. Santa Clara, California, EE. UU.: Intel Corporation . Febrero de 1980 [1978]. Número de pedido 9800642-02 . Consultado el 18 de enero de 2020 .(Nota: Puede encontrar una versión anterior de este manual aquí ).
  12. "Entorno de desarrollo 8086/8087/8088". Manual de referencia del lenguaje ASM86 (PDF) . Santa Clara, California, EE. UU.: Intel Corporation . Noviembre de 1983 [septiembre de 1981]. págs. 1-1 – 1-2 . Número de pedido 121703-003 . Consultado el 28 de noviembre de 2023 . (404 páginas)
  13. Nelson, Ross P. (enero de 1989) [1988]. El libro del 80386: Guía del programador en lenguaje ensamblador para el 80386. Serie de programación de Microsoft (1.ª ed.). Microsoft Press . pág. 2. ISBN   978-1-55615-138-5[ …] Un programa traductor de Intel podría convertir programas ensamblador 8080 en programas ensamblador 8086 […]
  14. Manual del usuario de la familia 8086. Intel Corporation . Octubre de 1979 [1978]. págs. 2 - 74, 2 - 92, B - 176. Número de pedido 9800722-03 . Recuperado el 18 de enero de 2020. [ …] otros programas completan las herramientas de desarrollo de software disponibles para el 8086 y el 8088. […] CONV-86 puede realizar la mayor parte del trabajo de conversión necesario para traducir módulos fuente de lenguaje ensamblador 8080/8085 a módulos fuente ASM-86. […] Para facilitar la conversión de programas de lenguaje ensamblador 8080A / 8085A para ejecutarse en la placa iSBC 86/12A, CONV-86 está disponible bajo el sistema operativo ISIS-II . 
  15. 1 2 3 4 5 Freiberger, Paul (1981-10-19). "Los traductores de programas lo hacen literalmente, y a veces en contexto" . InfoWorld – Noticias para usuarios de microcomputadoras . Sección especial: Compatibilidad informática. Vol. 3, n.º 22. Popular Computing, Inc. pág. 19. ISSN 0199-6649 . Archivado del original el 1 de febrero de 2020. Recuperado el 15 de enero de 2020. [ …] "A menos que tengas un esquema de traducción que tenga en cuenta las peculiaridades del microprocesador de destino, no hay manera de que un traductor automático funcione", explica Daniel Davis, programador de Digital Research . "Terminarás con transliteraciones directas ". […] A pesar de todas estas limitaciones, recientemente se han logrado avances en el desarrollo de traductores. En particular, Digital Research ha presentado su traductor de código ensamblador de ocho a dieciséis bits. Según la investigación realizada por Gary Kildall , presidente de Digital Research, el XLT86 parece ofrecer avances respecto a la tecnología de traducción de software disponible anteriormente. Al igual que Trans de Sorcim y Convert 86 de Intel , el paquete de Kildall traduce código en lenguaje ensamblador de un microprocesador 8080 a un 8086. Sin embargo, Kildall ha aplicado una técnica de análisis de flujo global que tiene en cuenta algunas de las principales limitaciones de otros traductores. El procedimiento analiza el uso de registros y banderas en secciones del código 8080 para eliminar el código no esencial. Según Davis, programador de Digital Research, el algoritmo que utiliza Kildall permite al traductor considerar el contexto durante la traducción del programa. Hasta ahora, uno de los principales problemas de cualquier programa traductor ha sido la incapacidad del software para hacer mucho más que la transliteración. Si el nuevo traductor de Digital Research realmente avanza la tecnología hasta el punto de que se pueda considerar el contexto, entonces es posible que proliferen más traductores de software en el mercado de microcomputadoras.     
  16. 1 2 3 4 5 6 7 8 9 10 11 Taylor, Roger; Lemmons, Phil (junio de 1982). "Migración ascendente: parte 1: traductores: uso de programas de traducción para trasladar programas de CP/M-86 a CP/M y MS-DOS" [ Uso de programas de traducción para trasladar programas de CP/M a CP/M-86 y MS-DOS ] (PDF) . BYTE . Vol. 7, n.º 6. BYTE Publications Inc. págs. 321–322 , 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344. ISSN 0360-5280 . CODEN BYTEDJ . Archivado (PDF) del original el 16 de enero de 2020 . Recuperado el 15/01/2020 . […] El XLT86 de Digital Research toma el código fuente estándar del 8080 en un formato compatible con los ensambladores ASM, MAC o RMAC y lo convierte a código fuente del 8086 en un formato compatible con ASM86 que opera bajo CP/M-80 o CP/M-86 . Dado que XLT86 está escrito en PL/I-80 , el traductor puede ejecutarse de forma independiente bajo CP/M-80 o para desarrollo cruzado bajo VAX/VMS. Produce código 8086 optimizado en un proceso de cinco fases y múltiples pasadas , realizando un análisis global del flujo de datos para determinar el uso óptimo de los registros. Aunque no se admiten definiciones de macros, sí se admiten directivas de ensamblaje condicional […] si desea expansión de macros, puede usar una pasada a través de MAC o RMAC para producir un archivo PRN que se puede editar […] para producir un archivo fuente expandido para la entrada aceptable para XLT86. XLT86 no reconoce las instrucciones Z80 . XLT86 transfiere los bucles de repetición al código fuente del 8086. XLT86 analiza el programa fuente en su totalidad, determinando la estructura de bloques y el uso de registros/indicadores. A partir de esta información, traduce el código a código ensamblador 8086 de forma optimizada. El algoritmo de decisión para cada tipo de instrucción se proporciona en […] el manual […] El mapeo de registros generalmente sigue […] con una relación flexible entre el AX del 8086 y el PSW del 8080 ; la relación exacta se determina a partir del uso de registros en el momento de la traducción . Hay muchas opciones de tiempo de ejecución disponibles para controlar el proceso de traducción, tanto en la línea de comandos como integradas en el texto fuente del 8080. […] XLT86 es un programa sofisticado que realiza un trabajo razonable de optimización de la traducción del código fuente del 8080 al código fuente del 8086. BDOS     Las llamadas de CP/M-80 se asignan a llamadas BDOS compatibles con CP/M-86. XLT86 tiene características especiales para manejar la traducción de instrucciones JMP y CALL condicionales en el código fuente del 8080. En las instrucciones del 8080, las instrucciones JMP y CALL pueden alcanzar cualquier dirección dentro de la región de 64K bytes. Las instrucciones JMP condicionales del 8086 solo pueden alcanzar 128 bytes a cada lado del registro IP […]. XLT86 examina el destino de la instrucción JMP condicional. Si no se puede alcanzar el destino, XLT86 cambia el sentido de la instrucción JMP condicional y omite una instrucción JMP larga a la dirección de destino. Dado que no hay instrucciones CALL o RET condicionales en el 8086, se cambia el sentido de la condición y se realiza una instrucción JMP condicional corta para omitir una instrucción CALL o RET incondicional. […] los registros de segmento permiten la separación de las regiones de código y datos. […] XLT86 examina una expresión y determina el segmento adecuado para la instrucción en particular. […](13 páginas)
  17. Guzis, Charles "Chuck" P. (24-02-2013). "Re: ¿Qué pasaría si IBM no hubiera elegido la CPU de Intel?" . Vintage Computer Forum . Género: Otros. Archivado del original el 16-01-2020 . Recuperado el 15-01-2020 . […] El ensamblador 8086 original se ejecutaba en un sistema de desarrollo MDS-80 equipado con 8080. Uno de los primeros productos fue un traductor de nivel fuente de 8080 a 8086. Recuerdo que la velocidad de traducción era fenomenalmente lenta. […] nuestro vendedor se ofreció a realizar una prueba de conversión y verificación en la oficina de ventas local […] Nosotros […] comenzamos el trabajo en la serie ISIS-II MDS 200 allí; incluso tenían un disco duro, que era una opción escandalosamente cara para un MDS […] todavía funcionando cuando nos fuimos por la noche. Todavía no estaba listo a la mañana siguiente […] Aproximadamente dos semanas después, tras una revisión del traductor por parte del equipo de software de Intel , Ed regresó con el programa traducido. Era aproximadamente un 50 % más grande que la versión original para el 8085 , lo que contradecía en cierto modo las afirmaciones de Intel sobre el traductor. […]
  18. 1 2 3 Guzis, Charles "Chuck" P. (2016-12-31) [2016-12-30]. "Re: ¿Código DOS en CP/M? Revisado…" . Vintage Computer Forum . Género: CP/M y MP/M. Archivado del original el 16-01-2020 . Recuperado el 15-01-2020 . [...] Intel tenía un traductor alojado en ISIS de código 8080 a 8086. Recuerdo haber pasado un día muy frustrante en la oficina de ventas local de Intel con un fragmento de código 8080 de muestra (un paquete básico de punto flotante BCD para el 8080) y esperar durante horas a que el traductor terminara su trabajo, y volver a casa decepcionado. Aproximadamente una semana después, recibí una llamada diciendo que finalmente habían resuelto los errores y que podía recoger mi programa traducido. Dicho programa era más del doble del original en términos de bytes de objeto. En aquel entonces, me mostré algo escéptico ante la afirmación de Intel de que el código del 8086 era mucho más compacto que su contraparte del 8080. Y, de todos modos, la maldita cosa no funcionó cuando se puso a prueba. […] Existían otros traductores de 80 a 86 para CP/M . Recuerdo que Sorcim tenía uno. AMC también tenía un traductor de Z80 a Z8000 . […] El traductor [de Intel] tenía varios niveles de traducción […] estaba el "literal", que conservaba el funcionamiento detallado […] era ISIS-II , ejecutándose en un MDS-800, a, ¿qué?, 2 MHz con disquetes de 8". […] 
  19. 1 2 3 4 5 "Lista de cambios no oficial de Microsoft Macro Assembler (MASM)" . bytepointer.com . 21/08/2018 [08/09/2016]. Archivado del original el 17/07/2019 . Consultado el 18/01/2020 . […] Tim Paterson […] comentó lo siguiente sobre el ensamblador 8086 que escribió en SCP : «El ensamblador 8086 que escribí originalmente estaba en lenguaje ensamblador Z80 y se ejecutaba bajo CP/M . Creo que se distribuyó con la tarjeta de CPU 8086 de SCP como ASM86. También escribí un traductor que convertía el código fuente Z80 a código fuente 8086, ineficiente pero funcional ( Intel promovió esta idea con una tabla de traducción publicada ). Este se llamaba TRANS86 y también estaba escrito en ensamblador Z80 para CP/M. Una vez que DOS funcionó, apliqué el traductor a ASM86 (y a sí mismo) para crear versiones 8086 que se ejecutaban bajo DOS. No tengo el historial de cambios a mano […], pero creo que las versiones >= 2 indicaban la versión traducida (DOS). Si algún historial muestra números de versión < 2, esa era la versión de CP/M». […]
  20. Paterson, Tim (junio de 1983). "Una mirada al interior de MS-DOS: las decisiones de diseño detrás del popular sistema operativo: la historia y las decisiones de diseño detrás de MS-DOS, cómo funciona y hacia dónde va" . BYTE . Diseños de 16 bits. Vol. 8, n.º 6. McGraw-Hill, Inc. págs. 230–252 . ISSN 0360-5280 . CODEN BYTEDJ . Archivado del original el 17 de marzo de 2017. Recuperado el 23 de enero de 2020. [ …] Criterios de diseño de MS-DOS […] El requisito de diseño principal de MS-DOS era la compatibilidad de traducción de CP/M-80 , lo que significa que, si un programa 8080 o Z80 para CP/M se traducía para el 8086 de acuerdo con las reglas publicadas por Intel , ese programa se ejecutaría correctamente en MS-DOS. Hacer de la compatibilidad de traducción de CP/M-80 un requisito impulsó el rápido desarrollo del software para el 8086, en el que, naturalmente, Seattle Computer estaba interesada. El éxito fue parcial: aquellos desarrolladores de software que optaron por traducir sus programas de CP/M-80 descubrieron que, efectivamente, funcionaban en MS-DOS, a menudo al primer intento. Desafortunadamente, muchos de los desarrolladores de software con los que Seattle Computer habló en sus inicios prefirieron simplemente ignorar MS-DOS. Hasta el anuncio del IBM Personal Computer , estos desarrolladores creían que CP/M-86 sería el sistema operativo de los ordenadores 8086/8088. […]     
  21. 1 2 Seattle Computer Products (agosto de 1980). "86-DOS – SISTEMA OPERATIVO 8086 - $95" . BYTE (Anuncio). Vol. 5, n.° 8. BYTE Publications Inc. pág. 173. ISSN 0360-5280 . CODEN BYTEDJ . Archivado del original el 5 de abril de 2017. Recuperado el 18 de agosto de 2013. [ …] 1. Leer el archivo de código fuente Z80 escrito en formato CP/M y convertirlo al formato 86-DOS . 2. El programa traductor traduce el código fuente Z80 al código fuente 8086. 3. El ensamblador residente ensambla el código fuente 8086 traducido al código objeto 8086. 4. Corrección manual menor y optimización. (Una reciente traducción de un programa Z80 de 19K nos llevó unas cuatro horas para corregirla. ¡Incluso sin optimización, funcionaba el doble de rápido que el original! […])     
  22. Paterson, Tim (1994-10-03). "Los orígenes de DOS: el creador de DOS da su punto de vista sobre la relación entre CP/M y MS-DOS" (PDF) . Microprocessor Report . 8 (13). MicroDesign Resources (MDR). ISSN 0899-9341 . Archivado del original (PDF) el 31-05-2012. […] Para lograr que los principales desarrolladores de software portaran sus productos del 8080 / Z80 al 8086 , decidí que teníamos que hacerlo lo más fácil posible. Ya había escrito un traductor de código fuente de Z80 a 8086 (alojado en el 8080 y CP/M ). Mi plan era que ejecutar un programa CP/M para 8080 a través del traductor sería el único trabajo que los desarrolladores de software tendrían que realizar para portar el programa al 8086. En otras palabras, la interfaz utilizada por las aplicaciones para solicitar servicios del sistema operativo sería exactamente la misma que la de CP/M después de aplicar las reglas de traducción . […] 
  23. 1 2 Paterson, Tim (30-09-2007). "Diseño de DOS" . DosMan Drivel . Archivado del original el 20-01-2013 . Recuperado el 04-07-2011 . […] Compatibilidad de traducción de CP/M […] Para que DOS tuviera éxito, necesitaría que se escribieran aplicaciones útiles (como procesadores de texto) para él. Me preocupaba que SCP pudiera tener problemas para persuadir a los autores de software de aplicación de que se esforzaran en crear una versión de DOS de sus programas. Pocas personas habían comprado la computadora de 16 bits de SCP, por lo que la base instalada era pequeña. Sin las aplicaciones, no habría muchos usuarios, y sin los usuarios, no habría muchas aplicaciones. […] Mi esperanza era que al hacer que fuera lo más fácil posible portar las aplicaciones existentes de 8 bits a nuestra computadora de 16 bits, lograríamos que más programadores se animaran a dar el paso. Y me parecía que la compatibilidad de traducción de CP/M era lo que haría el trabajo lo más fácil posible. Intel había definido reglas para traducir programas de 8 bits a programas de 16 bits; la compatibilidad de traducción de CP/M significa que cuando una solicitud de un programa a CP/M pasaba por la traducción, se convertía en una solicitud equivalente a DOS. […] Así que hice de la compatibilidad de traducción de CP/M un objetivo de diseño fundamental. Esto me obligó a crear una interfaz de programación de aplicaciones (API) muy específica que implementara la compatibilidad de traducción. No la consideré la API principal; de hecho, existía otra API más adecuada para el mundo de 16 bits y con más capacidades. Ambas API utilizaban construcciones definidas por CP/M (como el " Bloque de Control de Archivo "); la API de compatibilidad tenía que hacerlo, y no vi razón para definir algo diferente para la API principal. […] Yo mismo aproveché la compatibilidad de traducción. Las herramientas de desarrollo que había escrito, como el ensamblador, eran originalmente programas de 8 bits que se ejecutaban bajo CP/M ( CDOS ). Las procesé con el traductor y obtuve programas de 16 bits que se ejecutaban bajo DOS. Estas herramientas traducidas se incluyeron con DOS cuando SCP las distribuyó. Pero no creo que nadie más haya aprovechado este proceso. […]
  24. "Traductor de Z80 a 8086". Z80/8086 Cross Assembler Release 1 (PDF) . Revisión A ( edición preliminar). Seattle, Washington, EE. UU.: Seattle Computer Products . págs. 20–21 . Archivado del original el 30/11/2021 . Recuperado el 18/01/2020 . […] El traductor de Z80 a 8086 de Seattle Computer Products se ejecuta en el Z80 bajo CP/M . Acepta como entrada un archivo fuente Z80 escrito usando mnemónicos Zilog / Mostek y lo convierte a un archivo fuente 8086 en un formato aceptable para nuestro ensamblador cruzado 8086. Para traducir un archivo, simplemente escriba TRANS86 <nombre de archivo>.<ext>. Independientemente de la extensión original, el archivo de salida se llamará <nombre de archivo>.A86 y aparecerá en la misma unidad que el archivo de entrada. Se incluye un archivo llamado TRNTEST.Z80 para demostrar el funcionamiento del traductor. No se traduce todo el lenguaje ensamblador Z80. […]  
  25. 1 2 86-DOS – Sistema operativo de disco para el 8086. Manual del usuario (PDF) . Versión 0.3 ( edición preliminar). Seattle, Washington, EE. UU.: Seattle Computer Products . 1980. Archivado (PDF) del original el 14 de julio de 2019. Consultado el 1 de febrero de 2020 . 
  26. 1 2 Paterson, Tim (19-12-2013) [01-07-1982]. "Microsoft DOS V1.1 y V2.0: Traductor de Z80 a 8086 versión 2.21 /msdos/v11source/TRANS.ASM" . Museo de Historia de la Computación , Microsoft . Archivado del original el 12-11-2019 . Recuperado el 25-03-2014 .(Nota: Si bien los editores afirman que se trata de MS-DOS 1.1 y 2.0, en realidad es SCP MS-DOS 1.25 y TeleVideo PC DOS 2.11 ).
  27. SCP 86-DOS – Sistema operativo de disco para un solo usuario para el 8086 ( edición preliminar). Seattle, Washington, EE. UU.: Seattle Computer Products . 1980. Consultado el 18 de enero de 2020. [ …] El traductor de código fuente puede traducir la mayor parte del código fuente del Z80 a código fuente del 8086 aceptable para el ensamblador tras una pequeña corrección manual. Esto proporciona una forma relativamente rápida y sencilla de transportar programas entre los procesadores. […] Archivo TRANS […] El traductor de código fuente de Z80 a 8086, llamado mediante este comando, es esencialmente idéntico a nuestra versión que se ejecuta en el Z80, descrita al final del manual del ensamblador. Las únicas diferencias son: 1. El traductor se llama TRANS, no TRANS86, y se ejecuta en el 8086 bajo 86-DOS , no en el Z80 bajo CP/M . 2. La extensión del archivo de salida es "ASM", no "A86". […] 
  28. Traductor Z80 a 8086 (PDF) . Seattle Computer Products . págs. TRANS - 1–TRANS - 2. Archivado del original el 30/11/2021 . Consultado el 19/01/2020 . (23 páginas)
  29. Hughes, David B. (noviembre de 1982). "CP/M-86 y MS-DOS: un análisis comparativo" . PC Magazine . Sistemas operativos. Vol. 1, n.º 7. Software Communications, Inc. págs. 181–182 , 187–190 [189]. Archivado del original el 10 de febrero de 2020. Recuperado el 10 de febrero de 2020. [ …] Una impresionante y útil gama de utilidades de desarrollo de software es una característica estándar de MS-DOS . Un programa que traduce el código 8080 o Z80 a código fuente 8086 , un enlazador y un entorno de ejecución de biblioteca se combinan con un potente ensamblador para dar al programador todo lo necesario para aprovechar al máximo el procesador de 16 bits del PC. El programa de traducción de MS-DOS permite al usuario traducir código desarrollado para el sistema operativo de 8 bits CP/M-80 o SB-80 a MS-DOS 1.2 o 2.0 . Es posible que se requieran algunas modificaciones, más allá de la simple traducción, para que los programas se ejecuten en sistemas de 16 bits, por lo que sugiero que esta herramienta sea utilizada principalmente por usuarios con formación técnica.   
  30. 1 2 Garetz, Mark (1980-12-22). "Según Garetz…" . InfoWorld – Noticias para usuarios de microcomputadoras . Vol. 2, n.° 23. Popular Computing, Inc. pág. 12. ISSN 0199-6649 . Archivado del original el 1 de febrero de 2020. Recuperado el 18 de enero de 2020. [ …] La semana pasada se celebró la feria semestral de intercambio de computadoras de California . Este evento está organizado por John Craig […] Sorcim […] estaba presentando […] nuevos productos en la feria […] Su otro producto era TRANS-86. TRANS-86 toma cualquier archivo de código fuente 8080 / 8085 / Z-80 compatible con CP/M y lo traduce a código 8086. Luego se puede ensamblar el nuevo archivo con ACT-86. […]    
  31. Blumenfeld, Dan (1982-12-04). "Traductor de Z80 a 8086" . Grupo de noticias : fa.info-cpm . Archivado del original el 16 de enero de 2020. Recuperado el 15 de enero de 2020 . 
  32. "CompuPro" . PC: La guía independiente para computadoras IBM (Anuncio). Vol. 1, n.° 1. Software Communications, Inc. Febrero-marzo de 1982. págs. 70-71 . Edición Premiere/Charter . Recuperado el 23 de enero de 2020. […] ¿POR QUÉ? FLEXIBILIDAD. La CPU 85/88 de CompuPro ejecuta CP/M 80, 86, MP/M II y MP/M 86. Ofrecemos WORDSTAR dBASE II SUPERCALC, una gran variedad de lenguajes, traductores de 8080 a 8088 y mucho más. COMPATIBILIDAD. Nuestros sistemas pueden usar utilidades CP/M 2.2 para escribir programas para la IBM PC. Simplemente cree el código fuente 8088 (escríbalo con su editor CP/M 80 favorito o tradúzcalo con TRANS 86 de Sorcim ), realice el ensamblaje cruzado del código fuente (con ACT86 de Sorcim), enlace el archivo hexadecimal (con el comando LOAD de CP/M 80), tradúzcalo al IBM PC (con el programa CPM-IBM de G&G) y ejecútelo en su IBM PC. ¡Este procedimiento NO requiere MS-DOS! […] ¿POR QUÉ? FLEXIBILIDAD. La CPU 85/88 de CompuPro ejecuta CP/M 80 y 86 o MS-DOS. Ofrecemos WORDSTAR, dBASE II, TRANS86, XLT86, ACT86, SUPERCALC, CBASIC, MBASIC, MFORTRAN y mucho más. […]   
  33. Warren, Jr., Jim C. (julio de 1982). "Hechizo algo"(PDF) . Silicon Gulch Gazette . Rumores difundidos aquí. Vol.  7, n.º  30. Woodside, California, EE. UU.: Computer Faire . págs.  1, 2, 4, 6, 11, 14, 15 [11]. Archivado del original el 30/11/2021 . Recuperado el 15/01/2020 . […] Sorcim acaba de completar la compra de ISA . […] También han tenido un traductor de 8080 a 8086, Trans-86, en funcionamiento durante más de un año […]
  34. 1 2 3 4 5 Barry, Tim (1982-04-05). "XLT-86, un programa de utilidad CP/M de Digital Research" . InfoWorld – The Newsweekly for Microcomputer Users . Software Review. Vol. 4, no. 13. Popular Computing, Inc. pp. 40– 41, 53. ISSN 0199-6649 . Archivado del original el 2020-02-01 . Recuperado el 2020-01-25 . […] XLT-86 1.1 […] XLT-86 es un programa traductor analítico escrito en PL/I-80 . Lee todo el programa fuente 8080, lo ensambla a código máquina, analiza la utilización de registros, memoria y banderas, y emite un programa optimizado en lenguaje ensamblador 8086 . […] También existe una versión de XLT-86 para quienes tengan acceso a un VAX 11/750 o 11/780 . Esta versión puede traducir programas mucho más grandes. Su precio es de 8000 dólares. […] Si bien el traductor agrega algunas etiquetas y equivalencias al programa fuente como parte de la traducción, todos los comentarios y etiquetas originales del programa se transfieren intactos al programa traducido. […] La traducción del programa se realiza en un proceso de cinco pasos. Primero, el programa se escanea y se ensambla para producir valores y ubicaciones de símbolos. Segundo, la estructura del programa se analiza y se descompone en bloques básicos . Tercero, los bloques básicos se analizan para determinar el flujo del programa y el uso de recursos. Cuarto, la estructura de bloques y los datos de asignación de registros se recopilan en una lista para el usuario. Quinto, la información de flujo y el programa fuente se utilizan para producir el programa fuente 8086. […]    
  35. Kildall, Gary Arlen (1982-04-19). Swaine, Michael ; Freiberger, Paul ; Markoff, John Gregory (eds.). "El fundador de Digital Research analiza su visión del negocio" . InfoWorld – The Newsweekly for Microcomputer Users . Sección especial: CP/M. Vol. 4, n.º 15. Popular Computing, Inc. págs. 23–24 . ISSN 0199-6649 . Archivado del original el 1 de febrero de 2020. Recuperado el 17 de enero de 2020. [ …] Kildall: […] Hace un año y medio, probablemente dedicaba el 75 % de mi tiempo al negocio y el 25 % a la programación. XLT-86 era un producto en el que estaba trabajando en ese momento, y me llevó nueve meses terminarlo. Habría sido un proyecto de tres meses si hubiera podido concentrarme en él. […]    
  36. Kildall, Gary Arlen (junio-julio de 1982). Bunnell, David Hugh ; Edlin, Jim (eds.). "Gary Kildall: el hombre que creó CP/M: el creador de CP/M: una entrevista exclusiva para PC con el pionero del software Gary Kildall" . PC Magazine . Sistemas operativos. Vol. 1, n.º 3. Software Communications, Inc. págs. 32-38 , 40 [35] . Recuperado el 17 de enero de 2020. […] PC: ¿Cuáles son algunas de las complejidades que implica traducir un programa de 8080 a 8086 ? Kildall : Las traducciones directas a nivel del programa fuente se pueden hacer de forma bastante mecánica. Por ejemplo, una instrucción "Add immediate 5" del 8080 se convierte en "Add AL 5" en el 8086; traducción muy directa de los códigos de operación en sí. La complejidad de la traducción mecánica surge de situaciones como esta: la instrucción DAD H del 8080 toma el registro HL y le suma DE. Para el 8086, la instrucción equivalente sería algo como ADD DX BX, lo cual está bien, no hay problema. Simplemente se dice que el registro DX es igual a HL y BX es igual a DE. El problema es que la instrucción del 8086 tiene el efecto secundario de establecer el indicador de cero, y la instrucción del 8080 no. En la traducción mecánica, se termina haciendo algo como guardar los indicadores, restaurarlos, realizar algunos desplazamientos y rotaciones, etc. Esto añade unas cinco o seis instrucciones adicionales para obtener el mismo efecto semántico. Hay muchas secuencias en el código del 8080 que producen secuencias muy extrañas en el código del 8086; simplemente no se mapean bien debido a los registros de indicadores y cosas por el estilo. La forma en que transferimos el software es algo llamado XLT-86. Lleva en el mercado unos seis meses. PC: ¿Con "mejor" código te refieres a más pequeño? Kildall: Un veinte por ciento más pequeño que si simplemente tomaras cada código de operación y hicieras una traducción directa, guardando los registros para preservar la semántica. PC: ¿Cómo se compara el tamaño del programa traducido con la versión 8080? Kildall: Si tomas un programa 8080, lo trasladas al mundo de 86 bits y haces una traducción XLT-86, verás que es aproximadamente entre un 10 y un 20 por ciento más grande. Con las máquinas de 16 bits es más difícil direccionar todo; obtienes códigos de operación que son un poco más grandes en promedio. Un fenómeno interesante es que una de las razones por las que no se obtiene un aumento tremendo de velocidad en el mundo de 16 bits es porque se ejecutan más códigos de operación en el bus de datos. […]   
  37. Huitt, Robert; Eubanks, Gordon ; Rolander, Thomas "Tom" Alan ; Laws, David; Michel, Howard E.; Halla, Brian; Wharton, John Harrison ; Berg, Brian; Su, Weilian; Kildall, Scott ; Kampe, Bill (2014-04-25). Laws, David (ed.). "Legacy of Gary Kildall: The CP/M IEEE Milestone Dedication" (PDF) (Transcripción de vídeo). Pacific Grove, California, EE. UU.: Computer History Museum . Número de referencia CHM: X7170.2014. Archivado (PDF) del original el 27-12-2014 . Recuperado el 19-01-2020 . […] Rolander : Mencioné antes que a Gary le gustaba abordar un problema como un arquitecto. […] Y dibujaba las imágenes más hermosas de sus estructuras de datos. […] Y cuando terminaba eso […] y estaba convencido de que esas estructuras de datos ahora eran correctas, entraba en un modo de programación increíblemente frenético. Podía trabajar hasta 20 horas al día […] simplemente desaparecía durante esos periodos de tiempo. En un par de ocasiones, cuando lograba que algo funcionara por primera vez, lo que podía ser en plena noche. Y todos los que han escrito software lo han visto, por ejemplo, que la primera vez que aparece en la pantalla, hay que avisar a alguien. Mi esposa Lori les dirá que recibí un par de esas llamadas en plena noche; LOGO fue un ejemplo, XLT 86 fue otro, donde lo puso en marcha por primera vez, y necesitaba que alguien lo viera. Así que no importaba la hora que fuera, me llamaba, tenía que ir a verlo funcionando. […] (33 páginas)
  38. "XLT86 reduce el esfuerzo de conversión en la traducción de programas en lenguaje ensamblador" (PDF) . Noticias de Digital Research – para usuarios de Digital Research en todo el mundo . Actualización de producto. Vol. 1, n.º 1. Pacific Grove, California, EE. UU.: Digital Research, Inc. Noviembre de 1981. págs. 2, 7. Cuarto trimestre. Archivado del original el 10/11/2021 . Recuperado el 18/01/2020 . […] Digital Research ya ofrece un traductor de código ensamblador de 8 a 16 bits . Llamado XLT86, está diseñado para facilitar el laborioso proceso de conversión de productos de software CP/M de microcomputadoras basadas en 8080 a 8086. XLT86 puede utilizarse para traducir cualquier programa en lenguaje ensamblador compatible con el formato de ensamblador ASM, MAC o RMAC de Digital Research. El traductor de programas XLT86 lee primero un programa en lenguaje ensamblador 8080 y luego genera un archivo de salida con instrucciones en lenguaje ensamblador 8086 compatibles con el ensamblador ASM-86 de Digital Research. A diferencia de otros convertidores de código 8086 que traducen una sola instrucción 8080 a hasta diez instrucciones 8086, XLT86 realiza un análisis exhaustivo del flujo de datos para determinar el uso de registros en todo el programa original. La información recopilada mediante este análisis se utiliza durante la traducción del programa para eliminar operaciones innecesarias de guardado y restauración de indicadores. "El programa 8086 resultante es más simple y compacto que los programas equivalentes generados por otros traductores", afirma Curt Geske, del grupo de marketing de Digital Research. "Además, XLT86 permite a los fabricantes de equipos originales, usuarios finales y proveedores de software preservar su inversión en programas en lenguaje ensamblador basados ​​en 8080 al migrar a computadoras de 16 bits basadas en 8086, al reducir el esfuerzo de conversión". Los programas traducidos por XLT86 funcionan tanto en CP/M-86 como en MP/M-86. […] XLT86 está disponible de inmediato. Funciona en cualquier sistema CP/M o MP/M de 8 bits, o bajo el sistema operativo VMS para su uso en los miniordenadores de la serie VAX de Digital Equipment Corporation . La versión para CP/M tiene un precio de 150 dólares. La versión para VAX se vende por 8000 dólares. […]   
  39. Kildall, Gary Arlen (1973-10-01). "Un enfoque unificado para la optimización global de programas" (PDF) . Actas del 1er simposio anual ACM SIGACT-SIGPLAN sobre Principios de lenguajes de programación - POPL '73 . Boston, Massachusetts, EE. UU. pp. 194–206 . doi : 10.1145/512927.512945 . hdl : 10945/42162 . S2CID 10219496. Archivado (PDF) del original el 29-06-2017 . Recuperado el 20-11-2006 .  {{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  40. Kildall, Gary Arlen (mayo de 1972). Optimización global de expresiones durante la compilación (tesis doctoral). Seattle, Washington, EE. UU.: Universidad de Washington , Grupo de Ciencias de la Computación. Tesis n.° 20506, Informe técnico n.° 72-06-02.
  41. 1 2 XLT86 – Traductor de lenguaje ensamblador de 8080 a 8086 – Guía del usuario (PDF) (Primera edición impresa). Pacific Grove, California, EE. UU.: Digital Research, Inc. Septiembre de 1981. Copia de archive.org . Archivado (PDF) del original el 18 de noviembre de 2016. Recuperado el 18 de noviembre de 2016 . 
  42. "XLT86 para CP/M-80" . Investigación digital . Archivado del original el 16 de enero de 2020. Consultado el 18 de enero de 2020 .(Nota: Este archivo ZIP contiene el ejecutable CP/M-80 XLT86.COM [22  KB], así como dos archivos superpuestos: XLT00.OVL [8  KB] y XLT01.OVL [9  KB].)
  43. Goldfarb, Ben (1982-12-09). "Re: Traducción de 8080 a 8086" . Grupo de noticias : fa.info-cpm . Archivado del original el 1 de febrero de 2020. Recuperado el 18 de enero de 2020. […] El programa XLT86 ocupa aproximadamente 30 KB de memoria principal. El resto de la memoria, hasta la base de CP/M , almacena el grafo del programa que representa el programa 8086 que se está traduciendo. […] Un sistema CP/M de 64 KB permite la traducción de programas 8080 de hasta aproximadamente 6 KB. […] 
  44. Wharton, John Harrison (1 de agosto de 1994). «Gary Kildall, pionero de la industria, muere a los 52 años: creó los primeros lenguajes para microcomputadoras y sistemas operativos de disco» . Microprocessor Report . 8 (10). MicroDesign Resources Inc. (MDR). Archivado del original el 18 de noviembre de 2016. Recuperado el 18 de noviembre de 2016. […] Irónicamente, muchas de las técnicas que Gary desarrolló se están redescubriendo ahora, diez años después. Apple y DEC promocionan la recompilación binaria como una tecnología «nueva» para portar software existente a la arquitectura PowerPC o Alpha . De hecho, DRI introdujo un recompilador binario de 8080 a 8086 a principios de la década de 1980. […]
  45. "Premio SPA al Dr. Gary A. Kildall: Ganador del Premio SPA a la Trayectoria Profesional de 1995" . Software Publishers Association (SPA). 13 de marzo de 1995. Archivado del original el 21 de diciembre de 2019. Recuperado el 21 de diciembre de 2019 a través de www.digitalresearch.biz. […] Kildall fundó Digital Research, Inc. (DRI) en 1976, que ahora forma parte de Novell . […] En la década de 1980, DRI introdujo un recompilador binario . […]
  46. Swaine, Michael (1997-04-01). "Gary Kildall y el emprendimiento colegiado" . Dr. Dobb's Journal . Archivado del original el 24-01-2007 . Recuperado el 20-11-2006 . En marzo de 1995, la Asociación de Editores de Software honró póstumamente a Gary por sus contribuciones a la industria informática. Enumeraron algunos de sus logros: […] En la década de 1980, a través de DRI , introdujo un recompilador binario . […]
  47. 1 2 3 2500 A.D. Software (11 de diciembre de 1984). "Superensambladores más la mayor selección mundial de ensambladores cruzados" . PC Magazine (Anuncio). Vol. 3, n.º 24. Englewood, Colorado, EE. UU.: PC Communications Corp. págs. 166–167 . ISSN 0745-2500 . Archivado del original el 1 de febrero de 2020. Consultado el 24 de enero de 2020 . […] Ensamblador 8086/88 con traductor $99.50 Disponible para MSDOS, PCDOS o CP/M-86 […] Este paquete también incluye […] un traductor de código fuente de 8080 a 8086 (sin límite en el tamaño del programa a traducir) […] Paquete de desarrollo cruzado Z-8000 $199.50 […] Este potente paquete incluye un traductor de código fuente de lenguaje ensamblador de Z-80/8080 a Z-8000 […] Los traductores proporcionan código fuente Z-8000 a partir del código fuente Intel 8080 o Zilog Z-80. El código fuente Z-8000 utilizado por estos paquetes está en la sintaxis única 2500AD usando mnemónicos Zilog diseñados para facilitar la transición de la escritura de código Z-80 a Z-8000 […] 8086 y Z-8000 XASM incluye traductores de código fuente […]      (Nota: 8086/88 XASM disponible para Z-80 CP/M, Zilog System 8000 UNIX , Olivetti M-20 PCOS ; Z-8000 XASM para Z-80 CP/M, MS-DOS, CP/M-86, Olivetti M-20 PCOS).
  48. "Zilog presenta un sistema de desarrollo modular" . Computerworld – El semanario de noticias para la comunidad informática . Vol. XIII, n.º 34. Cupertino, California, EE. UU.: Computerworld, Inc. 20 de agosto de 1979. pág. 46. ISSN 0010-4841 . Archivado del original el 1 de febrero de 2020. Recuperado el 24 de enero de 2020. […] Zilog, Inc. ha presentado una serie de sistemas de desarrollo de productos (PDS) modulares y ampliables para diseños de microcomputadoras basados ​​en Z8 , Z80 y Z8000 . Las cuatro versiones del sistema PDS 8000 (modelos 10, 15, 25 y 30) incluyen […] Una característica estándar de cada sistema es el paquete de desarrollo de software Z8000, que incluye la rutina de gestión de archivos ZDOSII , los ensambladores estructurados de alto nivel PLZ/ASM, un traductor Z80/Z8000 y un macroprocesador Z8000 L y MACP. […] Los modelos 10 y 25 tienen las mismas especificaciones que los modelos 15 y 30, respectivamente, pero no incluyen el módulo de desarrollo Z8000. El precio del PDS Modelo 10 es de 10.485 dólares; el del Modelo 15, de 11.995 dólares; el del Modelo 25, de 20.000 dólares; y el del Modelo 35, de 21.500 dólares. Los cuatro sistemas están disponibles 30 días después de la recepción del pedido. […]    
  49. Orlansky, Jesse, ed. (1979). Actas del 27 al 29 de noviembre de 1979: 1.ª Conferencia Interinstitucional/Industrial sobre Equipos de Capacitación . El Centro. pág. 413. Informe técnico NAVTRAEQUIPCEN. Archivado del original el 1 de febrero de 2020. Recuperado el 24 de enero de 2020. [ …] Tabla 1. Características del microprocesador de 16 bits […] Zilog 8000 […] Software […] Zilog prevé ofrecer soporte para Z8000 con traductores para PLZ, BASIC , COBOL y FORTRAN . Estos permitirán la conversión de código Z80 a código Z8000, ya que el conjunto Z8000 es un superconjunto de Z80. […] 
  50. Sistema de desarrollo PDS 8000: El enfoque integrado para el diseño de sistemas (Informe del producto). Zilog . Enero de 1980. Consultado el 24 de enero de 2020. […] Z8000 TRANSLATOR: Proporciona un medio rápido para convertir un programa existente en lenguaje ensamblador Z80 a código Z8000 y al formato de programa PLZ/ASM. […]
  51. Thomas, Rebecca A.; Yates, Jean L. (1981-05-11). «Libros, placas y software para los nuevos procesadores de 16 bits» . InfoWorld – El periódico para la comunidad de microcomputación . Vol. 3, n.º 9. Popular Computing, Inc. págs. 42–43 . ISSN 0199-6649 . Archivado del original el 1 de febrero de 2020. Recuperado el 24 de enero de 2020. [ …] Digital Research también ha anunciado planes para una versión de CP/M para Z8000 . El software de aplicación se trasladará a la Z8000 cuando haya más software de desarrollo disponible. Se necesita un traductor comercial de Z80 a Z8000. […]    
  52. 1 2 Guzis, Charles "Chuck" P. (2009-01-21) [2009-01-17]. "Re: CP/M o sistema operativo similar para Z8002 de 64K?" . Vintage Computer Forum . Género: CP/M y MP/M. Archivado del original el 16-01-2020 . Recuperado el 15-01-2020 . […] tanto Zilog como AMC ofrecían programas de traducción de Z80 a Z8000 . Al igual que el traductor de Intel 8080 a 8086 , resultaba en un aumento de tamaño inmediato a menos que estuvieras dispuesto a optimizar manualmente el resultado. Gran parte del código inicial de MS-DOS era código CP/M 8080 autotraducido y modificado. Sé que gran parte de SuperCalc para PC lo era, por ejemplo. Las primeras versiones (por ejemplo, 3.3) de Wordstar para DOS probablemente también lo eran. […] Existían traductores de código fuente de Z80 a Z8000, pero no era un proceso sencillo (modos "estricto" y "relajado"; a veces, una instrucción de Z80 a varias instrucciones de Z8000). El 8086 está mucho más cerca del 8080 que el Z8000 del Z80. […]
  53. "2500 AD Software 8080/Z-80 to Z8000 source code translator v2.06b" . 2500 AD Software, Inc. 1982. Archivado del original el 1 de febrero de 2020. Consultado el 24 de enero de 2020 .
  54. "802Z8000.ZIP 2500 AD Software Traductor de código fuente 8080/Z-80 a Z8000 v2.06e" . 2500 AD Software, Inc. Archivado del original el 1 de febrero de 2020. Consultado el 24 de enero de 2020 .
  55. 1 2 Bodrato, Stefano (30-10-2008). "Código fuente de to86.awk" . GitHub . 1.6. Archivado del original el 05-01-2022 . Recuperado el 05-01-2022 .
  56. Callahan, Brian (23/10/2021) [06/07/2021, 06/06/2021]. "Traductor de lenguaje ensamblador de Intel 8080 CP/M 2.2 a Intel 8086/8088 MS-DOS" . 8088ify 1.2. Archivado del original el 31/03/2022 . Recuperado el 28/11/2021 .
  57. "Lista de lenguajes que compilan a JS" . GitHub . Archivado del original el 23/01/2020 . Consultado el 11/03/2018 .
  58. theolivenbaum (13-11-2021). "h5 🚀 - Compilador de C# a JavaScript" . GitHub . Consultado el 14-11-2021 .
  59. "J2ObjC" . ​​Archivado del original el 22/10/2019 . Consultado el 22/10/2019 .
  60. "JSweet" . Archivado del original el 14-12-2019 . Consultado el 14-12-2019 .
  61. "Maia" . Consultado el 13 de mayo de 2020 .
  62. "Swiftify" .
  63. "Traductor de C a Go" . GitHub . Archivado del original el 7 de diciembre de 2018. Consultado el 11 de enero de 2018 .
  64. "Notas de la versión 1.5 de Go" . Archivado del original el 1 de febrero de 2020. Consultado el 11 de enero de 2018 .
  65. Cox, Russ. "Go 1.3+ Compiler Overhaul" . Archivado del original el 9 de enero de 2020. Consultado el 11 de enero de 2018 .
  66. 1 2 "Repositorio C2Rust" . GitHub . 15/04/2022.
  67. "Descripción general" . Js_of_ocaml - Manual de referencia . Ocsigen. Archivado del original el 08-12-2018 . Recuperado el 08-10-2014 .
  68. Página de investigación de J2Eif – Cátedra de Ingeniería de Software . Se.inf.ethz.ch. 2011. pp. 20–35 . doi : 10.1007/978-3-642-21952-8_4 . ISBN  978-3-642-21952-8Archivado del original el 1 de enero de 2020. Consultado el 8 de julio de 2014 .
  69. "Página de investigación de C2Eif – Cátedra de Ingeniería de Software" . Se.inf.ethz.ch. Archivado del original el 1 de enero de 2020. Consultado el 8 de julio de 2014 .
  70. "Saltar" . Archivado del original el 18 de mayo de 2024. Consultado el 17 de mayo de 2024 .
  71. "Convertidor de Objective-C a Swift de Swiftify" . Consultado el 14 de noviembre de 2017 .
  72. "Convertidor en tiempo de ejecución" . Archivado del original el 10 de julio de 2019. Consultado el 14 de noviembre de 2017 .
  73. Consorcio World Wide Web (W3C). "Transformaciones XSL (XSLT) Versión 2.0". https://www.w3.org/TR/xslt-20/

Lecturas adicionales

  • Britten, Charles Randyl (26 de junio de 2020). "Traducción del código 8080 al 8086 - Traducción de Microsoft del código 8080 al 8086 y otros procesadores de 16 bits" . Archivado del original el 23 de julio de 2021. Consultado el 28 de noviembre de 2021 .
  • "La programación de las unidades Sycor se simplifica con TAL II" . Computerworld – El semanario de noticias para la comunidad informática . Vol.  IX, n.º  34. Ann Arbor, Michigan, EE. UU.: Computerworld, Inc. 20 de agosto de 1975, pág.  14. ISSN 0010-4841 . Archivado del original el 1 de febrero de 2020. Consultado el 18 de enero de 2020 . 
  • Zerilli, Frank J.; Derouen, Craig (11 de diciembre de 1986) [15 de agosto de 1985, 20 de diciembre de 1984, 20 de noviembre de 1984]. "Traductor ASM de 8080 a 8086, con fuente ASM" . SIMTEL . XLT86.COM 1.10. Archivado del original el 1 de febrero de 2020. Recuperado el 18 de enero de 2020 .11/11/1984 versión 1.05 (Nota: El ejecutable para DOS XLT86.COM [12  KB] traduce el código fuente en lenguaje ensamblador de Intel 8080 al código fuente en lenguaje ensamblador de Intel 8086. A pesar de su nombre, esta implementación en ensamblador 8086 no guarda relación con el XLT86 anterior y mucho más sofisticado de Digital Research ).
  • Albo, Julián (24/04/2009). "Pasmo, ensamblador cruzado Z80 portable / portable Z80 cross assembler" (en español e inglés). Archivado del original el 20/02/2020 . Recuperado el 20/02/2020 . […] Pasmo es un ensamblador cruzado Z80 […] que […] puede generar código objeto en los siguientes formatos: binario sin procesar, Intel HEX , PRL para CP/M Plus RSX , Plus3Dos ( disco Spectrum +3 ), TAP, TZX y CDT ( imágenes de cinta de emuladores Spectrum y Amstrad CPC ), AmsDos (disco Amstrad CPC) y MSX (para usar con BLOAD desde disco en Basic). A partir de la versión 0.5.0 […] también puede generar código 8086 a partir de fuentes Z80, en formato binario para archivos COM de MS-DOS o en formato CMD de CP/M 86. […]
  • Ciarcia, Steve (mayo de 1984). «Trump Card – Parte 1: Hardware – Acelere su IBM PC con la potencia del coprocesamiento de 16 bits» (PDF) . BYTE – The small systems journal . Ciarcia's Circuit Cellar. Vol.  9, n.º  5. McGraw-Hill, Inc. págs. 40–52 , 54–55 . ISSN 0360-5280 . Consultado el 29 de enero de 2020. […] En cambio, ejecuta programas escritos en lenguajes de alto nivel como BASIC y C (un compilador de Pascal y un traductor de 8088 a Z8000 están en desarrollo. […]  y Ciarcia, Steve (junio de 1984). «Trump Card – Parte 2: Software – Compiladores TBASIC y C y un ensamblador» (PDF) . BYTE – The small systems journal . Ciarcia's Circuit Cellar. Vol. 9, n.º 6. McGraw-Hill, Inc. págs. 115–122 . ISSN 0360-5280 . Consultado el 29 de enero de 2020. [ …] Espero que pronto estén disponibles traductores de código objeto para conversiones de Z80 a Z8000 y de 8088 a Z8000 […]    También disponible como Ciarcia, Steve (1990). "Trump Card – Parte 1: Hardware – Acelere su IBM PC con la potencia del coprocesamiento de 16 bits y Parte 2: Software – Compiladores TBASIC y C y un ensamblador" . En Gonneau, Daniel; Bernardi, Fred; Ausburn, Richard (eds.). Ciarcia's Circuit Cellar . Vol. 7. McGraw-Hill Publishing Company . págs. 138–152 , 153–160 . ISBN   0-07-010969-9Archivado del original el 1 de febrero de 2020. Consultado el 29 de enero de 2020 .
  • Equipo de Aplicaciones de la División de Microcontroladores (2000). "Traducción de código ensamblador de HC05 a ST7" (PDF) (Nota de aplicación). STMicroelectronics . AN1106/0200 . Consultado el 18 de enero de 2020 .(9 páginas) (Nota: Este traductor de software fue desarrollado por ST y traduce el código fuente en lenguaje ensamblador del Motorola 6805 / HC05  en formato de software 2500AD al código fuente de ST7 . El ejecutable MIGR2ST7.EXE para Windows está disponible en "MCU ON CD".)
  • Kuper, Lindsey (30 de julio de 2017). "¿Qué quiere decir la gente cuando dice "transpilador"?" . implementación del lenguaje. composición.al . Archivado del original el 9 de enero de 2022 . Recuperado el 9 de enero de 2022 .
  • Chaudry, Gabriele "Gaby" (11 de julio de 2009). "Das Intel zu Zilog - Übersetzungsprojekt" . Traductor I2Z (en alemán). Archivado desde el original el 11 de septiembre de 2016 . Consultado el 18 de enero de 2020 .
  • "Traducción de ensamblador a ensamblador de PortAsm" . MicroAPL Ltd. 2017 [1996]. Archivado del original el 30 de julio de 2019. Consultado el 18 de enero de 2020 .
  • "Nuestra metodología: el proceso de conversión de origen a origen" . Micro-Processor Services, Inc. (MPS). Archivado del original el 12 de mayo de 2019. Consultado el 1 de febrero de 2020 .