Un traductor de código-fuente , compilador de fuente-a-fuente ( S2S compilador ), transcompiler o transpiler [1] es un tipo de traductor que lleva el código fuente de un programa escrito en un lenguaje de programación como entrada y produce una código fuente equivalente en el mismo lenguaje de programación o en uno diferente. Un traductor de fuente a 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 programación de nivel superior a unlenguaje de programación de nivel inferior . Por ejemplo, un traductor de fuente a 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 de Java a código de bytes . [2] Un compilador de paralelización automática tomará frecuentemente 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 Fortranforall
). [3]
Otro propósito de la compilación de fuente a fuente es traducir código heredado para usar la próxima versión del lenguaje de programación subyacente o una API que rompa la compatibilidad con versiones anteriores. Realizará una refactorización automática de 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 El tamaño del programa hace que sea poco práctico o que requiera mucho tiempo refactorizarlo a mano.
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 parece al código fuente. [4] También hay utilidades de depuración que mapean el código fuente transcompilado 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 a la fuente original cuando el código JavaScript fue, por ejemplo, minificado o producido por un lenguaje transcompilado a JavaScript. [ cita requerida ]
Los ejemplos incluyen Closure Compiler , CoffeeScript , Dart , Haxe , TypeScript y Emscripten . [5]
Traductores de lenguaje ensamblador
Intel CONV86
Intel comercializó su procesador 8086 de 16 bits para que sea compatible en origen con el 8080 , un procesador de 8 bits. [6] Para respaldar esto, Intel tenía un traductor basado en ISIS-II del 8080 al 8086 código fuente llamado CONV86 [7] [8] [9] (también conocido como CONV-86 [10] y CONVERT 86 [11] [12] ) disponible para los clientes OEM desde 1978, posiblemente el primer programa de este tipo. [nb 1] Admitía varios niveles de traducción y funcionaba a 2 MHz en un sistema de desarrollo de microprocesador Intel MDS-800 con unidades de disquete de 8 pulgadas . Según los informes de los usuarios, no funcionó de manera muy confiable. [13] [14]
SCP TRANS86
Seattle Computer Products '(SCP) ofreció TRANS86.COM, [12] [15] [16] escrito por Tim Paterson en 1980 mientras desarrollaba 86-DOS . [17] [18] [19] La utilidad podría traducir el código fuente ensamblador Intel 8080 y Zilog Z80 (con mnemónicos Zilog / Mostek ) en código fuente .ASM para Intel 8086 (en un formato solo compatible con el ensamblador cruzado ASM86 de SCP para CP / M-80 ), pero admitía solo un subconjunto de códigos de operación , registros y modos y, a menudo, seguía requiriendo correcciones manuales importantes y retrabajos posteriores. [20] [17] Además, realizando solo una mera transliteración , [11] [15] [7] [8] el traductor de fuerza bruta de un solo paso no llevó a cabo ninguna optimización de registro y salto. [21] [22] Se necesitaron alrededor de 24 KB de RAM. [12] La versión 1 de SCP de TRANS86.COM se ejecutó en sistemas basados en Z80. [12] [15] Una vez que 86-DOS se estaba ejecutando, Paterson utilizó TRANS86 para convertirse en un programa que se ejecutaba bajo 86-DOS. [19] Versión numerada 2, en su lugar se llamó TRANS.COM. [15] [22] [21] [23] [24] Más tarde, en 1982, el traductor aparentemente también estaba disponible en Microsoft . [12] [25]
Sorcim TRANS86
También llamado TRANS86, Sorcim ofreció un traductor de 8080 a 8086 desde diciembre de 1980. [26] [11] 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). [26] [12] [27] [28] En formato ACT80 también admitía algunos mnemónicos Z80. La traducción se produjo instrucción por instrucción con cierta optimización aplicada a los saltos condicionales. El programa se ejecutó bajo 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. [12] [29]
Investigación digital XLT86
Mucho más sofisticado y el primero en introducir tecnologías optimizadoras de compilación en el proceso de traducción de fuentes fue XLT86 1.0 de Digital Research en septiembre de 1981. XLT86 1.1 estaba disponible en abril de 1982. [30] El programa fue escrito por Gary Kildall [11] [31 ] [32] [33] y el código fuente .ASM traducido 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 en el uso de registros 8080, [34] [11] [35] [36] el traductor de múltiples pasadas 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 (CP / M-80 Las llamadas BDOS 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. El propio XLT86.COM fue escrito en PL / I-80 para plataformas CP / M-80. [37] [12] [30] [38] 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 de origen admitido era de aproximadamente 6 KB, [37] [12] [39] [30], por lo que los archivos más grandes tenían que dividirse en consecuencia antes de la traducción. [12] [30] Alternativamente, XLT86 también estaba disponible para DEC VMS (para VAX 11/750 o 11/780 ). [12] [30] Aunque la entrada y salida de XLT86 funcionaba 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 . [40] [41] [42]
Otros
2500 AD Software ofreció un traductor de código fuente 8080 a 8086 como parte de su suite XASM para máquinas CP / M-80 con Z80, así como para los sistemas Zilog ZEUS y Olivetti PCOS . [43]
Desde 1979, Zilog ofreció un traductor de Z80 a Z8000 como parte de su sistema de desarrollo PDS 8000. [44] [45] [46] [47] [48] [14] Microcomputadoras avanzadas (AMC) [48] [14] y 2500 AD Software también ofrecían traductores de Z80 a Z8000. [43] Este último se denominó TRANS [49] [50] y estaba disponible para Z80 CP / M, CP / M-86, MS-DOS y PCOS. [43]
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 sigue siendo transcompiladores. Además de la tabla siguiente, un responsable de CoffeeScript proporciona una lista de lenguajes que se compilan en JavaScript. [51]
Nombre | Lenguaje fuente | Lengua de llegada |
---|---|---|
Cfront | C ++ | C |
HipHop para PHP (HPHPc) | PHP | C ++ |
Babel | ES6 + ( JS ) | ES5 |
ClojureScript | Clojure | JavaScript |
JSweet [52] | Java | Mecanografiado |
Swiftify [53] | C objetivo | Rápido |
J2ObjC [54] | Java | C objetivo |
Haxe | Haxe | ActionScript 3 , JavaScript , Java , C ++ , C # , PHP , Python , Lua |
Maia [55] | Maia | Verilog |
Cerberus X | Cerbero | JavaScript , Java , C ++ , C # |
Portar una base de código
Cuando los desarrolladores quieren cambiar a un idioma diferente mientras conservan la mayor parte de una base de código existente, podría ser mejor usar un transcompilador en lugar de reescribir todo el software a mano. Dependiendo de la calidad del transcompilador, el código puede necesitar o no una 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 de código en términos de legibilidad y convención de la plataforma.
Herramienta | Lenguaje fuente | Lengua de llegada | Comentarios |
---|---|---|---|
Secuencia de comandos 2to3 | Python 2 | Python 3 | Aunque 2to3 hace todo lo posible para automatizar el proceso de traducción, a menudo se necesitan más correcciones manuales. |
Emscripten | Código de bytes LLVM | JavaScript | Esto permite ejecutar bases de código C / C ++ en un navegador, por ejemplo |
c2go [56] | C | Ir | Antes de la versión 1.5, el compilador Go se escribía en C. Se desarrolló un traductor automático para convertir automáticamente el código base del compilador de C a Go. [57] [58] Desde Go 1.5, "el compilador y el tiempo de ejecución ahora se implementan en Go y ensamblador, sin C". |
C2Rust [59] | C | Oxido | C2Rust toma el código C como entrada y genera el unsafe código Rust, enfocándose en preservar la compatibilidad con el código base original. Existen varias limitaciones documentadas para este proceso. Convertir el código resultante en código Rust seguro e idiomático es un esfuerzo manual posterior a la traducción, aunque existe una herramienta automatizada para facilitar esta tarea. [59] |
Kit de herramientas web de Google | Programa Java que usa una API específica | JavaScript | El código Java está un poco limitado en comparación con el código Java normal. |
Js_of_ocaml [60] de Ocsigen | OCaml | JavaScript | |
J2Eif [61] | Java | Eiffel | El código Eiffel resultante tiene clases y estructuras similares al programa Java pero siguiendo la sintaxis y las convenciones de Eiffel. |
C2Eif [62] | C | Eiffel | El código Eiffel resultante tiene clases y estructuras que intentan ser lo más limpias posible. La herramienta está completa y se basa en incrustar el código C y ensamblador si no puede traducirlo correctamente. |
Swiftify [63] | C objetivo | Rápido | Swiftify es una herramienta de conversión de fuente a fuente en línea de Objective-C a Swift. Ayuda a los desarrolladores que están migrando todo o parte de su código base de iOS a Swift. La conversión está dirigida principalmente a convertir la sintaxis entre Objective-C y Swift, y se ve favorecida porque Apple se esforzó por garantizar la compatibilidad entre los tiempos de ejecución de Swift y Objective-C. |
Convertidor de tiempo de ejecución [64] | PHP | Java | Runtime Converter es una herramienta automática que convierte el código fuente PHP en código fuente Java. Existe una biblioteca en tiempo de ejecución de Java para ciertas características del lenguaje PHP, así como la capacidad de llamar al binario PHP en sí mismo utilizando JNI para llamadas a funciones de extensión y biblioteca estándar de PHP. |
Tuberías de transcompilador
Una canalización de transcompiladores es lo que resulta de la transcompilación recursiva . Al unir 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 independiente del lenguaje distribuido .
XSLT es una herramienta de transformación de propósito general que se puede utilizar entre muchas tecnologías diferentes para crear tal canalización de código derivado .
Transcompilación recursiva
La transpilación recursiva (o transcompilación recursiva ) es el proceso de aplicar la noción de transpilación recursiva, para crear una tubería de transformaciones (a menudo partiendo de una única fuente de verdad ) que convierten repetidamente una tecnología en otra. [ verificación fallida ]
Al repetir este proceso, uno puede convertir A → B → C → D → E → F y luego volver a A (v2). Parte de la información se conservará a través de esta canalización, de A → A (v2), y esa información (en un nivel abstracto) demuestra en qué están de acuerdo cada uno de los componentes A – F. [ cita requerida ]
En cada una de las diferentes versiones que produce la canalización del transcompilador, esa información se conserva. [ cita requerida ] Puede tomar muchas formas y tamaños diferentes, pero cuando vuelve a A (v2), después de haber sido transcompilado 6 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 transpilación recursiva aprovecha el hecho de que los transpilers 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 pueden cambiar tanto la estructura del código original, que el traducido el código no se parece al código fuente. También hay utilidades de depuración que mapean el código fuente transpilado al código original; por ejemplo, los mapas de fuentes de JavaScript permiten la asignación del código JavaScript ejecutado por un navegador web a la fuente original en un lenguaje transpilado a JavaScript. [ cita requerida ]
Ver también
- Recompilador binario
- C a HDL
- Generación de código (compilador) : proceso mediante el cual el generador de código de un compilador convierte alguna representación intermedia del código fuente en una forma que una máquina puede ejecutar fácilmente
- Kit de herramientas de reingeniería de software DMS : un marco de compilación de fuente a fuente que utiliza reglas de reescritura explícitas dirigidas por patrones
- f2c : un compilador de fuente a fuente de Fortran 77 a C
- Honeywell Liberator (que ejecuta programas IBM 1401 en Honeywell H200 )
- Representación intermedia
- Enlace de idioma : biblioteca de software que permite usar otra biblioteca codificada en otro lenguaje de programación
- Especificación independiente del lenguaje: estándar de programación informática destinado a ser interoperable entre lenguajes de programación
- Interoperabilidad lingüística
- Optimizador de código de objeto , también conocido como optimización binaria
- Preprocesador : programa que procesa la entrada para otro programa
- Transformación de programas
- Transcompilación recursiva
- ROSE (marco del compilador) : un marco del compilador de fuente a fuente
- Traductor (informática) : programa informático que traduce el código de un lenguaje de programación a otro
- XSLT - Lenguaje para transformar documentos XML
Notas
- ^ Un programa comercial conocido por haber sido traducido máquina-bajo ISIS-II de 8080 CP M-80 / código fuente para 8086 CP / M-86 usando Intel 'CONV86 s era MicroPro ' s WordStar 3.0 en septiembre de 1981.
Referencias
- ^ ARC-Softwaresystems (junio de 1988). "Aus BASIC mach C: B → C Transpiler" [Convertir BASIC en C: B → C Transpiler]. Amiga-Magazin . 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 […] Der B → C TRANSPILER übersetzt lauffähige AMIGA -Programa básico en código C compilado. […] Durch Spezialbefehle kann C-Code en Basicproqramme direkt integriert werden. […] Basic-Befehle werden erweitert transpiliert. ( HAM-Modus , IFF , usw. werden unterstützt). […] Mit diesem Konzept neuester Generation verbindet der B → C TRANSPILER auf einzigartige Weise die Vorteile eines Interpreters mit denen eines Compilers […]
[1] - das Computermagazin für Amiga-Fans (Anuncio) (en alemán). Vol. 1988 no. 6. Esslingen, Alemania: Markt & Technik Verlag Aktiengesellschaft . pag. 101. ISSN 0933-8713 . Archivado desde el original el 1 de febrero de 2020 - ^ a b "Transpiler" . devopedia.org . 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 .
- ^ Juegos épicos ; Mozilla . "Ciudadela épica HTML5" .
- ^ Scanlon, Leo J. (1988). Lenguaje ensamblador 8086/8088/80286 . Libros Brady. pag. 12 . ISBN 978-0-13-246919-7.
[…] El 8086 es compatible con el software del 8080 en el nivel de lenguaje ensamblador. […]
- ^ a b Instrucciones de funcionamiento del convertidor de lenguaje ensamblador MCS-86 para usuarios de ISIS-II . A30 / 379 / 10K TL. Santa Clara, California, Estados Unidos: Intel Corporation . Marzo de 1979 [1978]. Núm . De pedido 9800642A . Consultado el 18 de enero de 2020 . [2] (NB. Puede encontrar una versión más reciente de este manual aquí ).
- ^ a b Instrucciones de funcionamiento del convertidor de lenguaje ensamblador MCS-86 para usuarios de ISIS-II . A175 / 280 / 7.5 FL. Santa Clara, California, Estados Unidos: Intel Corporation . Febrero de 1980 [1978]. Núm . De pedido 9800642-02 . Consultado el 18 de enero de 2020 . [3] [4] (NB. Puede encontrar una versión anterior de este manual aquí ).
- ^ Nelson, Ross P. (enero de 1989) [1988]. El libro 80386: Guía del programador en lenguaje ensamblador para el 80386 . Serie de programación de Microsoft (1 ed.). Microsoft Press . pag. 2. ISBN 978-1-55615-138-5.
[…] Un programa de traducción de Intel podría convertir programas de ensamblador 8080 en programas de ensamblador 8086 […]
- ^ El Manual del usuario de la familia 8086 . Intel Corporation . Octubre de 1979 [1978]. págs. 2-74, 2-92, B-176. Núm . 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 hacer la mayoría del trabajo de conversión necesaria para traducir 8080 / 8085 módulos de código en lenguaje ensamblador en módulos de código ASM-86. […] Para facilitar la conversión de programas en 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] - ^ a b c d e Freiberger, Paul (19 de octubre de 1981). "Los traductores de programas lo hacen literalmente, ya veces en contexto" . InfoWorld - Noticias para usuarios de microcomputadoras . Sección especial: Compatibilidad informática. 3 (22). Popular Computing, Inc. pág. 19. ISSN 0199-6649 . Archivado desde el original el 1 de febrero de 2020 . Consultado el 15 de enero de 2020 .
[…] "A menos que tenga un esquema de traducción que tenga en cuenta la peculiar idiosincrasia del microprocesador de destino, no hay forma de que un traductor automático pueda funcionar", explica Daniel Davis, 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 introducido su traductor de código ensamblador de ocho a 16 bits. Según una investigación realizada por el presidente de Digital Research, Gary Kildall , el XLT86 parece ofrecer avances sobre la tecnología de traductor de software disponible anteriormente. Al igual que Trans de Sorcim y Convert 86 de Intel , el paquete de Kildall traduce el 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 del registro y la bandera 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 mayores problemas con cualquier programa de traducción ha sido la incapacidad del software para hacer mucho más que transliteración. Si el nuevo traductor de Digital Research realmente avanza la tecnología hasta el punto en que se puede considerar el contexto, entonces pueden proliferar más traductores de software en el mercado de las microcomputadoras.
- ^ a b c d e f g h yo j k Taylor, Roger; Lemmons, Phil (junio de 1982). "Migración ascendente - Parte 1: Traductores - Uso de programas de traducción para mover programas CP / M-86 a CP / M 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 16 de enero de 2020 . Consultado el 15 de enero de 2020 .
[…] 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 en código fuente 8086 en un formato compatible con ASM86 operando bajo CP / M-80 o CP / M-86 . Dado que XLT86 está escrito en PL / I-80 , el traductor puede funcionar de forma independiente en CP / M-80 o para desarrollo cruzado en VAX / VMS . Produce código 8086 optimizado en un proceso de múltiples pasos de cinco fases , realizando un análisis de flujo de datos global para determinar el uso óptimo del registro. Aunque las definiciones de macros no son compatibles, las directivas de ensamblado 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 puede editar […] para producir un archivo fuente expandido para entrada aceptable para XLT86. XLT86 no reconoce las instrucciones de Z80 . XLT86 pasa bucles de repetición al código fuente 8086. XLT86 analiza el programa fuente en su totalidad, determinando la estructura del bloque y el uso de registro / bandera. Trabajando a partir de esta información, traduce el código al código ensamblador 8086 de forma optimizada. El algoritmo de decisión para cada tipo de instrucción se da 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 del registro 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 incrustadas en el texto fuente del 8080. […] XLT86 es un programa sofisticado que hace un trabajo razonable al optimizar la traducción del código fuente 8080 al código fuente 8086. Las llamadas BDOS 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 condicionales JMP y CALL en el código fuente 8080. En las instrucciones 8080, las instrucciones JMP y CALL son capaces de llegar a cualquier dirección dentro de la región de 64K bytes. Las instrucciones JMP condicionales 8086 pueden alcanzar sólo 128 bytes en cualquier lado del registro IP […]. XLT86 examina el destino del JMP condicional. Si no se puede alcanzar el objetivo, XLT86 cambia el sentido del JMP condicional y salta un JMP largo a la dirección de destino. Dado que no hay instrucciones CALL o RET condicional en el 8086, el sentido de la condición se cambia y se realiza un JMP condicional breve para omitir una CALL o RET incondicional. […] Los registros de segmento permiten la separación de regiones de código y datos. […] XLT86 examina una expresión y determina el segmento adecuado para la instrucción en 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é pasa si IBM no eligió la CPU Intel?" . Foro de la computadora de la vendimia . Género: Otros. Archivado desde el original el 16 de enero de 2020 . Consultado el 15 de enero de 2020 .
[…] El ensamblador 8086 original se ejecutó en un sistema de desarrollo MDS-80 equipado con 8080 . Uno de los primeros productos fue un traductor de nivel de fuente 8080 a 8086. Recuerdo que la velocidad de traducción fue extraordinariamente lenta. […] Nuestro vendedor se ofreció a ejecutar 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 un Opción escandalosamente cara para un MDS […] que aún se resquebraja cuando nos fuimos a dormir. Todavía no estaba hecho a la mañana siguiente […] Aproximadamente 2 semanas después, después de que los chicos del software de Intel echaron un vistazo al traductor, Ed regresó con el programa traducido. Era aproximadamente un 50% más grande en tamaño que la versión 8085 original , lo que iba en contra de las afirmaciones de Intel sobre el traductor. […]
- ^ a b c Guzis, Charles "Chuck" P. (31/12/2016) [30/12/2016]. "¿Re: código DOS en CP / M? Revisado ..." . Foro de la computadora de la vendimia . Género: CP / M y MP / M. Archivado desde el original el 16 de enero de 2020 . Consultado el 15 de enero de 2020 .
[…] 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 esperando horas para que el traductor terminara su trabajo) y volver a casa decepcionado. . Aproximadamente una semana después, recibí una llamada de 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. Estaba un poco escéptico de la afirmación de Intel en ese entonces de que el código 8086 era mucho más compacto que su contraparte 8080. Y la maldita cosa no funcionó de todos modos cuando se puso a prueba. [...] Había otros traductores 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", conservando el funcionamiento detallado […] era ISIS-II , ejecutándose en un MDS-800, a, qué, 2 MHz con 8 "disquetes. […]
- ^ a b c d "Lista de cambios no oficial de Microsoft Macro Assembler (MASM)" . bytepointer.com . 2018-08-21 [2016-09-08]. Archivado desde el original el 17 de julio de 2019 . Consultado el 18 de enero de 2020 .
[…] 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 se ejecutó bajo CP / M. Creo que se distribuyó con el SCP Tarjeta de CPU 8086 como ASM86. También escribí un traductor que convirtió el código fuente Z80 en código fuente 8086 ineficiente pero viable ( Intel promovió esta idea con una tabla de traducción publicada ). Esto se llamó TRANS86 y también se escribió en el ensamblaje Z80 para CP / M . Una vez que DOS estuvo funcionando, apliqué el traductor a ASM86 (y a sí mismo) para crear versiones 8086 que se ejecutaban bajo DOS. No tengo el historial de cambios frente a mí […], pero creo que las versiones> = 2 marcadas 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 tradujera para el 8086 de acuerdo con Intel ' s reglas publicadas , ese programa se ejecutaría correctamente en MS-DOS. Hacer que la compatibilidad de traducción de CP / M-80 fuera un requisito sirvió para promover el rápido desarrollo del software 8086, en el que, naturalmente, Seattle Computer estaba interesado. Hubo un éxito parcial: los desarrolladores de software que optaron por traducir sus programas CP / M-80 descubrieron que de hecho, se ejecutaron bajo 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ó la computadora personal de IBM , estos desarrolladores sintieron que CP / M-86 sería el sistema operativo de las computadoras 8086/8088. […]
[21] [22] - ^ a b Seattle Computer Products (agosto de 1980). "86-DOS - 8086 SISTEMA OPERATIVO - $ 95" . BYTE (Publicidad). Vol. 5 no. 8. BYTE Publications Inc. p. 173. ISSN 0360-5280 . CODEN BYTEDJ . Archivado desde el original el 5 de abril de 2017 . Consultado el 18 de agosto de 2013 .
[…] 1. Lea el archivo de código fuente Z80 escrito en formato CP / M y conviértalo 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 y optimización menor de la mano. (La traducción reciente de un programa de 19K Z80 nos llevó aproximadamente cuatro horas arreglar. ¡Incluso sin optimización, se ejecutó dos veces más rápido que el original! […])
[23] - ^ Paterson, Tim (3 de octubre de 1994). "Los orígenes de DOS: el creador de DOS da su visión de la relación entre CP / M, MS-DOS" (PDF) . Informe del microprocesador . Recursos de MicroDesign (MDR). 8 (13). ISSN 0899-9341 . Archivado desde el original (PDF) el 31 de mayo de 2012.
[…] Para lograr que los principales desarrolladores de software migren 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 8080 y CP / M ). Mi plan era que ejecutar un programa 8080 CP / M a través del traductor sería el único trabajo requerido por los desarrolladores de software para migrar el programa al 8086. En otras palabras, la interfaz utilizada por las aplicaciones para solicitar servicios del sistema operativo sería exactamente la misma. como CP / M después de aplicar las reglas de traducción . […]
- ^ a b 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 tenga éxito, necesitaría que se escribieran aplicaciones útiles (como procesamiento de texto). Me preocupaba que SCP pudiera tener problemas para persuadir a los autores de software de aplicación para que se esforzaran por 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 migración de aplicaciones de 8 bits existentes a nuestra computadora de 16 bits, conseguiríamos que más rogrammers dieran el paso. Y me pareció que la compatibilidad de traducción 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 en programas de 16 bits; La compatibilidad de traducción de CP / M significa que cuando la solicitud de un programa a CP / M pasó por la traducción, se convertirí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 programa de aplicación 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 utilizaron 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 en CP / M ( CDOS ). Los pasé por el traductor y obtuve programas de 16 bits que se ejecutaban en DOS. Estas herramientas traducidas se incluyeron con DOS cuando las envió SCP. Pero no creo que nadie más se haya aprovechado de este proceso. […]
- ^ "Traductor Z80 a 8086". Ensamblador cruzado Z80 / 8086 Versión 1 (PDF) . Revisión A (edición preliminar). Seattle, Washington, EE.UU .: Seattle Computer Products . págs. 20-21 . Consultado el 18 de enero de 2020 .
[...] El Seattle Computer Products Z80 a 8086 carreras traductor del Z80 bajo CP / M . Acepta como entrada un archivo fuente Z80 escrito usando mnemotécnicos Zilog / Mostek y lo convierte en un archivo fuente 8086 en un formato aceptable para nuestro 8086 Cross Assembler. Para traducir un archivo, simplemente escriba TRANS86
[24]. Independientemente de la extensión original, el archivo de salida se llamará. .A86 y aparecerá en la misma unidad que el archivo de entrada. Se incluye un archivo llamado TRNTEST.Z80 para hacer una demostración del traductor. No se traduce todo el lenguaje ensamblador del Z80. […] - ^ a b 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 .
- ^ a b Paterson, Tim (19 de diciembre de 2013) [1 de julio de 1982]. "Microsoft DOS V1.1 y V2.0: Z80 a 8086 Traductor 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 .(NB. Si bien los editores afirman que esto sería MS-DOS 1.1 y 2.0, en realidad es SCP MS-DOS 1.25 y TeleVideo PC DOS 2.11 ).
- ^ 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 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 de 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". […]
[25] - ^ Traductor de Z80 a 8086 (PDF) . Productos informáticos de Seattle . págs. TRANS-1 – TRANS-2 . Consultado el 19 de enero de 2020 . (23 páginas)
- ^ Hughes, David B. (noviembre de 1982). "CP / M-86 y MS-DOS: un análisis comparativo" . Revista de PC . Sistemas operativos. Vol. 1 no. 7. Software Communications, Inc. págs. 181–182, 187–190 [189]. Archivado desde el original el 10 de febrero de 2020 . Consultado el 10 de febrero de 2020 .
[…] Una impresionante y útil variedad de utilidades de desarrollo de software es una característica estándar de MS-DOS . Un programa que traduce código 8080 o Z80 en código fuente 8086 , un enlazador y un tiempo de ejecución de biblioteca se combinan con un poderoso ensamblador para brindar al programador todo lo necesario para aprovechar al máximo el procesador de 16 bits de la PC. El programa de traducción de MS-DOS permite al usuario traducir código desarrollado bajo CP / M-80 o SB-80 […] sistema operativo de 8 bits […] a MS-DOS 1.2 o 2.0 . Puede ser necesario realizar 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 un usuario capacitado técnicamente. […]
- ^ a b Garetz, Mark (22 de diciembre de 1980). "Según Garetz ..." . InfoWorld - Noticias para usuarios de microcomputadoras . 2 (23). Popular Computing, Inc. pág. 12. ISSN 0199-6649 . Archivado desde el original el 1 de febrero de 2020 . Consultado el 18 de enero de 2020 .
[…] La semana pasada fue el California Computer Swap Meet semestral . Este evento está organizado por John Craig […] Sorcim […] debutaba […] nuevos productos en la feria […] Su otro producto era TRANS-86. TRANS-86 tomará ninguna CP / M compatible con 8080 / 8085 / Z-80 archivo de código fuente y traducirla en 8086 código. 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 . [26]
- ^ "CompuPro" . PC: The Independent Guide To IBM Computers (Anuncio). Vol. 1 no. 1. Software Communications, Inc. febrero-marzo de 1982. págs. 70–71. Problema de Premiere / Charter . Consultado el 23 de enero de 2020 .
[…] ¿POR QUÉ? FLEXIBILIDAD. CompuPro 's 85/88 CPU ejecuta CP / M 80, 86, MP / M II y MP / M 86. Ofrecemos Wordstar dBASE II SuperCalc una gran cantidad de idiomas, 8080 a 8088 traductores y mucho más! COMPATIBILIDAD. Nuestros sistemas pueden utilizar las utilidades CP / M 2.2 para escribir programas para IBM PC. Simplemente cree la fuente 8088 (escríbala con su editor CP / M 80 favorito o traduzca con TRANS 86 de Sorcim ), ensamble su fuente (con ACT86 de Sorcim), vincule su archivo hexadecimal (con LOAD de CP / M 80) comando), tradúzcalo a la PC IBM (con el programa CPM-IBM de G&G) y ejecútelo en su PC IBM. ¡Este procedimiento NO requiere MS-DOS! […] ¿POR QUÉ? FLEXIBILIDAD. CompuPro 's 85/88 CPU ejecuta CP / M 80 y 86 o MS-DOS. ¡Ofrecemos WORDSTAR, dBASE II, TRANS86, XLT86, ACT86, SUPERCALC, CBASIC, MBASIC, MFORTRAN y más! […]
[27] [28] - ^ Warren, Jr., Jim C. (julio de 1982). "Sorcim 'Somethin ' " (PDF) . Silicon Gulch Gazette . Rumores traficados aquí. Woodside, California, EE.UU .: Computer Faire . 7 (30): 1, 2, 4, 6, 11, 14, 15 [11] . Consultado el 15 de enero de 2020 .
[…] Sorcim acaba de completar la compra de ISA . […] También han tenido un traductor 8080 a 8086 - Trans-86 - operativo durante más de un año […]
- ^ a b c d e Barry, Tim (5 de abril de 1982). "XLT-86, un programa de utilidad CP / M de Digital Research" . InfoWorld : el Newsweekly para usuarios de microcomputadoras . Revisión de software. 4 (13). Popular Computing, Inc. págs. 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 de traducción analítica escrito en PL / I-80 . Lee todo el programa fuente del 8080, lo ensambla en código de máquina, analiza el registro, la memoria y la utilización de indicadores, y emite un programa optimizado en lenguaje ensamblador 8086 . […] También hay una versión de XLT-86 para aquellos de ustedes que tienen acceso a un VAX 11/750 o 11/780 . Esta versión puede traducir programas mucho más grandes. También cuesta $ 8000. […] Si bien el traductor agrega algunas etiquetas y equipara el programa fuente como parte de la traducción, todos los comentarios originales y las etiquetas del programa se pasan intactos al programa traducido. […] La traducción del programa procede en un proceso de cinco pasos. Primero, el programa se escanea y ensambla para producir valores y ubicaciones de símbolos. En segundo lugar, la estructura del programa se analiza y se descompone en bloques básicos . En tercer lugar, se analizan los bloques básicos para determinar el flujo del programa y el uso de recursos. En cuarto lugar, la estructura de bloques y los datos de asignación de registros se recopilan en una lista para el usuario. En quinto lugar, la información de flujo y el programa fuente se utilizan para producir el programa fuente 8086 . […]
- ^ Kildall, Gary Arlen (19 de abril de 1982). Swaine, Michael ; Freiberger, Paul ; Markoff, John Gregory (eds.). "El fundador de Digital Research comenta su visión del negocio" . InfoWorld : el Newsweekly para usuarios de microcomputadoras . Sección especial: CP / M. 4 (15). Popular Computing, Inc. pág. 23-24. ISSN 0199-6649 . Archivado desde el original el 1 de febrero de 2020 . Consultado el 17 de enero de 2020 .
[…] Kildall: […] Hace un año y medio probablemente pasaba el 75% de mi tiempo en el negocio y el 25% en la programación. XLT-86 era un producto en el que estaba trabajando en ese momento y me tomó nueve meses hacerlo. 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: creador de CP / M - una entrevista en profundidad exclusiva para PC con el pionero del software Gary Kildall" . Revista de PC . Sistemas operativos. Vol. 1 no. 3. Software Communications, Inc. págs. 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 de la forma 8080 a 8086 ? Kildall : Traducciones directas en el nivel del programa fuente que puede hacer de forma casi mecánica. Por ejemplo, una instrucción 8080 "Agregar 5 inmediato" se convierte en un "Agregar AL 5" en el 8086, una traducción muy sencilla de los códigos de operación en sí. La complejidad de la traducción mecánica proviene de situaciones como esta: la instrucción 8080 DAD H toma el registro HL y le agrega DE. Para el 8086, la instrucción equivalente sería algo como ADD DX BX, lo cual está bien, no hay problema en particular. Simplemente dice que el registro DX es el mismo que HL y BX es el mismo que DE. El problema es que la instrucción 8086 tiene el efecto secundario de establecer el indicador de cero y la instrucción 8080 no. En la traducción mecánica terminas haciendo algo como guardar las banderas, restaurar las banderas, hacer algunos cambios y rotaciones, etc. Estos agregan alrededor de cinco o seis instrucciones adicionales para obtener el mismo efecto semántico. Hay muchas secuencias en el código 8080 que producen secuencias muy extrañas en el código 8086; simplemente no se mapean muy bien debido a los registros de banderas y cosas por el estilo. La forma en que obtenemos el software es una cosa llamada XLT-86. Han estado fuera seis meses más o menos. PC: ¿Por código "mejor" te refieres a más pequeño? Kildall: Un veinte por ciento más pequeño que si solo tomara todos los códigos de operación e 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 mueve a la tierra 86 y hace 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; 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 obtiene un aumento tremendo de velocidad en el mundo de 16 bits es porque está ejecutando más códigos de operación a través del bus de datos. […]
- ^ Huitt, Robert; Eubanks, Gordon ; Rolander, Thomas "Tom" Alan ; Leyes, David; Michel, Howard E .; Halla, Brian; Wharton, John Harrison ; Berg, Brian; Su, Weilian; Kildall, Scott ; Kampe, Bill (25 de abril de 2014). Leyes, David (ed.). "Legacy of Gary Kildall: The CP / M IEEE Milestone Dedication" (PDF) (Transcripción de video). Pacific Grove, California, EE.UU .: Museo de Historia de la Computación . Número de referencia CHM: X7170.2014. Archivado (PDF) desde el original el 27 de diciembre de 2014 . Consultado el 19 de enero de 2020 .
[…] Rolander : Mencioné anteriormente 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, entraría en un modo de codificación increíblemente maníaco. Simplemente pasaba hasta 20 horas al día […] simplemente se ausentaba durante estos períodos de tiempo. En un par de esas ocasiones, cuando tenía algo en funcionamiento la primera vez, 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, tiene que decírselo a alguien. Mi esposa Lori les dirá que tuve un par de esas llamadas en medio de la noche, LOGO fue un ejemplo, XLT 86 fue otro, donde lo puso en funcionamiento la primera vez, y tenía que que alguien lo viera. Así que no importaba qué hora era, él me llamaba, tenía que venir y verlo correr. […]
[29] [30] (33 páginas) - ^ "XLT86 reduce el esfuerzo de conversión en la traducción de programas en lenguaje ensamblador" (PDF) . Noticias de investigación digital: para usuarios de investigación digital en todas partes . Actualización del producto. Pacific Grove, California, EE.UU .: Digital Research, Inc. 1 (1): 2, 7. Noviembre de 1981. Cuarto trimestre . Consultado el 18 de enero de 2020 .
[…] Un traductor de código ensamblador de 8 a 16 bits ahora está disponible en 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 declaraciones 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 de flujo de datos extenso para determinar el uso de registros en todo el programa original. La información recopilada a través de este análisis se utiliza durante la traducción del programa para eliminar operaciones innecesarias de guardar y restaurar banderas. "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 Investigación Digital. "Además, XLT86 permite a los fabricantes de equipos originales, los usuarios finales y los proveedores de software conservar 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 se ejecutan 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 miniordenadores 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. […]
- ^ Kildall, Gary Arlen (1 de octubre de 1973). "Un enfoque unificado para la optimización del programa global" (PDF) . Actas del 1er 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 .( [31] )
- ^ Kildall, Gary Arlen (mayo de 1972). Optimización de la expresión global durante la compilación (tesis doctoral). Seattle, Washington, EE.UU .: Universidad de Washington , Grupo de Ciencias de la Computación. Tesis No. 20506, Informe técnico No. 72-06-02.
- ^ a b XLT86 - Traductor de lenguaje ensamblador 8080 a 8086 - Guía del usuario (PDF) (Primera edición de impresión). Pacific Grove, California, EE.UU .: Digital Research, Inc. Septiembre de 1981. Archivado (PDF) desde el original el 18 de noviembre de 2016 . Consultado el 18 de noviembre de 2016 . [32]
- ^ "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 de CP / M-80 XLT86.COM [22 KB], así como dos archivos de superposición XLT00.OVL [8 KB] y XLT01.OVL [9 KB].)
- ^ Goldfarb, Ben (9 de diciembre de 1982). "Re: traducción 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 8080 programas de hasta aproximadamente 6K. […]
[33] [34] - ^ Wharton, John Harrison (1 de agosto de 1994). "Gary Kildall, pionero de la industria, muerto a los 52: creó los primeros lenguajes de microcomputadoras, sistemas operativos de disco" . Informe del microprocesador . MicroDesign Resources Inc. (MDR). 8 (10). Archivado desde el original el 18 de noviembre de 2016 . Consultado el 18 de noviembre de 2016 .
[…] Irónicamente, muchas de las técnicas en las que Gary fue pionero 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 el software existente a la arquitectura PowerPC o Alpha . En realidad, DRI introdujo un recompilador binario 8080 -to- 8086 a principios de la década de 1980. […]
- ^ "Premio SPA al Dr. Gary A. Kildall: Ganador del Premio a la Trayectoria 1995 de SPA" . Asociación de Editores de Software (SPA). 1995-03-13. Archivado desde el original el 21 de diciembre de 2019 . Consultado 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 . […]
- ^ Swaine, Michael (1 de abril de 1997). "Gary Kildall y el espíritu empresarial colegiado" . 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 . […]
- ^ a b c 2500 AD Software (11 de diciembre de 1984). "Súper ensambladores más la selección más grande del mundo de ensambladores cruzados" . Revista PC (Publicidad). Vol. 3 no. 24. Englewood, Colorado, Estados Unidos: PC Communications Corp. págs. 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 8080 a 8086 (sin límite en el tamaño del programa para traducir) [… ] Paquete de desarrollo cruzado Z-8000 $ 199.50 […] Este poderoso paquete incluye un traductor de código fuente en lenguaje ensamblador Z-80/8080 a Z-8000 […] Los traductores proporcionan código fuente Z-8000 de Intel 8080 o Zilog Z-80 código fuente. El código fuente Z-8000 utilizado por estos paquetes está en la sintaxis única 2500AD usando mnemónicos Zilog diseñados para hacer la transición de escritura de código Z-80 a Z-8000 fácil […] 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 SOP M-20.) - ^ "Zilog presenta el sistema de desarrollo modular" . Computerworld : el Newsweekly para la comunidad informática . XIII (34). Cupertino, California, EE.UU .: Computerworld, Inc. 1979-08-20. pag. 46. ISSN 0010-4841 . Archivado desde el original el 1 de febrero de 2020 . Consultado el 24 de enero de 2020 .
[…] Zilog, Inc. ha introducido una serie de sistemas de desarrollo de productos (PDS) modulares y expandibles para diseños de microcomputadoras basadas 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 , PLZ / ASM de alto nivel ensambladores estructurados, 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 PDS Model 10 tiene un precio de $ 10,485; el Modelo 15 a $ 11,995; el Model 25 a 20.000 dólares; y el Model 35 a 21.500 dólares. Los cuatro sistemas están disponibles 30 días después de recibir el pedido. […]
- ^ Orlansky, Jesse, ed. (1979). Actas 27-29 de noviembre de 1979 - Primera conferencia sobre equipos de formación entre servicios / industria . El Centro. pag. 413. Informe técnico NAVTRAEQUIPCEN. Archivado desde el original el 1 de febrero de 2020 . Consultado el 24 de enero de 2020 .
[…] Tabla 1. Características del microprocesador de 16 bits […] Zilog 8000 […] Software […] Zilog espera admitir Z8000 con traductores para PLZ, BASIC , COBOL y FORTRAN . Estos permitirán la conversión del código Z80 al código Z8000, ya que el conjunto Z8000 está superconjunto a 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 .
[…] Z8000 TRANSLATOR: Proporciona un medio rápido para convertir un programa existente en lenguaje ensamblador Z80 al código Z8000 y al formato de programa PLZ / ASM. […]
[35] [36] - ^ 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 microcomputación . 3 (9). Popular Computing, Inc. pág. 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 Z8000 versión 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. […]
- ^ a b Guzis, Charles "Chuck" P. (21 de enero de 2009) [17 de enero de 2009]. "Re: CP / M o sistema operativo similar para 64K Z8002?" . Foro de la computadora de la vendimia . Género: CP / M y MP / M. Archivado desde el original el 16 de enero de 2020 . Consultado el 15 de enero de 2020 .
[...] tanto Zilog y AMC ofrecen Z80 -a- Z8000 programas de traducción. Al igual que el Intel 8080 -a- 8086 traductor, que dio lugar a la hinchazón inmediata a menos que estaban dispuestos a mano optimizar el resultado. Gran parte del código de MS-DOS se tradujo automáticamente y se modificó el código 8080 CP / M. Sé que gran parte de SuperCalc para PC lo fue, por ejemplo. Las primeras versiones (por ejemplo, 3.3) de Wordstar para DOS probablemente también lo fueron. […] Hubo traductores de código fuente de Z80 a Z8000, pero no fue un proceso sencillo (modos "estricto" y "relajado"; a veces una Z80 a varias instrucciones Z8000). El 8086 está mucho más cerca del 8080 que el Z8000 del Z80. […]
- ^ "2500 AD Software 8080 / Z-80 a Z8000 traductor de código fuente v2.06b" . 2500 AD Software, Inc. 1982. Archivado desde el original el 1 de febrero de 2020 . Consultado el 24 de enero de 2020 . [37]
- ^ "802Z8000.ZIP 2500 AD Software traductor de código fuente 8080 / Z-80 a Z8000 v2.06e" . 2500 AD Software, Inc. Archivado desde el original el 1 de febrero de 2020 . Consultado el 24 de enero de 2020 . [38]
- ^ "Lista de lenguajes que se compilan en JS" . Archivado desde el original el 23 de enero de 2020 . Consultado el 11 de marzo de 2018 .
- ^ "JSweet" . Archivado desde el original el 14 de diciembre de 2019 . Consultado el 14 de diciembre de 2019 .
- ^ "Swiftify" .
- ^ "J2ObjC" . Archivado desde el original el 22 de octubre de 2019 . Consultado el 22 de octubre de 2019 .
- ^ "Maia" . Consultado el 13 de mayo de 2020 .
- ^ "C-> Ir traductor" . Archivado desde el original el 7 de diciembre de 2018 . Consultado el 11 de enero de 2018 .
- ^ "Notas de la versión Go 1.5" . Archivado desde el original el 1 de febrero de 2020 . Consultado el 11 de enero de 2018 .
- ^ Cox, Russ . "Go 1.3+ Revisión del compilador" . Archivado desde el original el 9 de enero de 2020 . Consultado el 11 de enero de 2018 .
- ^ a b https://github.com/immunant/c2rust/blob/master/README.md
- ^ "Js_of_ocaml" . Archivado desde el original el 8 de diciembre de 2018 . Consultado el 8 de octubre de 2014 .
- ^ 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 C2Eif - Cátedra de Ingeniería de Software" . Se.inf.ethz.ch. Archivado desde el original el 1 de enero de 2020 . Consultado el 8 de julio de 2014 .
- ^ "Swiftify Objective-C a Swift Converter" . Consultado el 14 de noviembre de 2017 .
- ^ "Convertidor de tiempo de ejecución" . Archivado desde el original el 10 de julio de 2019 . Consultado el 14 de noviembre de 2017 .
Otras lecturas
- "Programación de unidades Sycor simplificada con TAL II" . Computerworld : el Newsweekly para la comunidad informática . IX (34). Ann Arbor, Michigan, Estados Unidos: Computerworld, Inc. 20 de agosto de 1975. pag. 14. ISSN 0010-4841 . Archivado desde el 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 12 de 1984, 20 de 11 de 1984]. "Traductor ASM 8080 a 8086, con fuente ASM" . SIMTEL . XLT86.COM 1.10. Archivado desde el original el 1 de febrero de 2020 . Consultado el 18 de enero de 2020 . 1984-11-11 versión 1.05 (NB. El ejecutable de DOS XLT86.COM [12 KB] traduce el código fuente del lenguaje ensamblador Intel 8080 al código fuente del lenguaje ensamblador Intel 8086. A pesar de su nombre, esta implementación en el ensamblaje 8086 no está relacionada con la anterior y XLT86 mucho más sofisticado ).
- Albo, Julián (24 de abril de 2009). "Pasmo, ensamblador cruzado Z80 portátil / ensamblador cruzado portátil Z80" (en español e inglés). Archivado desde el original el 20 de febrero de 2020 . Consultado el 20 de febrero de 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 de Spectrum y Amstrad CPC ), AmsDos (disco de Amstrad CPC) y MSX (para usar con BLOAD from disk 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 CP / M 86 CMD . […]
[39] [40] - Ciarcia, Steve (mayo de 1984). "Tarjeta Trump - Parte 1: Hardware - Acelere su PC IBM con potencia de coprocesamiento de 16 bits" (PDF) . BYTE : la revista de pequeños sistemas . Bodega Circuito de Ciarcia. Vol. 9 no. 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 (se está trabajando en un compilador Pascal y un traductor 8088 a Z8000. […]
y Ciarcia, Steve (junio de 1984). "Tarjeta Trump - Parte 2: Software - Compiladores de TBASIC y C y un ensamblaje" (PDF) . BYTE : la revista de pequeños sistemas . Bodega Circuito de Ciarcia. Vol. 9 no. 6. McGraw-Hill, Inc. págs. 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 8088 a Z8000 […]
, también disponible como Ciarcia, Steve (1990). "Tarjeta Trump - Parte 1: Hardware - Acelere su PC IBM con potencia de coprocesamiento de 16 bits y Parte 2: Software - Compiladores TBASIC y C y un ensamblaje" . En Gonneau, Daniel; Bernardi, Fred; Ausburn, Richard (eds.). Bodega Circuito de Ciarcia . 7 . Compañía editorial de McGraw-Hill . págs. 138-152, 153-160. ISBN 0-07-010969-9. Archivado desde el original el 1 de febrero de 2020 . Consultado el 29 de enero de 2020 . [41] - Equipo de Aplicación de la División de Microcontroladores (2000). "Traducción del código de ensamblaje 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 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").
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 .
- "PortAsm Assembler to Assembler Translation" . MicroAPL Ltd. 2017 [1996]. Archivado desde el original el 30 de julio de 2019 . Consultado el 18 de enero de 2020 .
- "Nuestra metodología - El proceso de conversión de fuente a fuente" . Servicios de microprocesador, Inc. (MPS). Archivado desde el original el 12 de mayo de 2019 . Consultado el 1 de febrero de 2020 .