Un traductor de código fuente a código fuente , compilador de código fuente a código fuente ( compilador S2S ), transcompilador o transpilador [1] [2] [3] es un tipo de traductor que toma el código fuente de un programa escrito en un lenguaje de programación como entrada y produce un código fuente equivalente en el mismo lenguaje de programación o en uno diferente. Un traductor de código fuente a código fuente convierte entre lenguajes de programación que operan aproximadamente en el mismo nivel de abstracción , mientras que un compilador tradicional traduce de un lenguaje de programación de nivel superior a un lenguaje de programación de nivel inferior . Por ejemplo, un traductor de código fuente a 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 con frecuencia tomará un programa de lenguaje de alto nivel como entrada y luego transformará el código y lo anotará con anotaciones de código paralelo (por ejemplo, OpenMP ) o construcciones de lenguaje (por ejemplo, declaraciones de Fortran ). [2] [5]forall
Otro propósito de la compilación de código fuente a código fuente es traducir el código heredado para utilizar la próxima versión del lenguaje de programación subyacente o una 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 la nueva API) o cuando el tamaño del programa hace que sea poco práctico o lleve mucho tiempo refactorizarlo manualmente.
Los transcompiladores pueden mantener la estructura del código traducido lo más cerca posible del código fuente para facilitar el desarrollo y la depuración del código fuente original o pueden cambiar la estructura del código original tanto que el código traducido no se parezca al código fuente. [6] También hay utilidades de depuración que mapean el código fuente transcompilado de nuevo al código original; por ejemplo, el estándar JavaScript Source Map [ cita requerida ] permite mapear el código JavaScript ejecutado por un navegador web de nuevo a la fuente original cuando el código JavaScript fue, por ejemplo, minimizado o producido por un lenguaje transcompilado a JavaScript. [ cita requerida ]
Algunos ejemplos son Closure Compiler , CoffeeScript , Dart , Haxe , Opal, TypeScript y Emscripten . [7]
Traductores de lenguaje ensamblador
Los llamados 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, incluso (aunque no limitado a) diferentes familias de procesadores y plataformas de sistema .
Intel CONV86
Intel comercializó su procesador de 16 bits 8086 para que fuera compatible con el código fuente del 8080 , un procesador de 8 bits. [8] Para respaldar esto, Intel tenía un traductor basado en ISIS-II del código fuente del 8080 al 8086 llamado CONV86 [9] [10] [11] [12] (también conocido como CONV-86 [13] y CONVERT 86 [14] [15] ) disponible para los 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 manera muy confiable. [16] [17]
SCP TRANS86
Seattle Computer Products (SCP) ofrecía TRANS86.COM, [15] [18] [19] escrito por Tim Paterson en 1980 mientras desarrollaba 86-DOS . [20] [21] [22] La utilidad podía traducir el código fuente de ensamblaje de Intel 8080 y Zilog Z80 (con mnemotecnia Zilog/ Mostek ) a código fuente .ASM para 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 aún requería una importante corrección manual y reelaboración posterior. [23] [20] Además, al realizar solo una mera transliteración , [14] [18] [9] [10] el traductor de una sola pasada de fuerza bruta no realizaba ninguna optimización de registro y salto. [24] [25] Ocupaba unos 24 KB de RAM. [15] La versión 1 de TRANS86.COM de SCP se ejecutó en sistemas basados en Z80. [15] [18] Una vez que se estaba ejecutando 86-DOS, Paterson, en un enfoque inspirado en el alojamiento propio , utilizó TRANS86 para convertirse en un programa que se ejecutaba bajo 86-DOS. [22] [18] Versión numerada 2, se llamó TRANS.COM en su lugar. [18] [25] [24] [26] [27] Más tarde, en 1982, el traductor aparentemente también estaba disponible en Microsoft . [15] [28]
Sorcim TRANS86
También llamado TRANS86, Sorcim también ofreció un traductor de 8080 a 8086 desde diciembre de 1980. [29] [14] Al igual que el programa de SCP, fue diseñado para portar el código de aplicación CP/M-80 (en formato de ensamblaje ASM, MAC, RMAC o ACT80) a MS-DOS (en un formato compatible con ACT86). [29] [15] [30] [31] En formato ACT80 también admitía algunos mnemónicos Z80. La traducción se producía 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. [15] [32]
Investigación digital XLT86
Mucho más sofisticado y el primero en introducir tecnologías de compilación optimizadoras en el proceso de traducción de fuentes fue XLT86 1.0 de Digital Research en septiembre de 1981. XLT86 1.1 estuvo disponible en abril de 1982. [33] El programa fue escrito por Gary Kildall [14] [34] [35] [36] y tradujo el código fuente .ASM para el procesador Intel 8080 (en un formato compatible con ensambladores ASM, MAC o RMAC) al código fuente .A86 para el 8086 (compatible con ASM86). Utilizando el análisis de flujo de datos global sobre el uso de registros 8080, [37] [14] [38] [39] el traductor multipaso de cinco fases también optimizaría la salida para el tamaño del código y se ocuparía de las convenciones de llamada ( las llamadas BDOS de CP/M-80 se mapearon en llamadas BDOS para CP/M-86 ), de modo que los programas CP/M-80 y MP/M-80 pudieran trasladarse a las plataformas CP/M-86 y MP/M-86 automáticamente. XLT86.COM en sí fue escrito en PL/I-80 para plataformas CP/M-80. [40] [15] [33] [41] 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, [40] [15] [42] [33] de modo que los archivos más grandes debían descomponerse en consecuencia antes de la traducción. [15] [33] Alternativamente, XLT86 también estaba disponible para DEC VAX/VMS . [15] [33] Aunque la entrada y la 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 . [43] [44] [45]
Otros
2500 AD Software ofreció un traductor de código fuente de 8080 a 8086 como parte de su suite XASM para máquinas CP/M-80 con Z80 así como para sistemas Zilog ZEUS y Olivetti PCOS . [46]
Desde 1979, Zilog ofreció un traductor de Z80 a Z8000 como parte de su sistema de desarrollo PDS 8000. [47] [48] [49] [50] [51] [17] Advanced Micro Computers (AMC) [51] [17] y 2500 AD Software también ofrecieron traductores de Z80 a Z8000. [46] Este último se denominó TRANS [52] [53] y estaba disponible para Z80 CP/M, CP/M-86, MS-DOS y PCOS. [46]
El kit de desarrollo Z88DK proporciona un traductor de código fuente de Z80 a i486 para nasm llamado "to86.awk", escrito en 2008 por Stefano Bodrato. [54] A su vez, se basa en un convertidor de 8080 a Z80 escrito en 2003 por Douglas Beattie, Jr., llamado "toz80.awk". [54]
En 2021, Brian Callahan escribió un traductor de código fuente de 8080 CP/M 2.2 a MS-DOS dirigido a nasm llamado 8088ify. [55]
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 todavía son transcompiladores. Además de la tabla que aparece a continuación, un mantenedor de CoffeeScript proporciona una lista de lenguajes que compilan en JavaScript. [56]
Portar una base de código
Cuando los desarrolladores quieren cambiar a un lenguaje diferente y conservar la mayor parte de una base de código existente, puede ser mejor utilizar un transcompilador en lugar de reescribir todo el software a mano. Según la calidad del transcompilador, el código puede necesitar o no intervención manual para funcionar correctamente. Esto es diferente de los "lenguajes transcompilados", donde las especificaciones exigen que el código fuente de salida siempre funcione sin modificaciones. Todos los transcompiladores utilizados para portar una base de código esperarán un ajuste manual del código fuente de salida si es necesario lograr la máxima calidad del código en términos de legibilidad y convención de plataforma.
Tuberías de transcompilación
Una secuencia de transcompilación es el resultado de la transcompilación recursiva . Al unir varias 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 e 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 derivado .
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 serie de transformaciones (que a menudo comienzan desde una única fuente de verdad ) que convierten repetidamente una tecnología en otra.
Al repetir este proceso, se puede convertir A → B → C → D → E → F y luego volver a A(v2). Se conservará cierta información a través de esta secuencia, de A → A(v2), y esa información (a un nivel abstracto) demuestra en qué concuerdan cada uno de los componentes A–F.
En cada una de las diferentes versiones que produce el flujo de trabajo del transcompilador, esa información se conserva. Puede adoptar muchas formas y tamaños diferentes, pero cuando vuelve a A (v2), después de haber sido transcompilada seis veces en el flujo de trabajo 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 cerca posible del código fuente para facilitar el desarrollo y la depuración del código fuente original, o bien pueden cambiar 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 asignan el código fuente transcompilado al código original; por ejemplo, los mapas de código fuente de JavaScript permiten asignar el código JavaScript ejecutado por un navegador web al código fuente original en un lenguaje transcompilado a JavaScript.
Véase también
- Recompilador binario : compilador que transforma u optimiza el código ya compilado
- C a HDL : conversión de programas tipo C a lenguajes de descripción de hardware
- Generación de código (compilador) : conversión de código informático a un formato legible por máquina
- Kit de herramientas de reingeniería de software DMS : herramientas de transformación de programas Pages displaying wikidata descriptions as a fallback : un marco de compilación de código fuente a código fuente que utiliza reglas de reescritura explícitas dirigidas por patrones
- f2c – programa para convertir Fortran 77 a código C Pages displaying wikidata descriptions as a fallback – un compilador de código fuente a código fuente de Fortran 77 a C
- Honeywell Liberator : familia de computadoras mainframe Pages displaying short descriptions of redirect targets(que ejecutan programas IBM 1401 en Honeywell H200 )
- Representación intermedia : estructura de datos o código utilizado internamente por un compilador o una máquina virtual para representar el código fuente.
- Enlace de lenguaje : biblioteca de software que permite utilizar otra biblioteca codificada en otro lenguaje de programación
- Especificación independiente del lenguaje : estándar de programación informática diseñado para ser interoperable entre lenguajes de programación.
- Interoperabilidad de lenguajes : interoperabilidad entre lenguajes de programaciónPages displaying wikidata descriptions as a fallback
- Optimizador de código objeto , también conocido como optimización binaria: aspecto de la compilación de software
- Preprocesador : programa que procesa la entrada para otro programa
- Transformación de programas
- ROSE (compiler framework) : un marco de compilación de código fuente a código fuente
- Traductor (informática) : programa informático que traduce código de un lenguaje de programación a otro.
- XSLT – Lenguaje para transformar documentos XML
Notas
Referencias
- ^ 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 […]
[1] - ^ desde Pountain, Dick (diciembre de 1989). "Configuración de programas paralelos, Parte 1: El transpilador de Occam, ahora en desarrollo, facilitará la escritura de software para procesamiento paralelo". BYTE . Vol. 14, no. 13. McGraw-Hill, Inc. pp. 349–352. ISSN 0360-5280. ark:/13960/t34188734 . Consultado el 6 de enero de 2022 . p. 350:
[…] El nombre Transpiler pretende sugerir una combinación de transputer y compiler , de la misma manera que transputer se acuñó a partir de transistor y computer (es decir, un ordenador que también es un componente). […]
(NB. Utiliza el término transpilador de Occam como sinónimo de un compilador de fuente a fuente que funciona como un preprocesador que toma un programa Occam normal como entrada y deriva un nuevo código fuente de Occam como salida con asignaciones de enlace a canal, etc. agregados, configurándolo así para que el procesamiento paralelo se ejecute de la manera más eficiente posible en una red de transputadores ). - ^ Sector 7 Software Limited (1993-12-07) [1992-09-22]. "Transpiler". Boletín 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 desde el original el 2020-02-01 . Consultado el 2020-01-18 .
[…] 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, vence el 31-03-1999. Para software y programas informáticos (Cl. 38 de los Estados Unidos). Primer uso 1991-08-01, en el comercio 1991-08-01.
(NB. Esta empresa desarrolla productos como VX/BASIC, un transpilador de BASIC a C para DEC VMS . A pesar de su afirmación, el suyo 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.) - ^ ab "Transpiler". devopedia.org . 17 de marzo de 2017. Archivado desde el original el 5 de noviembre de 2019 . Consultado el 22 de junio de 2019 .
- ^ "Tipos de compiladores". compilers.net. 1997–2005. Archivado desde el original el 19 de julio de 2019. Consultado el 28 de octubre de 2010 .
- ^ Fowler, Martin (12 de febrero de 2013). «Compilación transparente». Archivado desde el original el 1 de enero de 2020. Consultado el 13 de febrero de 2013 .
- ^ Epic Games ; Mozilla . "HTML5 Ciudadela épica".
- ^ 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 8080 a nivel de lenguaje ensamblador. […]
- ^ desde Instrucciones 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 .[2] (NB. Una versión más nueva de este manual se puede encontrar aquí.)
- ^ desde Instrucciones 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 .[3] [4] (NB. Una versión anterior de este manual se puede encontrar aquí.)
- ^ "El 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)
- ^ Nelson, Ross P. (enero de 1989) [1988]. The 80386 Book: Assembly Language Programmer's Guide for the 80386 (El libro 80386: guía del programador en lenguaje ensamblador para el 80386 ). Microsoft Programming Series (1.ª edición). Microsoft Press . pág. 2. ISBN. 978-1-55615-138-5.
[…] Un programa traductor de Intel podría convertir programas ensambladores 8080 en programas ensambladores 8086 […]
- ^ Manual del usuario de la familia 8086. Intel Corporation . Octubre de 1979 [1978]. págs. 2-74, 2-92, B-176. N.º de pedido 9800722-03 . Consultado 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 los 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 que se ejecuten en la placa iSBC 86/12A, CONV-86 está disponible bajo el
sistema
operativo
ISIS-II
.
[5] [6]
- ^ abcde 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, no. 22. Popular Computing, Inc. p. 19. ISSN 0199-6649. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-15 .
[…] "A menos que tengas un esquema de traducción que tenga en cuenta las idiosincrasias peculiares del microprocesador de destino, no hay forma de que un traductor automático pueda funcionar", explica Daniel Davis, un programador de
Digital Research
. "Terminarás con
transliteraciones
directas ". […] A pesar de todas estas limitaciones, recientemente se ha avanzado 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 las investigaciones realizadas por
Gary Kildall
, presidente de Digital Research , el XLT86 parece ofrecer avances con respecto a la tecnología de traducción de software disponible anteriormente. Al igual que
el Trans de
Sorcim y el 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 algunos de los principales inconvenientes 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 a medida que traduce el 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 hace avanzar la tecnología hasta el punto en que se pueda considerar el contexto, entonces es posible que proliferen más traductores de software en el mercado de las microcomputadoras.
- ^ abcdefghijk Taylor, Roger; Lemmons, Phil (junio de 1982). "Upward immigration – Part 1: Translators – Using translation programs to move CP/M-86 programs to CP/M and MS-DOS" [Usando programas de traducción para mover programas CP/M a CP/M-86 y MS-DOS] (PDF) . BYTE . Vol. 7, no. 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) desde el original el 2020-01-16 . Consultado el 2020-01-15 .
[…]
El XLT86 de
Digital Research toma el código fuente estándar
8080
en un formato compatible con ensambladores ASM, MAC o RMAC y convierte el código fuente 8080 a código fuente
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 de flujo de datos global
para determinar el uso óptimo de los registros. Aunque no se admiten las definiciones de macros, las directivas de ensamblaje condicional son […] si desea una expansión de macros, puede usar un paso a través de MAC o RMAC para producir un archivo PRN que se pueda editar […] para producir un archivo fuente expandido para una entrada aceptable para XLT86. XLT86 no reconoce instrucciones
Z80
. XLT86 pasa bucles de repetición al código fuente 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 8086
AX
y el 8080
PSW
; 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 hace un trabajo razonable de optimización de la traducción de código fuente 8080 a código fuente 8086.
BDOS
Las llamadas de CP/M-80 se asignan a llamadas BDOS que son 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 8080. En las instrucciones 8080, las instrucciones JMP y CALL pueden alcanzar cualquier dirección dentro de la región de 64K bytes. Las instrucciones JMP condicionales 8086 pueden alcanzar solo 128 bytes en cada lado del registro IP […]. XLT86 examina el destino del JMP condicional. Si no se puede alcanzar el destino, XLT86 cambia el sentido del JMP condicional y se salta un JMP largo 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 un JMP condicional corto para saltarse un 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 particular. […]
[7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] (13 páginas) - ^ Guzis, Charles "Chuck" P. (24 de febrero de 2013). "Re: ¿Qué pasaría si IBM no hubiera elegido la CPU Intel?". Vintage Computer Forum . Género: Otros. Archivado del original el 16 de enero de 2020 . Consultado el 15 de enero de 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 de 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 […] 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 estaba funcionando cuando nos fuimos por la noche. A la mañana siguiente todavía no estaba listo […] Unas dos semanas después, después de que los chicos de software
de Intel
revisaran el traductor, Ed regresó con el programa traducido. Era aproximadamente un 50 % más grande que la versión
8085
original , lo que en cierto modo contradecía las afirmaciones de Intel sobre el traductor. […]
- ^ abc 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 desde el original el 2020-01-16 . Consultado el 2020-01-15 .
[…]
Intel
tenía un traductor alojado en ISIS del código
8080
al
8086.
Recuerdo haber pasado un día muy frustrante en la oficina de ventas local de Intel con un fragmento de muestra del código 8080 (un paquete básico de punto flotante
BCD
para el 8080) y haber esperado horas a que el traductor terminara su trabajo, y haber vuelto a casa decepcionado. Aproximadamente una semana después, recibí una llamada en la que me decían que finalmente habían descubierto los errores y que podía recoger mi programa traducido. Dicho programa era más de la mitad del tamaño del original en términos de bytes de objeto. Yo era un poco escéptico con la afirmación de Intel en aquel entonces de que el código 8086 era mucho más compacto que su homólogo 8080. Y el maldito aparato no funcionó de todos modos cuando se lo puso a prueba. […] Había 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 preservaba el funcionamiento detallado […] era
ISIS-II
, que se ejecutaba en un MDS-800, a, ¿qué?, 2 MHz con disquetes de 8". […]
- ^ abcde «Lista de cambios no oficial de Microsoft Macro Assembler (MASM)». bytepointer.com . 2018-08-21 [2016-09-08]. Archivado desde el original el 2019-07-17 . Consultado el 2020-01-18 .
[…]
Tim Paterson
[…] dijo lo siguiente sobre su ensamblador
8086
que escribió mientras estaba en
SCP
: "El ensamblador 8086 que escribí originalmente estaba en lenguaje ensamblador
Z80
y funcionaba con
CP/M
. Creo que se distribuyó con la tarjeta CPU 8086 de SCP como ASM86. También escribí un traductor que convertía el código fuente Z80 en código fuente 8086 ineficiente pero funcional (
Intel
promovió esta idea con una tabla de traducción publicada). Se lo llamó TRANS86 y también se escribió en lenguaje ensamblador Z80 para CP/M. Una vez que
DOS
estaba funcionando, apliqué el traductor a ASM86 (y a sí mismo) para crear versiones 8086 que funcionaran con DOS. No tengo el historial de cambios frente a mí […], pero creo que las versiones >= 2 marcaban la versión traducida (DOS). Si algún historial muestra números de versión < 2, esa era la versión CP/M". […]
- ^ 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 se dirige". BYTE . Diseños de 16 bits. Vol. 8, no. 6. McGraw-Hill, Inc. págs. 230–252. ISSN 0360-5280. CODEN BYTEDJ. Archivado desde el original el 17 de marzo de 2017. Consultado 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
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. La exigencia de que la traducción del CP/M-80 fuera compatible con el sistema sirvió para promover el rápido desarrollo del software 8086, en el que, naturalmente,
Seattle Computer
estaba interesada. Hubo un éxito parcial: aquellos desarrolladores de software que decidieron traducir sus programas CP/M-80 descubrieron que efectivamente funcionaban con MS-DOS, a menudo en el primer intento. Desafortunadamente, muchos de los desarrolladores de software con los que Seattle Computer habló en los primeros días prefirieron simplemente ignorar MS-DOS. Hasta que
se anunció el
IBM Personal Computer , estos desarrolladores pensaban que
el CP/M-86
sería el sistema operativo de los ordenadores 8086/8088. […]
[21] [22] - ^ ab Seattle Computer Products (agosto de 1980). "86-DOS – SISTEMA OPERATIVO 8086 - $95". BYTE (Anuncio). Vol. 5, no. 8. BYTE Publications Inc. p. 173. ISSN 0360-5280. CODEN BYTEDJ. Archivado desde el original el 2017-04-05 . Consultado el 2013-08-18 .
[…] 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. Pequeñas correcciones manuales y optimización. (Nos llevó unas cuatro horas arreglar una traducción reciente de un programa Z80 de 19K. ¡Incluso sin optimización, funcionó el doble de rápido que el original! […])
[23]
- ^ Paterson, Tim (1994-10-03). "Los orígenes de DOS: el creador de DOS ofrece su visión de la relación entre CP/M y MS-DOS" (PDF) . Microprocessor Report . 8 (13). Recursos de MicroDesign (MDR). ISSN 0899-9341. Archivado desde el original (PDF) el 2012-05-31.
[…] Para lograr que los principales desarrolladores de software trasladaran 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 8080 a través del traductor sería el único trabajo requerido por los desarrolladores de software 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. […]
- ^ ab Paterson, Tim (30 de septiembre de 2007). "Diseño de DOS". DosMan Drivel . Archivado desde el original el 20 de enero de 2013 . Consultado el 4 de julio de 2011 .
[…]
Compatibilidad de traducción
CP/M […] Para que
DOS
tuviera éxito, necesitaría que se escribieran aplicaciones útiles (como procesamiento de textos) para él. Me preocupaba que
SCP
pudiera tener problemas para persuadir a los autores de software de aplicación para que se esforzaran en crear una versión 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 lo más fácil posible la portabilidad de las aplicaciones de 8 bits existentes a nuestra computadora de 16 bits, lograríamos que más programadores se lanzaran. Y me pareció que la compatibilidad de traducción CP/M era lo que haría que el trabajo fuera 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 CP/M significa que cuando la 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 CP/M un objetivo de diseño fundamental. Esto requirió que creara una Interfaz de Programación de Aplicaciones muy específica que implementara la compatibilidad de traducción. No consideré que esta fuera la API principal; de hecho, había otra API más adecuada para el mundo de 16 bits y que tenía más capacidades. Ambas API usaban construcciones definidas por CP/M (como el "
Bloque de Control de Archivos
"); la API de compatibilidad tenía que hacerlo, y no vi una 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
). Los pasé por el traductor y obtuve programas de 16 bits que se ejecutaban bajo DOS. Estas herramientas traducidas se incluyeron con DOS cuando SCP las envió. Pero no creo que nadie más haya aprovechado este proceso. […]
- ^ "Traductor de Z80 a 8086". Versión 1 del ensamblador cruzado Z80/8086 (PDF) . Revisión A (edición preliminar). Seattle, Washington, EE. UU.: Seattle Computer Products . págs. 20-21. Archivado desde el original el 30 de noviembre de 2021 . Consultado el 18 de enero de 2020 .
[…] El traductor
de Z80
a
8086
de Seattle Computer Products
se ejecuta en el Z80 con
CP/M
. Acepta como entrada un archivo fuente Z80 escrito con mnemónicos
Zilog
/
Mostek
y lo convierte en un archivo fuente 8086 en un formato aceptable para nuestro ensamblador cruzado 8086. Para traducir un archivo, simplemente escriba TRANS86 <filename>.<ext>. Independientemente de la extensión original, el archivo de salida se llamará <filename>.A86 y aparecerá en la misma unidad que el archivo de entrada. Se incluye un archivo llamado TRNTEST.Z80 para demostrar el traductor. No se traduce todo el lenguaje ensamblador Z80. […]
{{cite book}}: CS1 maint: unfit URL (link)[24] - ^ ab 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) desde el original el 14 de julio de 2019. Consultado el 1 de febrero de 2020 .
- ^ ab Paterson, Tim (19 de diciembre de 2013) [1 de julio de 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 desde el original el 12 de noviembre de 2019. Consultado el 25 de marzo de 2014 .[25] (NB. Aunque los editores afirman que se trataría de MS-DOS 1.1 y 2.0, en realidad se trata de SCP MS-DOS 1.25 y TeleVideo PC DOS 2.11 ).
- ^ SCP 86-DOS – Single-User Disk Operating System for the 8086 (Preliminary ed.). 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
Z80 a código fuente
8086
aceptable para el ensamblador después de 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 Z80 a 8086, llamado por este comando, es esencialmente idéntico a nuestra versión que se ejecuta en el Z80, que se describe en la parte posterior del manual del ensamblador. Las únicas diferencias: 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". […]
[26]
- ^ Traductor de Z80 a 8086 (PDF) . Seattle Computer Products . págs. TRANS-1–TRANS-2. Archivado desde el original el 2021-11-30 . Consultado el 2020-01-19 .
{{cite book}}: CS1 maint: unfit URL (link)(23 páginas) - ^ Hughes, David B. (noviembre de 1982). "CP/M-86 y MS-DOS: un análisis comparativo". PC Magazine . Sistemas operativos. Vol. 1, no. 7. Software Communications, Inc. pp. 181–182, 187–190 [189]. Archivado desde el original el 2020-02-10 . Consultado el 2020-02-10 .
[…] Una impresionante y útil variedad 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
en código fuente
8086
, un enlazador y un entorno de ejecución de biblioteca se combinan con un potente ensamblador para brindarle al programador todo lo que necesita para aprovechar al máximo el procesador de 16 bits de la PC. El programa de traducción MS-DOS permite al usuario traducir código desarrollado bajo
el sistema operativo
CP/M-80
o
SB-80 […] de 8 bits […] a
MS-DOS 1.2
o
2.0
. Es posible que sea necesario realizar alguna modificación 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 un usuario con formación técnica. […]
- ^ ab Garetz, Mark (1980-12-22). "Según Garetz…". InfoWorld – Noticias para usuarios de microcomputadoras . Vol. 2, no. 23. Popular Computing, Inc. p. 12. ISSN 0199-6649. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-18 . […] La semana pasada fue la
reunión
semestral de intercambio de computadoras de California
. Este evento está organizado por John Craig […]
Sorcim
[…] estaba debutando […] nuevos productos en la feria […] Su otro producto fue TRANS-86. TRANS-86 tomará cualquier archivo de código fuente
8080
/
8085
/
Z-80
compatible con
CP/M
y lo traducirá a código
8086.
Luego puede ensamblar el nuevo archivo con ACT-86. […]
- ^ Blumenfeld, Dan (4 de diciembre de 1982). "Traductor de Z80 a 8086". Grupo de noticias : fa.info-cpm. Archivado desde el original el 16 de enero de 2020. Consultado el 15 de enero de 2020 .[27]
- ^ "CompuPro". PC: The Independent Guide To IBM Computers (Anuncio). Vol. 1, no. 1. Software Communications, Inc. Febrero-marzo de 1982. págs. 70-71. Número de estreno/charter . Consultado 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 cantidad de lenguajes, traductores de 8080 a 8088 y más. COMPATIBILIDAD. Nuestros sistemas pueden usar utilidades CP/M 2.2 para escribir programas para IBM PC. ¡Simplemente crea el código fuente 8088 (escríbelo con tu editor CP/M 80 favorito o tradúcelo con TRANS 86 de
Sorcim
), ensambla de forma cruzada el código fuente (con ACT86 de Sorcim), vincula el archivo hexadecimal (con el comando LOAD de CP/M 80), lo traduce a la IBM PC (con el programa CPM-IBM de G&G) y lo ejecuta en tu 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 más! […]
[28] [29]
- ^ Warren, Jr., Jim C. (julio de 1982). "Sorcim' Somethin'" (PDF) . Silicon Gulch Gazette . Rumores que circulan aquí. Vol. 7, núm. 30. Woodside, California, EE. UU.: Computer Faire . págs. 1, 2, 4, 6, 11, 14, 15 [11]. Archivado desde el original el 30 de noviembre de 2021 . Consultado el 15 de enero de 2020 .
[…]
Sorcim
acaba de completar la compra de
ISA
. […] También tienen un traductor de 8080 a 8086, Trans-86, operativo desde hace más de un año […]
{{cite news}}: CS1 maint: unfit URL (link) - ^ abcde Barry, Tim (5 de abril de 1982). "XLT-86, un programa de utilidad CP/M de Digital Research". InfoWorld – The Newsweekly for Microcomputer Users . Revisión de software. Vol. 4, no. 13. Popular Computing, Inc. pp. 40–41, 53. ISSN 0199-6649. Archivado desde el original el 1 de febrero de 2020. Consultado el 25 de enero de 2020. [
…] 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 en código de máquina, analiza la utilización de registros, memoria y banderas, y emite un
programa en lenguaje ensamblador
8086
optimizado. […] También existe una versión de XLT-86 para aquellos que tengan acceso a un
VAX 11/750
o
11/780
. Esta versión puede traducir programas mucho más grandes. También cuesta $8000. […] Mientras que el traductor agrega algunas etiquetas y las equipara con el programa fuente como parte de la traducción, todos los comentarios y etiquetas del programa original se pasan intactos al programa traducido. […] La traducción del programa se lleva a cabo en un proceso de cinco pasos. Primero, el programa se escanea y 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. […]
- ^ 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, no. 15. Popular Computing, Inc. pp. 23–24. ISSN 0199-6649. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-17 .
[…] 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 hacerlo. Ese habría sido un proyecto de tres meses si hubiera podido concentrarme en él. […]
- ^ 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 exhaustiva y exclusiva para PC con el pionero del software Gary Kildall". PC Magazine . Sistemas operativos. Vol. 1, no. 3. Software Communications, Inc. pp. 32–38, 40 [35] . Consultado el 17 de enero de 2020 .
[…] PC: ¿Cuáles son algunas de las complejidades involucradas en la traducción de un programa del formato
8080
al
8086
?
Kildall
: Las traducciones directas a nivel de programa fuente se pueden hacer de manera bastante mecánica. Por ejemplo, una instrucción "Agregar 5 inmediato" del 8080 se convierte en una "Agregar AL 5" en el 8086: una traducción muy sencilla de los propios códigos de operación. La complejidad de
la traducción mecánica
surge de situaciones como ésta: la instrucción DAD H del 8080 toma el registro HL y le añade DE. Para el 8086, la instrucción equivalente sería algo como ADD DX BX, lo cual está bien, no hay ningún problema en particular. Simplemente se dice que el registro DX es el mismo que el HL y BX es el mismo que el DE. El problema es que la instrucción del 8086 tiene un efecto secundario de establecer el indicador cero, y la instrucción del 8080 no. En la traducción mecánica se termina haciendo algo como guardar los indicadores, restaurarlos, hacer algunos cambios 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 asignan muy bien debido a los registros de indicadores y cosas de ese tipo. La forma en que pasamos el software es algo llamado XLT-86. Hace seis meses aproximadamente que está en el mercado. PC: ¿Por código "mejor" se refiere a un código más pequeño? Kildall: Un veinte por ciento más pequeño que si simplemente tomara cada código de operación y hiciera 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 toma un programa 8080, lo traslada al mundo 86 y realiza una traducción XLT-86, encontrará que es aproximadamente entre un 10 y un 20 por ciento más grande. Con máquinas de 16 bits es más difícil abordar todo; se obtienen 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 la velocidad en el mundo de 16 bits es porque se ejecutan más códigos de operación sobre el bus de datos. […]
- ^ 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 (25 de abril de 2014). Laws, David (ed.). "Legado de Gary Kildall: La dedicatoria del hito del CP/M IEEE" (PDF) (Transcripción del vídeo). Pacific Grove, California, EE. UU.: Computer History Museum . Número de referencia del CHM: X7170.2014. Archivado (PDF) desde el original el 27 de diciembre de 2014 . Consultado el 19 de enero de 2020 .
[…]
Rolander
: Mencioné antes que
a Gary
le gustaba abordar un problema como arquitecto. […] Y dibujaba las imágenes más hermosas de sus estructuras de datos. […] Y cuando terminó eso […] y estaba convencido de que esas estructuras de datos ahora eran correctas, entraba en un modo de codificación increíblemente maníaco. Podía trabajar hasta 20 horas al día […] durante esos períodos de tiempo simplemente no estaba. En un par de esas ocasiones, cuando lograba ejecutar algo por primera vez, lo que podía ser en medio de la noche. Y todos los que han escrito software han visto que, por ejemplo, la primera vez que aparece en la pantalla, tienes que decírselo a alguien. Mi esposa Lori les dirá que recibí un par de esas llamadas en medio de la noche,
LOGO
fue un ejemplo, XLT 86 fue otro, donde lo ejecutó por primera vez, y tuvo que hacer que alguien lo viera. Así que no importaba la hora que fuera, él me llamaba, tenía que ir a verlo en funcionamiento. […]
[30] [31] (33 páginas)
- ^ "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 todas partes . Actualización de productos. Vol. 1, núm. 1. Pacific Grove, California, EE. UU.: Digital Research, Inc. Noviembre de 1981. págs. 2, 7. Cuarto trimestre. Archivado desde el original el 10 de noviembre de 2021 . Consultado el 18 de enero de 2020 .
[…] Ahora está disponible un traductor de código ensamblador de 8 a 16 bits de
Digital Research
. Llamado XLT86, está diseñado para ayudar a facilitar el lento proceso de conversión de
productos de software
CP/M de microcomputadoras basadas en
8080
a
8086.
XLT86 se puede utilizar para traducir cualquier programa en lenguaje ensamblador que sea compatible con el formato ensamblador ASM, MAC o RMAC de Digital Research. El traductor de programas XLT86 primero lee un programa en lenguaje ensamblador 8080 y luego produce un archivo de salida que contiene instrucciones en lenguaje ensamblador 8086 aceptables para el ensamblador ASM-86 de Digital Research. A diferencia de otros convertidores de código 8086 que traducen una sola instrucción 8080 en 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 más compacto que los programas equivalentes producidos por otros traductores", según 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 cambiar a computadoras basadas en 8086 de 16 bits 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
minicomputadoras
de la serie
VAX
de Digital Equipment Corporation
. La versión CP/M tiene un precio de 150
dólares
. La versión VAX se vende por 8.000 dólares. […]
{{cite magazine}}: CS1 maint: unfit URL (link) - ^ Kildall, Gary Arlen (1973-10-01). "Un enfoque unificado para la optimización global de programas" (PDF) . Actas del 1.er Simposio anual ACM SIGACT-SIGPLAN sobre principios de lenguajes de programación (POPL) . POPL '73. Boston, Massachusetts, EE. UU.: 194–206. doi :10.1145/512927.512945. hdl :10945/42162. S2CID 10219496. Archivado (PDF) desde el original el 29 de junio de 2017 . Consultado el 20 de noviembre de 2006 .
- ^ Kildall, Gary Arlen (mayo de 1972). Optimización de expresiones globales durante la compilación (tesis doctoral). Seattle, Washington, EE. UU.: Universidad de Washington , Computer Science Group. Tesis n.º 20506, Informe técnico n.º 72-06-02.
- ^ ab XLT86 – 8080 to 8086 Assembly Language Translator – User's Guide (PDF) (Primera edición impresa). Pacific Grove, California, EE. UU.: Digital Research, Inc. Septiembre de 1981. Copia de archive.org. Archivado (PDF) desde el original el 2016-11-18 . Consultado el 2016-11-18 .
- ^ "XLT86 para CP/M-80". Investigación digital . Archivado desde el original el 16 de enero de 2020. Consultado el 18 de enero de 2020 .(NB. 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]).
- ^ Goldfarb, Ben (9 de diciembre de 1982). "Re: traducción de 8080 a 8086". Grupo de noticias : fa.info-cpm. Archivado desde el original el 1 de febrero de 2020. Consultado el 18 de enero de 2020. [
…] El programa XLT86 ocupa aproximadamente 30K bytes de memoria principal. El resto de la memoria, hasta la base de
CP/M
, almacena el gráfico del programa que representa el programa 8086 que se está traduciendo […] Un sistema CP/M de 64K permite la traducción de programas
8080
de hasta aproximadamente 6K. […]
[32] [33]
- ^ Wharton, John Harrison (1994-08-01). "Gary Kildall, pionero de la industria, murió a los 52 años: creó los primeros lenguajes de microcomputadoras, sistemas operativos de disco". Microprocessor Report . 8 (10). MicroDesign Resources Inc. (MDR). Archivado desde el original el 2016-11-18 . Consultado el 2016-11-18 .
[…] Irónicamente, muchas de las técnicas que
Gary
inició se están redescubriendo ahora, diez años después.
Apple
y
DEC
están promocionando
la recompilación binaria
como una "nueva" tecnología para trasladar software existente a la
arquitectura
PowerPC
o
Alpha . En realidad, DRI introdujo un recompilador binario
de 8080
a
8086
a principios de los años 1980. […]
- ^ "Premio SPA al Dr. Gary A. Kildall: Ganador del premio SPA Lifetime Achievement Award 1995". Asociación de editores de software (SPA). 13 de marzo de 1995. Archivado desde el original el 21 de diciembre de 2019. Consultado el 21 de diciembre de 2019 en 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
. […]
- ^ Swaine, Michael (1997-04-01). "Gary Kildall y el espíritu emprendedor colegial". Diario del Dr. Dobb . Archivado desde el original el 24 de enero de 2007. Consultado el 20 de noviembre de 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
. […]
- ^ abc 2500 AD Software (11 de diciembre de 1984). «Superensambladores más la selección más grande del mundo de ensambladores cruzados». Revista PC (Anuncio). Vol. 3, núm. 24. Englewood, Colorado, EE. UU.: PC Communications Corp. pp. 166–167. ISSN 0745-2500. Archivado desde el 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 poderoso paquete incluye un traductor de código fuente de lenguaje ensamblador Z-80/8080 a Z-8000 […] Los traductores proporcionan código fuente Z-8000 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 que utiliza mnemotecnias Zilog diseñadas 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 […]
(NB. 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.) - ^ "Zilog presenta un sistema de desarrollo modular". Computerworld – The Newsweekly for the Computer Community . Vol. XIII, no. 34. Cupertino, California, EE. UU.: Computerworld, Inc. 1979-08-20. p. 46. ISSN 0010-4841. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-24 .
[…]
Zilog, Inc.
ha presentado una serie de sistemas de desarrollo de productos (PDS) modulares y expandibles para
diseños de microcomputadoras basados en
Z8
,
Z80
y
Z8000
. Las cuatro versiones del sistema PDS 8000 (modelos 10, 15, 25 y 30) tienen […] Una característica estándar de cada sistema es un paquete de desarrollo de software Z8000, que incluye la rutina de administración de archivos
ZDOSII
, 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 el 10 y el 25 no incluyen el módulo de desarrollo Z8000. El modelo 10 de PDS tiene un precio de $10,485; el modelo 15, de $11,995; el modelo 25, de $20,000; y el modelo 35, de $21,500. Los cuatro sistemas están disponibles 30 días después de recibir el pedido. […]
- ^ Orlansky, Jesse, ed. (1979). Actas del 27 al 29 de noviembre de 1979 – 1.ª Conferencia sobre equipos de formación interservicios/industria. El Centro. pág. 413. Informe técnico NAVTRAEQUIPCEN. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-24 .
[…] Tabla 1. Características del microprocesador de 16 bits […]
Zilog
8000 […] Software […] Zilog espera dar soporte
a 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. […]
- ^ Sistema de desarrollo PDS 8000: el enfoque integrado para el diseño de sistemas (resumen del producto). Zilog . Enero de 1980 . Consultado el 24 de enero de 2020 . […] TRADUCTOR Z8000: proporciona un medio rápido para convertir un
programa en lenguaje ensamblador
Z80
existente a código
Z8000
y al formato de programa PLZ/ASM. […]
[34] [35]
- ^ Thomas, Rebecca A.; Yates, Jean L. (11 de mayo de 1981). «Libros, placas y software para los nuevos procesadores de 16 bits». InfoWorld : el periódico de la comunidad de microinformática . Vol. 3, núm. 9. Popular Computing, Inc. págs. 42-43. ISSN 0199-6649. Archivado desde el original el 1 de febrero de 2020. Consultado el 24 de enero de 2020. [
…]
Digital Research
también ha anunciado planes para una versión
Z8000
de
CP/M
. El software de aplicación se trasladará al Z8000 cuando haya más software de desarrollo disponible. Se necesita un traductor disponible comercialmente de
Z80
a Z8000. […]
- ^ ab Guzis, Charles "Chuck" P. (2009-01-21) [2009-01-17]. "Re: CP/M o SO similar para Z8002 de 64K?". Vintage Computer Forum . Género: CP/M y MP/M. Archivado desde el original el 2020-01-16 . Consultado el 2020-01-15 .
[…] tanto
Zilog
como
AMC
ofrecían
programas de traducción de
Z80
a
Z8000 . Al igual que el traductor
de Intel
8080
a
8086
, esto resultaba en una hinchazón inmediata a menos que estuvieras dispuesto a optimizar manualmente el resultado. Gran parte del código MS-DOS inicial se traducía automáticamente y se modificaba con código CP/M 8080. Sé que gran parte de
SuperCalc
para PC lo era, por ejemplo. Las primeras versiones (por ejemplo, la 3.3) de
Wordstar
para DOS probablemente también lo eran. […] Hubo traductores de código fuente del Z80 al Z8000, pero no era un proceso sencillo (modos "estrictos" y "relajados"; a veces, una instrucción del Z80 a varias instrucciones del Z8000). El 8086 está mucho más cerca del 8080 que el Z8000 del Z80. […]
- ^ "Traductor de código fuente de 2500 AD Software 8080/Z-80 a Z8000 v2.06b". 2500 AD Software, Inc. 1982. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-24 .[36]
- ^ "802Z8000.ZIP 2500 AD Software 8080/Z-80 to Z8000 source code translate v2.06e". 2500 AD Software, Inc. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-24 .[37]
- ^ ab Bodrato, Stefano (30 de octubre de 2008). «Código fuente de to86.awk». GitHub . 1.6. Archivado desde el original el 5 de enero de 2022 . Consultado el 5 de enero de 2022 .
- ^ Callahan, Brian (2021-10-23) [2021-07-06, 2021-06-06]. "Traductor de lenguaje ensamblador Intel 8080 CP/M 2.2 a Intel 8086/8088 MS-DOS". 8088ify 1.2. Archivado desde el original el 2022-03-31 . Consultado el 2021-11-28 .[38][39][40][41]
- ^ "Lista de lenguajes que compilan en JS". GitHub . Archivado desde el original el 23 de enero de 2020 . Consultado el 11 de marzo de 2018 .
- ^ theolivenbaum (13 de noviembre de 2021). «h5 🚀 - Compilador de C# a JavaScript». GitHub . Consultado el 14 de noviembre de 2021 .
- ^ "J2ObjC". Archivado desde el original el 22 de octubre de 2019. Consultado el 22 de octubre de 2019 .
- ^ "JSweet". Archivado desde el original el 14 de diciembre de 2019. Consultado el 14 de diciembre de 2019 .
- ^ "Maia" . Consultado el 13 de mayo de 2020 .
- ^ "Acelerar".
- ^ "Traductor C->Go". GitHub . Archivado desde el original el 2018-12-07 . Consultado el 2018-01-11 .
- ^ "Notas de la versión de Go 1.5". Archivado desde el original el 1 de febrero de 2020. Consultado el 11 de enero de 2018 .
- ^ Cox, Russ. "Revisión del compilador Go 1.3+". Archivado desde el original el 9 de enero de 2020. Consultado el 11 de enero de 2018 .
- ^ ab "Repositorio C2Rust". GitHub . 15 de abril de 2022.
- ^ "Descripción general". Js_of_ocaml - Manual de referencia . Ocsigen. Archivado desde el original el 2018-12-08 . Consultado el 2014-10-08 .
- ^ Página de investigación de J2Eif – Cátedra de Ingeniería de Software. Se.inf.ethz.ch. doi :10.1007/978-3-642-21952-8_4. Archivado desde el original el 1 de enero de 2020. Consultado el 8 de julio de 2014 .
- ^ "Página de investigación de C2Eif – Cátedra de Ingeniería de Software". Se.inf.ethz.ch. Archivado desde el original el 2020-01-01 . Consultado el 2014-07-08 .
- ^ "Saltar". Archivado desde el original el 18 de mayo de 2024. Consultado el 17 de mayo de 2024 .
- ^ "Convertidor de Objective-C a Swift de Swiftify" . Consultado el 14 de noviembre de 2017 .
- ^ "Convertidor en tiempo de ejecución". Archivado desde el original el 10 de julio de 2019. Consultado el 14 de noviembre de 2017 .
Lectura adicional
- 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 desde el original el 23 de julio de 2021. Consultado el 28 de noviembre de 2021 .
- "Programación de unidades Sycor facilitada con TAL II". Computerworld – The Newsweekly for the Computer Community . Vol. IX, no. 34. Ann Arbor, Michigan, EE. UU.: Computerworld, Inc. 1975-08-20. p. 14. ISSN 0010-4841. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-18 .
- Zerilli, Frank J.; Derouen, Craig (1986-12-11) [1985-08-15, 1984-12-20, 1984-11-20]. "Traductor ASM de 8080 a 8086, con fuente ASM". SIMTEL . XLT86.COM 1.10. Archivado desde el original el 2020-02-01 . Consultado el 2020-01-18 .11-11-1984 versión 1.05 (NB: El ejecutable 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 lenguaje ensamblador 8086 no está relacionada con el XLT86 anterior y mucho más sofisticado de Digital Research).
- Albo, Julián (2009-04-24). «Pasmo, ensamblador cruzado Z80 portable / portable Z80 cross assemblyr» (en español e inglés). Archivado desde el original el 2020-02-20 . Consultado el 2020-02-20 .
[…] 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 los 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 Ms-dos o en formato CMD CP/M 86. […]
[42] [43] - Ciarcia, Steve (mayo de 1984). "Trump Card – Parte 1: Hardware – Acelere su IBM PC con potencia de coprocesamiento de 16 bits" (PDF) . BYTE – La revista de sistemas pequeños . Ciarcia's Circuit Cellar. Vol. 9, no. 5. McGraw-Hill, Inc. págs. 40–52, 54–55. ISSN 0360-5280 . Consultado el 29 de enero de 2020 .
[…] En su lugar, ejecuta programas escritos en lenguajes de alto nivel como BASIC y C (se están desarrollando un compilador Pascal y un traductor de 8088 a Z8000). […]
y Ciarcia, Steve (junio de 1984). "Trump Card – Part 2: Software – TBASIC and C compilers and an assembly" (PDF) . BYTE – The small systems journal . Ciarcia's Circuit Cellar. Vol. 9, no. 6. McGraw-Hill, Inc. pp. 115–122. ISSN 0360-5280 . Consultado el 29 de enero de 2020 .[…] Espero que pronto estén disponibles los traductores de código objeto para las 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 potencia de 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 desde el original el 1 de febrero de 2020. Consultado el 29 de enero de 2020 .[44] [usurpado] - Equipo de aplicaciones de la división de microcontroladores (2000). "Traducción del 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) (NB: Este traductor de software fue desarrollado por ST y traduce el código fuente del ensamblador Motorola 6805 / HC05 en formato de software 2500AD al código fuente 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. composition.al . Archivado desde el original el 9 de enero de 2022 . Consultado el 9 de enero de 2022 .
Enlaces externos
- 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 desde el original el 2019-07-30 . Consultado el 2020-01-18 .
- "Nuestra metodología: el proceso de conversión de fuente a fuente". Micro-Processor Services, Inc. (MPS). Archivado desde el original el 2019-05-12 . Consultado el 2020-02-01 .