소스 투 소스 컴파일러
Source-to-source compiler프로그램 실행 |
---|
일반적인 개념 |
코드의 종류 |
컴파일 전략 |
주목할 만한 런타임 |
주목할 만한 컴파일러 및 툴 체인 |
data 변환 |
---|
개념 |
변환 언어 |
기술과 변환 |
적용들 |
관련된 |
소스 투 소스 변환기, 소스 투 소스 컴파일러(S2S 컴파일러), 트랜스 컴파일러 또는 트랜스필러는[1][2][3] 프로그래밍 언어로 작성된 프로그램의 소스 코드를 입력으로 사용하여 동일하거나 다른 프로그래밍 언어로 동등한 소스 코드를 생성하는 변환기입니다.소스 투 소스 번역기는 거의 동일한 수준의 추상화에서 작동하는 프로그래밍 언어 간에 변환하는 반면, 기존 컴파일러는 상위 수준의 프로그래밍 언어에서 하위 수준의 프로그래밍 언어로 변환합니다.예를 들어, 소스 투 소스 번역자는 Python에서 JavaScript로 프로그램을 번역하는 반면, 기존의 컴파일러는 C에서 어셈블러 또는 Java에서 바이트 코드로 [4]번역합니다.자동 병렬화 컴파일러는 높은 수준의 언어 프로그램을 입력으로 자주 받아들이고 코드를 변환하여 병렬 코드 주석(예: OpenMP) 또는 언어 구성(예: Fortran)으로 주석을 붙입니다.forall
스테이트먼트)[2][5]를 참조해 주세요.
소스 대 소스 컴파일의 또 다른 목적은 레거시 코드를 변환하여 기본 프로그래밍 언어의 다음 버전 또는 하위 호환성을 깨는 API를 사용하는 것입니다.리팩터링하는 프로그램이 원래 구현자의 통제 밖에 있거나(예를 들어 Python 2에서 Python 3으로 프로그램을 변환하거나 오래된 API에서 새로운 API로 프로그램을 변환하는 경우), 프로그램 크기가 한에 의해 리팩터링을 수행하는 데 실용적이지 않거나 시간이 오래 걸릴 때 유용합니다.d.
변환 컴파일러는 원본 소스 코드의 개발 및 디버깅을 용이하게 하기 위해 가능한 한 소스 코드에 가까운 변환 코드 구조를 유지하거나 변환된 코드가 소스 [6]코드처럼 보이지 않도록 원본 코드 구조를 변경할 수 있습니다.그 transcompiled 소스 코드에 다시 원래 코드에 매핑 하또한 디버깅 하는 전력 회사;예를 들어, 자바 스크립트 소스 지도 standard[표창 필요한]자바 스크립트 코드는 웹 브라우저는 자바 스크립트 코드, 예를 들어 생산되 transcompiled-to-JavaSc에 의해 minified 원본 소스에 의해 집행되어 지도할 수 있다.ript 언어이다.[표창 필요한]
예를 들어 Closure Compiler, CoffeeScript, Dart, Haxe, Opal, TypeScript,[7] Emscripten 등이 있습니다.
어셈블리 언어 번역자
어셈블리 언어 변환기란 어셈블리 언어에서 다른 어셈블리 언어로 코드를 변환하는 소스-투-소스 변환기의 클래스입니다.이러한 클래스에는 프로세서 패밀리와 시스템 플랫폼이 포함됩니다.
인텔 CONV86
인텔은 16비트 프로세서 8086을 8비트 [8]프로세서인 8080과 소스 호환되도록 출시했습니다.이를 지원하기 위해 인텔은 1978년 이후 OEM 고객이 사용할 수 있는 IS-II 기반의 8080~8086 소스 코드 CONV86[9][10][11](CONV-86[12] 및 CONVERT[13][14] 86이라고도 함)을 제공하고 있습니다.이러한 [nb 1]프로그램은 아마도 가장 오래된 프로그램일 것입니다.8인치 플로피 드라이브를 탑재한 Intel Microprocessor Development System MDS-800에서는 여러 레벨의 번역을 지원하며 2MHz로 동작했습니다.사용자 보고서에 따르면, 그것은 [15][16]매우 안정적으로 작동하지 않았다.
SCP TRANS86
시애틀 컴퓨터 제품(SCP)은 TRANS86을 제공했습니다.COM은 [14][17][18]팀 패터슨이 1980년 [19][20][21]86-DOS를 개발하면서 작성한 것입니다.이 유틸리티는 인텔 8080 및 Zilog Z80 어셈블리의 소스 코드(Zilog/Mostek 니모닉)를 로 변환할 수 있습니다.인텔 8086용 ASM 소스 코드 (SCP/M-80용 크로스 어셈블러 ASM86과 호환성이 있는 형식)는 일부 opcode, 레지스터, 모드만을 지원하며,[22][19] 이후에도 상당한 수동 수정 및 재작업이 필요한 경우가 많습니다.또,[13][17][9][10] 단순한 변환만을 실행했기 때문에, brute-force single-pass translator 는, 레지스터 [23][24]및 점프 최적화를 실시하지 않았습니다.RAM은 약 [14]24KB가 소요되었습니다.TRANS86의 SCP 버전1COM은 Z80 기반 [14][17]시스템에서 실행되었습니다.86-DOS가 실행되자 패터슨은 TRANS86을 사용하여 86-DOS에서 [21][17]실행되는 프로그램으로 변환했습니다.버전 2의 번호는 TRANS 입니다.대신 COM을 사용합니다.[17][24][23][25][26]1982년 후반에는 마이크로소프트에서도 [14][27]번역기를 사용할 수 있었던 것으로 보인다.
소림 TRANS86
TRANS86이라고도 불리는 Sorcim은 1980년 [28][13]12월부터 8080에서 8086의 번역기를 제공하기도 했다.SCP의 프로그램과 마찬가지로 CP/M-80 애플리케이션 코드(ASM, MAC, RMAC 또는 ACT80 어셈블리 형식)를 MS-DOS(ACT86과 [28][14][29][30]호환되는 형식)에 포트하도록 설계되었습니다.ACT80 형식에서는 몇 가지 Z80 니모닉도 지원했습니다.변환은 지시별로 이루어졌으며 조건부 점프에 일부 최적화가 적용되었다.이 프로그램은 최소 24KB의 RAM과 함께 CP/M-80, MP/M-80 및 Cromemco DOS에서 실행되었으며 [14][31]소스 파일 크기에는 제한이 없었습니다.
디지털 리서치 XLT86
소스 번역 프로세스에 최적화된 컴파일러 기술을 도입한 것은 1981년 9월 디지털 리서치의 XLT86 1.0이 훨씬 더 정교하고 최초의 사례입니다.XLT86 1.1은 1982년 [32]4월에 출시되었습니다.이 프로그램은 Gary Kildall에[13][33][34][35] 의해 쓰여졌고 번역되었다.인텔 8080 프로세서의 ASM 소스 코드(ASM, MAC 또는 RMAC 어셈블러와 호환되는 형식)를 에 나타냅니다.8086의 A86 소스 코드(ASM86과 호환).그래서 CP/M-80과 MP/M-80 프로그램들이 CP/M-86과 MP/M-86 플랫폼으로 automat ported 수 있8080레지스터에 관한 국제 데이터 흐름 분석을 사용하면five-phase 다중 패스 통역사 또한, 협약(CP/M-80 BDOS 전화 BDOS에 매핑 되었다 CP/M-86을 요구한다)호출을 돌보코드 크기의 출력을 최적화할 것, usage,[36][13][37][38].ically.XLT86.COM 자체는 CP/M-80 [39][14][32][40]플랫폼용 PL/I-80으로 작성되었습니다.프로그램 자체용 RAM 30KB와 프로그램 그래프용 추가 메모리를 사용했습니다.64KB 메모리시스템에서는 지원되는 최대 소스 파일사이즈는 약 6KB였습니다.[39][14][41][32]따라서 변환 [14][32]전에 큰 파일을 적절히 분해할 필요가 있었습니다.또는 XLT86은 DEC VAX/[14][32]VMS에도 사용할 수 있습니다.XLT86의 입출력은 소스 코드 레벨로 동작했지만, 프로그램의 메모리 내 표현과 적용된 코드 최적화 테크놀로지에 의해서, [42][43][44]바이너리 재컴파일의 기반이 됩니다.
다른이들
2500 AD Software는 Z80을 탑재한 CP/M-80 머신 및 Zilog ZEUS [45]및 Oliveetti PCOS 시스템용 XASM 스위트의 일부로 8080 ~8086 소스 코드 변환기를 제공했습니다.
1979년부터 Zilog는 PDS 8000 개발 시스템의 [46][47][48][49][50][16]일환으로 Z80에서 Z8000으로 번역기를 제공했습니다.어드밴스드 마이크로 컴퓨터(AMC)[50][16]와 2500 AD 소프트웨어도 [45]Z80~Z8000 번역기를 제공했습니다.후자의 이름은[51][52] TRANS이며 Z80 CP/M, CP/M-86, MS-DOS 및 PCOS에서 [45]사용할 수 있습니다.
Z88DK 개발 키트는 2008년 Stefano [53]Bodrato가 작성한 "to86.awk"라는 이름의 nasm을 대상으로 한 Z80-i486 소스 코드 번역기를 제공합니다.2003년 더글라스 비티 주니어가 작성한 8080-Z80 변환기 "toz80.awk"[53]를 기반으로 하고 있다.
2021년 Brian Callahan은 8088ify라는 이름의 nasm을 대상으로 MS-DOS 소스 코드 변환기에 8080 CP/[54]M 2.2를 작성했습니다.
프로그래밍 언어 구현
![]() |
일부 프로그래밍 언어의 첫 번째 구현은 트랜스 컴파일러로 시작되었으며 일부 언어의 기본 구현은 여전히 트랜스 컴파일러입니다.아래 표와 더불어 CoffeeScript 유지관리자는 [55]JavaScript로 컴파일되는 언어 목록을 제공합니다.
이름. | 소스 언어 | 대상 언어 |
---|---|---|
프런트 | C++ | C |
HipHop for PHP(HPHPc) | PHP | C++ |
바벨 | ES6+(JS) | ES5 |
ClojureScript | 클로쥬르 | 자바스크립트 |
JSweet[56] | 자바 | 타입 스크립트 |
신속화[57] | 목표-C | 재빠르다 |
J2ObjC[58] | 자바 | 목표-C |
Haxe | Haxe | ActionScript 3, JavaScript, Java, C++, C#, PHP, Python, Lua |
마이아[59] | 마이아 | 베릴로그 |
세르베루스 X | 세르베루스 | 자바스크립트, 자바, C++, C# |
h5[60] | C# | 자바스크립트 |
님 | 님 | C, C++, JavaScript |
다트 | 다트 | 자바스크립트 |
재스크립트 | OCaml | 자바스크립트 |
코드 베이스의 이식
개발자가 기존 코드베이스의 대부분을 유지하면서 다른 언어로 전환하고 싶을 때는 소프트웨어 전체를 손으로 다시 쓰는 것보다 트랜스 컴파일러를 사용하는 것이 더 나을 수 있습니다.트랜스 컴파일러의 품질에 따라서는, 코드가 정상적으로 동작하기 위해서 수동 조작이 필요하거나 필요 없는 경우가 있습니다.이는 출력 소스 코드가 항상 수정 없이 작동하도록 사양을 요구하는 "변환된 언어"와는 다릅니다.코드 베이스의 포토에 사용되는 모든 트랜스 컴파일러는, 가독성이나 플랫폼 규약의 관점에서 최대의 코드 품질을 달성할 필요가 있는 경우, 출력 소스 코드의 수동 조정을 필요로 합니다.
도구. | 소스 언어 | 대상 언어 | 평. |
---|---|---|---|
2 to 3 스크립트 | 파이썬 2 | 파이썬 3 | 2to3는 번역 프로세스를 자동화하는 데 최선을 다하지만 수동 수정이 필요한 경우가 많습니다. |
엠스크립트 | LLVM 바이트 코드 | 자바스크립트 | 이를 통해 예를 들어 C/C++ 코드베이스를 브라우저에서 실행할 수 있습니다. |
c2go[61] | C | 가세요 | 1.5 릴리스 이전에 Go 컴파일러는 C로 작성되었습니다.컴파일러 코드베이스를 C에서 [62][63]Go로 자동 변환하는 자동 번역기가 개발되었습니다.Go 1.5 이후 컴파일러와 런타임은 이제 C 없이 Go와 어셈블러에서 구현되었습니다. |
C2Rust[64] | C | 녹 | C2Rust는 C 코드를 입력 및 출력으로 받아들인다.unsafe 원래 코드 기반과의 호환성을 유지하는 데 중점을 둔 러스트 코드.이 프로세스에는 몇 가지 문서화된 제한이 있습니다.생성된 코드를 안전하고 관용적인 Rust 코드로 변환하는 것은 번역 후 수동 작업입니다.단,[64] 이 작업을 용이하게 하기 위한 자동화된 툴이 존재합니다. |
구글 웹 툴킷 | 특정 API를 사용하는 Java 프로그램 | 자바스크립트 | Java 코드는 일반 Java 코드에 비해 약간 제약이 있습니다. |
옥시겐의 Js_of_ocaml[65] | OCaml | 자바스크립트 | |
J2Eif[66] | 자바 | 에펠 | 결과 에펠 코드는 Java 프로그램과 유사하지만 에펠 구문과 규칙을 따르는 classeRust와 구조를 가집니다. |
C2Eif[67] | C | 에펠 | 결과적인 에펠 코드는 가능한 한 깨끗해지려고 노력하는 계층과 구조를 가지고 있다.툴은 완전하며 C와 어셈블리코드를 올바르게 번역할 수 없는 경우 삽입에 의존합니다. |
신속화[68] | 목표-C | 재빠르다 | Swiftify는 Objective-C에서 Swift로의 온라인 소스 간 변환 도구입니다.iOS 코드베이스의 전부 또는 일부를 Swift로 이행하는 개발자를 지원합니다.이 변환은 주로 Objective-C와 Swift의 구문을 변환하기 위한 것으로, Apple이 Swift와 Objective-C의 런타임 호환성을 확보하기 위해 노력했기 때문에 도움이 됩니다. |
런타임[69] 컨버터 | PHP | 자바 | Runtime Converter는 PHP 소스 코드를 Java 소스 코드로 변환하는 자동 도구입니다.PHP 언어의 특정 기능뿐만 아니라 PHP 표준 라이브러리 및 확장 함수 호출을 위한 JNI를 사용하여 PHP 바이너리 자체를 호출할 수 있는 Java 런타임 라이브러리가 있습니다. |
트랜스 컴파일러 파이프라인
트랜스 컴파일러 파이프라인은 재귀적인 트랜스 컴파일로 인해 발생합니다.각 레이어 사이에 트랜스 컴파일 스텝을 가지는 복수의 기술 레이어를 조합하는 것으로, 테크놀로지의 반복적인 변환이 가능해져, 효과적으로 분산 언어에 의존하지 않는 사양이 작성됩니다.
XSLT는 이러한 파생 코드 파이프라인을 생성하기 위해 다양한 기술 간에 사용할 수 있는 범용 변환 도구입니다.
재귀 변환 컴파일
재귀 변환 컴파일(또는 재귀 변환)은 변환 컴파일의 개념을 재귀적으로 적용하여 변환 파이프라인(종종 하나의 진실 소스로부터 시작)을 생성하여 한 기술을 다른 기술로 반복적으로 변환하는 프로세스입니다.
이 과정을 반복하면 A → B → C → D → E → F로 변환한 후 다시 A(v2)로 되돌릴 수 있다.일부 정보는 A → A(v2)의 이 파이프라인을 통해 보존되며, 이 정보는 (추상적인 수준에서) 각 구성요소가 동의하는 것을 보여준다.
트랜스 컴파일러 파이프라인이 생성하는 각 다른 버전에서는 해당 정보가 유지됩니다.모양과 크기가 다양할 수 있지만 위의 파이프라인에서 6번 변환된 후 A(v2)로 돌아오면 정보가 원래 상태로 돌아갑니다.
A–F–A(v2)의 각 형식을 통해 변환에서 살아남는 이 정보는 (정의상) 파생 콘텐츠 또는 파생 코드이다.
재귀적 변환 컴파일러는 원본 소스 코드의 개발과 디버깅을 용이하게 하기 위해 가능한 한 소스 코드에 가깝게 변환된 코드를 유지할 수도 있고, 그렇지 않으면 변환된 코드가 소스 코드처럼 보이지 않을 정도로 원본 코드의 구조를 변경할 수도 있습니다.변환된 소스 코드를 원래 코드에 매핑하는 디버깅 유틸리티도 있습니다.예를 들어 자바스크립트 소스 맵을 사용하면 웹 브라우저에서 실행되는 자바스크립트 코드를 변환된 자바스크립트 언어로 원래 소스에 매핑할 수 있습니다.
「 」를 참조해 주세요.
- 바이너리 재컴파일러
- C에서 HDL로
- 코드 생성(컴파일러)– 컴퓨터 코드를 기계 판독 가능한 형식으로 변환
- DMS Software Reengineering Toolkit – 명시적 패턴 지향 개서 규칙을 사용하는 소스 간 컴파일러 프레임워크
- f2c – Fortran 77에서 C로의 소스 투 소스 컴파일러
- Honeywell Liberator(Honeywell H200에서 IBM 1401 프로그램 실행)
- 중간 표현 – 컴파일러 또는 가상 머신이 소스 코드를 나타내기 위해 내부적으로 사용하는 데이터 구조 또는 코드
- 언어 바인딩 – 다른 프로그래밍 언어로 코딩된 다른 라이브러리를 사용할 수 있는 소프트웨어 라이브러리
- 언어에 의존하지 않는 사양– 프로그래밍 언어 간에 상호 운용 가능한 컴퓨터 프로그래밍 표준
- 언어 상호 운용성
- 오브젝트 코드 옵티마이저(바이너리 최적화라고도 함)
- 프리프로세서– 다른 프로그램의 입력을 처리하는 프로그램
- 프로그램 변환
- ROSE (컴파일러 프레임워크)– 소스 투 소스 컴파일러 프레임워크
- 번역자(컴퓨팅)– 프로그래밍 언어 간에 코드를 번역하는 컴퓨터 프로그램
- XSLT – XML 문서를 변환하기 위한 언어
메모들
레퍼런스
- ^ ARC-Softwaresystems (June 1988). "Aus BASIC mach C: B→C Transpiler" [Turn BASIC into C: B→C Transpiler]. Amiga-Magazin - das Computermagazin für Amiga-Fans (Advertisement) (in German). Vol. 1988, no. 6. Esslingen, Germany: Markt & Technik Verlag Aktiengesellschaft. p. 101. ISSN 0933-8713. Archived from the original on 2020-02-01. Retrieved 2020-01-18.
[…] 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-Basicprogramme in compilierbaren C-Code. […] Durch Spezialbefehle kann C-Code in 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] - ^ a b Pountain, 딕(1989년 12월)."병렬 프로그램, 제1부:구성 그의 철학자. Transpiler, 현재 개발 중에서 병렬 처리를 위해 글을 쓰고 소프트웨어 더 쉽게 만들 것이다".BYTE.Vol14, 안돼.13.맥그로힐사를 대신하여 서명함. 349–352.ISSN 0360-5280. 궤:/13960/t34188734.. 페이지의 주 350:Transpiler, 단지 같은 방식으로, 트랜스 퓨터 트랜지스터와 컴퓨터(즉, 받는 구성 요소를 컴퓨터)에서 말이 만들어졌다에서 트랜스 퓨터와 컴파일러의 조합을 제안하기 위한 것이다 그 이름[…]2022-01-06 Retrieved.[…](NB다.한 source-to-source 컴파일러 인풋과 함께link-to-channel 과제들 그것에 병렬 처리도 가능한 한 효율적 transpu의 네트워크에서 실행시키기 것이 구성 추가 등 출력으로 새로운의 철학자. 소스 코드 파생되는 정상의 철학자. 프로그램이 걸리는 pre-processor로서 일을 할 것을 동의어로 용어의 철학자. transpiler를 사용합니다.ters)
- ^ 7광구 소프트웨어 리미티드(1993-12-07)[1992-09-22]."Transpiler".공식 관보 미국 특허청의.등급 9.Vol1157년(1판).베드포드, 베드퍼드셔, 영국:미국 특허청입니다. p. TM81. 초신성 SN74-316.610.그 2020-02-01에 원래에서 Archived.2020-01-18 Retrieved.[…]우선 순위 섹에 따라 1992-03-31 렉을 제기했다 44(D)영국 응용 아니 1495953에 주장했다.아니 A1495953, 1992-03-31 데이트를 했고, 1999-03-31 만료된다.컴퓨터 소프트웨어와 프로그램을 위해(미국 당분이나 지방 말고도. 38).상업 1991-08-01 첫번째로 사용 1991-08-01,.(NB다.이 회사. 그들의 주장에도 불구하고 용어 transpiler의, 그들이 처음이 아니다 대중들의 사용, i.e.를 참조하십시오 VX/BASIC, DECVMS을 위한 BASIC-to-C transpiler과 같은 제품을 개발하고 있는1988년 코모도어 아미가용 ARC의 BASIC-to-C 트랜스필러와 1989년 동시 기술 시스템(CTS)에 의한 Occam 트랜스필러입니다.)
- ^ a b "Transpiler". devopedia.org. 2017-03-17. Archived from the original on 2019-11-05. Retrieved 2019-06-22.
- ^ "Types of compilers". compilers.net. 1997–2005. Archived from the original on 2019-07-19. Retrieved 2010-10-28.
- ^ Fowler, Martin (2013-02-12). "Transparent Compilation". Archived from the original on 2020-01-01. Retrieved 2013-02-13.
- ^ Epic Games; Mozilla. "HTML5 Epic Citadel".
- ^ Scanlon, Leo J. (1988). 8086/8088/80286 assembly language. Brady Books. p. 12. ISBN 978-0-13-246919-7.
[…] The 8086 is software-compatible with the 8080 at the assembly-language level. […]
- ^ a b MCS-86 Assembly Language Converter Operating Instructions For ISIS-II Users. A30/379/10K TL. Santa Clara, California, USA: Intel Corporation. March 1979 [1978]. Order No. 9800642A. Retrieved 2020-01-18. [2] (NB).이 매뉴얼의 최신 버전은 여기에서 찾을 수 있습니다.)
- ^ a b MCS-86 Assembly Language Converter Operating Instructions For ISIS-II Users. A175/280/7.5 FL. Santa Clara, California, USA: Intel Corporation. February 1980 [1978]. Order No. 9800642-02. Retrieved 2020-01-18. [3] [4] (NB)이 매뉴얼의 이전 버전은 여기에서 찾을 수 있습니다.)
- ^ Nelson, Ross P. (January 1989) [1988]. The 80386 Book: Assembly Language Programmer's Guide for the 80386. Microsoft Programming Series (1 ed.). Microsoft Press. p. 2. ISBN 978-1-55615-138-5.
[…] An Intel translator program could convert 8080 assembler programs into 8086 assembler programs […]
- ^ The 8086 Family User's Manual. Intel Corporation. October 1979 [1978]. pp. 2-74, 2-92, B-176. Order No. 9800722-03. Retrieved 2020-01-18.
[…] other programs round out the software development tools available for the 8086 and 8088. […] CONV-86 can do most of the conversion work required to translate 8080/8085 assembly language source modules into ASM-86 source modules. […] To facilitate conversion of 8080A/8085A assembly language programs to run on the iSBC 86/12A board CONV-86 is available under the ISIS-II operating system.
[5] [6] - ^ a b c d e Freiberger, Paul (1981-10-19). "Program translators do it literally – and sometimes in context". InfoWorld – News For Microcomputer Users. Special section: Computer compatibility. Vol. 3, no. 22. Popular Computing, Inc. p. 19. ISSN 0199-6649. Archived from the original on 2020-02-01. Retrieved 2020-01-15.
[…] "Unless you have a translating scheme that takes account of the peculiar idiosyncrasies of the target microprocessor, there is no way that an automatic translator can work," explains Daniel Davis, a programmer with Digital Research. "You'll end up with direct transliterations." […] In spite of all these limitations, progress has been made recently in the development of translators. Most notably, Digital Research has introduced its eight- to 16-bit assembly code translator. Based on research performed by Digital Research president Gary Kildall, the XLT86 appears to offer advances over previously available software translator technology. Like Sorcim's Trans and Intel's Convert 86, Kildall's package translates assembly-language code from an 8080 microprocessor to an 8086. However, Kildall has applied a global flow analysis technique that takes into account some of the major drawbacks of other translators. The procedure analyzes the register and flag usage in sections of 8080 code in order to eliminate nonessential code. According to Digital Research programmer Davis, the algorithm Kildall uses allows the translator to consider the context as it translates the program. Until now, one of the major problems with any translator program has been the inability of the software to do much more than transliteration. If Digital Research's new translator actually advances the technology to the point where context can be considered, then more software translators may proliferate in the microcomputer marketplace.
- ^ a b c d e f g h i j k 테일러, 로저, Lemmons, 필(6월 1982년)."위로 이동 제1부:통역사는 CP/M과 MS-DOS에 CP/M-86 프로그램들을 이동할 번역 프로그램을 사용하여 – –"[CP/M-86과 MS-DOS에 CP/M 프로그램들을 이동할 번역 프로그램을 사용하여](PDF). BYTE.Vol7, 머드 6.BYTE Publications 주식 회사를 대신하여 서명함. 321–322, 324,326,328,330,332의 334,336,338,340,342년, 344.ISSN 0360-5280.CODEN BYTEDJ.Archived 원본에서 2020-01-16에(PDF).2020-01-15 Retrieved.[…]디지털 리서치의 XLT86는 형식 AnySourceMulticast, 항공 수송 사령부, 또는 RMAC 조립과 호환되는과 ASM86은 CP/M-80 또는 CP/M-86에 따라 운영과 호환되는 8086소스 코드에 8080소스 코드로 변환합니다 표준 8080소스 코드가 걸린다.이후 XLT86 PL/I-80으로 작성되는 번역기 CP/M-80거나 독립 실행형 또는 교차 개발로 VAX/VMS 받고 있다. 그것은five-phase, 다중 과정에서 최적의 레지스터 사용을 결정하기 위해 지구적인 data-flow 분석을 하면서 최적화된 8086코드를 달릴 수 있다.비록 매크로 정의 지원되지 않습니다, conditional-assembly 지침[…]면 매크로 확장는 경우 입력을 위해 확장된 소스 파일 XLT86.XLT86 Z80 지침이 인정되지 않는 허용되는을 생산하기 위해[…]편집할 수 있는 필요한 때에 파일을 생산. XLT86에를 통해 반복 루프를 통과하면 MAC이나 RMAC을 통해 패스를 사용할 수 있다. 8086소스 코드이다.XLT86의 전체적으로 블록 구조와register/flag 사용한 원시 프로그램 분석한다.이 정보에서 일하며, 최적화된 방법으로 8086어셈블러 코드에 코드 변환합니다.[…]등록 지도 일반적으로[…]은 8086AX와 8080프로세서 상태어 사이의 느슨한 관계를 다음과 같이 각 지침 형식에 대한 결정 알고리즘[…]으로;그 정확한 관계 등록 사용에서 번역 시간에 결정된다는 매뉴얼 제공되어 있다.많은 런타임 옵션은 명령 선과 8080소스 텍스트에 포함된으로 영어 번역 과정을 조절하는 데 이용할 수 있다.는 8086소스 코드에 8080소스 코드의 번역 최적화에 대한 합리적인 일을 하[…]XLT86은 정교한 프로그램이다.CP/M-80에서 BDOS를 CP/M-86. XLT86과 8080소스 코드에 조건부 합동 인력 계획과 마련 지침의 번역에 대처하는 특별한 특징이 있게 호환됩니다 BDOS 전화로 도식화하였다.는 8080명령에서 합동 인력 계획과 마련 지시64K-byte 영역 안에 어느 주소에 도달할 수 있다.그 8086조건부 합동 인력 계획 지침은 IP[…]레지스터의 양쪽에 XLT86은 조건부 합동 인력 계획의 대상을 검토하다. 만약 그 목표에 도달할 수 없XLT86 긴 합동 인력 계획에 대한 표적 주소로 조건부 합동 인력 계획과 백 교수의 감각을 바꾸만 128바이트에 도달할 수 있다.없기 때문에 조건을 마련하거나 RET 지침은 8086에 있는 경우 조건의 감각과 짧은 조건부 합동 인력 계획은 무조건적인 통화 또는 RET를 건너뛰기 위해 수행된다 바뀐다.[…]는 부분 등록 코드와 데이터 지역의 분리할 수 있습니다.[…]XLT86들 그리고 특별한 명령에 대한 적절한 세그먼트를 결정한 표현을 소개하고 있다.[…][7][8][9][10][11][12][13][14][15][16][17][18][19][20](13페이지).
- ^ Guzis, Charles "Chuck" P. (2013-02-24). "Re: What if IBM didn't choose the Intel CPU!". Vintage Computer Forum. Genre: Others. Archived from the original on 2020-01-16. Retrieved 2020-01-15.
[…] The original 8086 assembler ran on an 8080-equipped MDS-80 dev system. One of the first products was a 8080 to 8086 source level translator. I recall that the speed of translation was phenomenally slow. […] our sales guy offered to run a conversion and verification test at the local sales office […] We […] started the job on the ISIS-II MDS 200 series there--they even had a hard disk, which was an outrageously expensive option for an MDS […] still crunching when we left for the night. It still wasn't done the next morning […] About 2 weeks later, after the Intel software guys had a look at the translator, Ed returned with the translated program. It was about 50% larger in size than the original 8085 version, which sort of went counter to Intel's claims for the translator. […]
- ^ a b c Guzis, Charles "Chuck" P. (2016-12-31) [2016-12-30]. "Re: DOS code in CP/M? Revisited…". Vintage Computer Forum. Genre: CP/M and MP/M. Archived from the original on 2020-01-16. Retrieved 2020-01-15.
[…] Intel had an ISIS-hosted translator from 8080-to-8086 code. I can remember spending a very frustrating day at the local Intel sales office with a sample bit of 8080 code--a basic BCD floating-point package for the 8080 and waiting for hours for the translator to finish its work--and going home disappointed. About a week later, I received a call that they'd finally figured out the bugs and I could pick up my translated program. Said program was more than half-again as large as the original in terms of object bytes. I was a bit skeptical of the Intel claim back then that the 8086 code was far more compact than its 8080 counterpart. And the blasted thing didn't work anyway when it was put to the test. […] There were other 80-to-86 translators for CP/M. I recall that Sorcim had one. AMC had a Z80-to-Z8000 translator as well. […] The [Intel] translator had several levels of translation […] there was the "literal", preserving detailed operation […] it was ISIS-II, running on an MDS-800, at, what, 2 MHz with 8" floppies. […]
- ^ a b c d e "Microsoft Macro Assembler (MASM) Unofficial Changelist". bytepointer.com. 2018-08-21 [2016-09-08]. Archived from the original on 2019-07-17. Retrieved 2020-01-18.
[…] Tim Paterson […] had the following to say about his 8086 Assembler he wrote while at SCP: "The 8086 assembler I wrote originally was in Z80 assembly language and ran under CP/M. I believe it was distributed with the SCP 8086 CPU card as ASM86. I also wrote a translator that converted Z80 source code to inefficient but workable 8086 source code (Intel promoted this idea with a published translation table). This was called TRANS86 and was also written in Z80 assembly for CP/M. Once DOS was working, I applied the translator to ASM86 (and to itself) to create 8086 versions that ran under DOS. I do not have the change history in front of me […], but I believe that versions >= 2 marked the translated (DOS) version. If any history shows version numbers < 2, that was the CP/M version." […]
- ^ Paterson, Tim (June 1983). "An Inside Look at MS-DOS – The design decisions behind the popular operating system – The history of and design decisions behind MS-DOS. how it works, and where it's going". BYTE. 16-bit Designs. Vol. 8, no. 6. McGraw-Hill, Inc. pp. 230–252. ISSN 0360-5280. CODEN BYTEDJ. Archived from the original on 2017-03-17. Retrieved 2020-01-23.
[…] MS-DOS Design Criteria […] The primary design requirement of MS-DOS was CP/M-80 translation compatibility, meaning that, if an 8080 or Z80 program for CP/M were translated for the 8086 according to Intel's published rules, that program would execute properly under MS-DOS. Making CP/M-80 translation compatibility a requirement served to promote rapid development of 8086 software, which, naturally, Seattle Computer was interested in. There was partial success: those software developers who chose to translate their CP/M-80 programs found that they did indeed run under MS-DOS, often on the first try. Unfortunately, many of the software developers Seattle Computer talked to in the earlier days preferred to simply ignore MS-DOS. Until the IBM Personal Computer was announced, these developers felt that CP/M-86 would be the operating system of 8086/8088 computers. […]
[21] [22] - ^ a b Seattle Computer Products (August 1980). "86-DOS – 8086 OPERATING SYSTEM - $95". BYTE (Advertisement). Vol. 5, no. 8. BYTE Publications Inc. p. 173. ISSN 0360-5280. CODEN BYTEDJ. Archived from the original on 2017-04-05. Retrieved 2013-08-18.
[…] 1. Read Z80 source code file written in CP/M format and convert to 86-DOS format. 2. Translator program translates Z80 source code to 8086 source code. 3. Resident assembler assembles the translated 8086 source code to 8086 object code. 4. Minor hand correction and optimization. (A recent 19K Z80 program translation took us about four hours to fix up. Even without optimization, it ran twice as fast as the original! […])
[23] - ^ Paterson, Tim (1994-10-03). "The Origins of DOS: DOS Creator Gives His View of Relationship Between CP/M, MS-DOS" (PDF). Microprocessor Report. MicroDesign Resources (MDR). 8 (13). ISSN 0899-9341. Archived from the original (PDF) on 2012-05-31.
[…] To get major software developers to port their products from the 8080/Z80 to the 8086, I decided we had to make it as easy as possible. I had already written a Z80-to-8086 source code translator (hosted on the 8080 and CP/M). My plan was that running an 8080 CP/M program through the translator would be the only work required by software developers to port the program to the 8086. In other words, the interface used by applications to request operating system services would be exactly the same as CP/M's after applying the translation rules. […]
- ^ a b Paterson, Tim (2007-09-30). "Design of DOS". DosMan Drivel. Archived from the original on 2013-01-20. Retrieved 2011-07-04.
[…] CP/M Translation Compatibility […] For DOS to succeed, it would need useful applications (like word processing) to be written for it. I was concerned that SCP might have trouble persuading authors of application software to put in the effort to create a DOS version of their programs. Few people had bought SCP's 16-bit computer, so the installed base was small. Without the applications, there wouldn't be many users, and without the users, there wouldn't be many applications. […] My hope was that by making it as easy as possible to port existing 8-bit applications to our 16-bit computer, we would get more rogrammers to take the plunge. And it seemed to me that CP/M translation compatibility was what would make the job as easy as possible. Intel had defined rules for translating 8-bit programs into 16-bit programs; CP/M translation compatibility means that when a program's request to CP/M went through the translation, it would become an equivalent request to DOS. […] So I made CP/M translation compatibility a fundamental design goal. This required me to create a very specific Application Program Interface that implemented the translation compatibility. I did not consider this the primary API – there was, in fact, another API more suited to the 16-bit world and that had more capabilities. Both APIs used CP/M-defined constructs (such as the "File Control Block"); the compatibility API had to, and I didn't see a reason to define something different for the primary API. […] I myself took advantage of translation compatibility. The development tools I had written, such as the assembler, were originally 8-bit programs that ran under CP/M (CDOS). I put them through the translator and came up with 16-bit programs that ran under DOS. These translated tools were included with DOS when shipped by SCP. But I don't think anyone else ever took advantage of this process. […]
- ^ "Z80 To 8086 Translator". Z80/8086 Cross Assembler Release 1 (PDF). Revision A (Preliminary ed.). Seattle, Washington, USA: Seattle Computer Products. pp. 20–21. Retrieved 2020-01-18.
[…] The Seattle Computer Products Z80 to 8086 Translator runs on the Z80 under CP/M. It accepts as input a Z80 source file written using Zilog/Mostek mnemonics and converts it to an 8086 source file in a format acceptable to our 8086 Cross Assembler. To translate a file, simply type TRANS86 <filename>.<ext>. Regardless of the original extension, the output file will be named <filename>.A86 and will appear on the same drive as the input file. A file named TRNTEST.Z80 is included to demonstrate the translator. The entire Z80 assembly language is not translated. […]
[24] - ^ a b 86-DOS – Disk Operating System for the 8086. User's manual (PDF). Version 0.3 (Preliminary ed.). Seattle, Washington, USA: Seattle Computer Products. 1980. Archived (PDF) from the original on 2019-07-14. Retrieved 2020-02-01.
- ^ a b Paterson, Tim (2013-12-19) [1982-07-01]. "Microsoft DOS V1.1 and V2.0: Z80 to 8086 Translator version 2.21 /msdos/v11source/TRANS.ASM". Computer History Museum, Microsoft. Archived from the original on 2019-11-12. Retrieved 2014-03-25. [25] (NB).퍼블리셔는 MS-DOS 1.1과 2.0이라고 주장하지만 실제로는 SCP MS-DOS 1.25와 TeleVideo PC DOS 2.11입니다.)
- ^ SCP 86-DOS – Single-User Disk Operating System for the 8086 (Preliminary ed.). Seattle, Washington, USA: Seattle Computer Products. 1980. Retrieved 2020-01-18.
[…] The source code translator can translate most Z80 source code into 8086 source code acceptable to the assembler after minor manual correction. This provides a relatively quick and easy way to transport programs between the processors. […] TRANS file […] The Z80-to-8086 Source Code Translator, called by this command, is essentially identical to our version that runs on the Z80, which is described in the back of the Assembler manual. The only differences: 1. The Translator is called TRANS, not TRANS86, and it runs on the 8086 under 86-DOS, not on the Z80 under CP/M. 2. The extension of the output file is "ASM", not "A86". […]
[26] - ^ Z80 To 8086 Translator (PDF). Seattle Computer Products. pp. TRANS-1–TRANS-2. Retrieved 2020-01-19. (23페이지)
- ^ Hughes, David B. (November 1982). "CP/M-86 And MS-DOS: A Comparative Analysis". PC Magazine. Operating Systems. Vol. 1, no. 7. Software Communications, Inc. pp. 181–182, 187–190 [189]. Archived from the original on 2020-02-10. Retrieved 2020-02-10.
[…] An impressive and useful array of software development utilities is a standard feature of MS-DOS. A program that translates 8080 or Z80 code into 8086 source code, a linker, and a library runtime combine with a powerful assembler to give the programmer everything needed to take full advantage of the PC's 16-bit processor. The MS-DOS translation program allows the user to translate code developed under CP/M-80 or SB-80 […] 8-bit operating system […] to MS-DOS 1.2 or 2.0. Some modification beyond simple translation may be necessary to get the programs to run on 16-bit systems, so I suggest that this tool be used primarily by a technically trained user. […]
- ^ a b Garetz, Mark (1980-12-22). "According to Garetz…". InfoWorld – News For Microcomputer Users. Vol. 2, no. 23. Popular Computing, Inc. p. 12. ISSN 0199-6649. Archived from the original on 2020-02-01. Retrieved 2020-01-18.
[…] Last week was the semi-annual California Computer Swap Meet. This event is organized by John Craig […] Sorcim […] was debuting […] new products at the show […] Their other product was TRANS-86. TRANS-86 will take any CP/M compatible 8080/8085/Z-80 source code file and translate it into 8086 code. You can then assemble the new file with ACT-86. […]
- ^ Blumenfeld, Dan (1982-12-04). "Z80 to 8086 translator". Newsgroup: fa.info-cpm. Archived from the original on 2020-01-16. Retrieved 2020-01-15. [27]
- ^ "CompuPro". PC: The Independent Guide To IBM Computers (Advertisement). Vol. 1, no. 1. Software Communications, Inc. February–March 1982. pp. 70–71. Premiere/Charter issue. Retrieved 2020-01-23.
[…] WHY? FLEXIBILITY. CompuPro's 85/88 CPU runs CP/M 80, 86, MP/M II and MP/M 86. We offer WORDSTAR dBASE II SUPERCALC a host of languages, 8080 to 8088 translators and more! COMPATIBILITY. Our systems can use CP/M 2.2 utilities to write programs for the IBM PC. You simply create 8088 source (either write it with your favorite CP/M 80 editor or translate it with Sorcim's TRANS 86), cross-assemble your source (with Sorcim's ACT86), link your hex file (with CP/M 80's LOAD command), translate it to the IBM PC (with G&G's CPM-IBM program), and run it on your IBM PC! This procedure DOES NOT require MS-DOS! […] WHY? FLEXIBILITY. CompuPro's 85/88 CPU runs CP/M 80 & 86 or MS-DOS. We offer WORDSTAR, dBASE II, TRANS86, XLT86, ACT86, SUPERCALC, CBASIC, MBASIC, MFORTRAN and more! […]
[28] [29] - ^ Warren, Jr., Jim C. (July 1982). "Sorcim' Somethin'" (PDF). Silicon Gulch Gazette. Rumors Mongered Here. Vol. 7, no. 30. Woodside, California, USA: Computer Faire. pp. 1, 2, 4, 6, 11, 14, 15 [11]. Retrieved 2020-01-15.
[…] Sorcim just completed the purchase of ISA. […] They have also had an 8080-to-8086 translator – Trans-86 – operational for over a year […]
- ^ a b c d e Barry, Tim (1982-04-05). "XLT-86, a CP/M utility program by Digital Research". InfoWorld – The Newsweekly for Microcomputer Users. Software Review. Vol. 4, no. 13. Popular Computing, Inc. pp. 40–41, 53. ISSN 0199-6649. Archived from the original on 2020-02-01. Retrieved 2020-01-25.
[…] XLT-86 1.1 […] XLT-86 is an analytical translator program written in PL/I-80. It reads the entire 8080 source program, assembles it to machine code, analyzes the register, memory and flag utilization, and emits an optimized 8086 assembly-language program. […] There is also a version of XLT-86 for those of you who have access to a VAX 11/750 or 11/780. This version can translate much larger programs. It also costs $8000. […] While the translator adds some labels and equates to the source program as part of the translation, all original comments and program labels are passed through intact to the translated program. […] The program translation proceeds in a five-step process. First, the program is scanned and assembled to produce symbol values and locations. Second, the program structure is analyzed and decomposed into basic blocks. Third, the basic blocks are analyzed to determine program flow and resource usage. Forth, the block structure and register allocation data is gathered into a listing for the user. Fifth, the flow information and source program are used to produce the 8086 source program. […]
- ^ Kildall, Gary Arlen (1982-04-19). Swaine, Michael; Freiberger, Paul; Markoff, John Gregory (eds.). "Digital Research founder discusses his view of the business". InfoWorld – The Newsweekly for Microcomputer Users. Special section: CP/M. Vol. 4, no. 15. Popular Computing, Inc. pp. 23–24. ISSN 0199-6649. Archived from the original on 2020-02-01. Retrieved 2020-01-17.
[…] Kildall: […] A year and a half ago I was probably spending 75% of my time on the business and 25% on programming. XLT-86 was a product I was working on at that time, and it took me nine months to do it. That would have been a three-month project if I had been able to concentrate on it. […]
- ^ Kildall, Gary Arlen (June–July 1982). Bunnell, David Hugh; Edlin, Jim (eds.). "Gary Kildall – The Man Who Created CP/M: CP/M's Creator – An Indepth PC-Exclusive Interview with Software Pioneer Gary Kildall". PC Magazine. Operating Systems. Vol. 1, no. 3. Software Communications, Inc. pp. 32–38, 40 [35]. Retrieved 2020-01-17.
[…] PC: What are some of the complexities involved in translating a program from 8080 to 8086 form? Kildall: Straight translations at the source program level you can do pretty much mechanically. For example, an 8080 "Add immediate 5" instruction turns into an "Add AL 5" on the 8086 — very straightforward translation of the op codes themselves. The complexity in mechanical translation comes from situations such as this: The 8080 instruction DAD H takes the HL register and adds DE to it. For the 8086 the equivalent instruction would be something like ADD DX BX, which is fine, no particular problem. You just say the DX register is the same as HL and BX the same as DE. The problem is that the 8086 instruction has a side effect of setting the zero flag, and the 8080 instruction does not. In mechanical translation you end up doing something like saving the flags, restoring the flags, doing some shifts and rotates, and so forth. These add about five or six extra instructions to get the same semantic effect. There are a lot of sequences in 8080 code that produce very strange sequences in 8086 code; they just don't map very well because of flag registers and things of that sort. The way we get software over is a thing called XLT-86. It's been out six months or so. PC: By "better" code do you mean smaller? Kildall: Twenty percent smaller than if you just took every op code and did a straight translation, saving the registers to preserve semantics. PC: How does the size of the translated program compare to the 8080 version? Kildall: If you take an 8080 program, move it over to 86 land and do an XLT-86 translation, you'll find that it is roughly 10 to 20 percent larger. With 16-bit machines it's more difficult to address everything; you get op codes that are a little bit bigger on the average. An interesting phenomenon is that one of the reasons you don't get a tremendous speed increase in the 16-bit world is because you're running more op codes over the data bus. […]
- ^ Huitt, 로버트, 유뱅크스. 미국, 고든, Rolander, 토마스"톰"앨런, 법학, 데이비드, 미셸, 하워드 E., 한라, 브라이언, 와튼, 존 해리슨, 베르크, 브라이언, 수애, Weilian, 킬 달, 스콧, Kampe, 빌(2014-04-25).법률, 데이비드(교육.).게리 킬 달의 "유산:그 CP/M IEEE마일스톤 Dedication"(PDF)(비디오 transscription).캘리포니아 PacificGrove에 사는, USA:컴퓨터 역사 박물관입니다.CHM 참조 번호:X7170.2014.그 2014-12-27에 원래에서Archived(PDF).2020-01-19 Retrieved.[…]Rolander:앞서 나는 게리 건축가 등의 문제를 접근하는 것을 좋아했다 언급했다.[…]그리고 그는 그의 데이터 구조의 가장 아름다운 그림을 그릴 것이다.[…]그리고 여기 데이터 구조 지금이 옳다고 확신했다 그[…]를 끝내자마자 방금 믿기 어려운 조증 부호화 모드로 갈 것이다.그는 아무렇지도 20개 정도의 시간은 하루에[…]그는 시간이 멈춘 동안 사라졌다 가곤 했다.그 행사의 커플에는 그는 어느 밤의 중심에 있게 될 수 있는 처음, 달리기도 무언가를 얻어요.그리고 감사 소프트웨어 쓰여진 것, 예를 들어,이 화면에 나오는 시간 사람에게 할 얘기가 있어 본 적이 있다.내 아내 로리가 나는 한밤중에, 로고가 한 예, 그런 전화를 있는지 말해 줄 것이다 XLT 86 다른, 그가 어디에서 그것을 처음 운영하는 것, 그가 누군가 그것을 보야 했어.따라서 그것 몇시인지 중요하지 않았어, 그는, 그리고 달리기를 보러 올 거 저에게 전화할 것.[…][30][31일](33페이지)
- ^ "XLT86 Reduces Conversion Effort in Assembly Language Program Translation" (PDF). Digital Research News – for Digital Research Users Everywhere. Product Update. Vol. 1, no. 1. Pacific Grove, California, USA: Digital Research, Inc. November 1981. pp. 2, 7. Fourth Quarter. Retrieved 2020-01-18.
[…] An 8- to 16-bit assembly code translator is now available from Digital Research. Called XLT86, it is designed to help ease the time-consuming process of converting CP/M software products from 8080- to 8086-based microcomputers. XLT86 can be used to translate any assembly language programs that are compatible with Digital Research's ASM, MAC or RMAC assembler format. The XLT86 program translator first reads an 8080 assembly language program and then produces an output file containing 8086 assembly language statements acceptable to the Digital Research ASM-86 assembler. Unlike other 8086 code converters that translate a single 8080 instruction into as many as ten 8086 instructions, XLT86 performs extensive data flow analysis to determine register usage throughout the original program. The information collected through this analysis is used during program translation to eliminate unnecessary flag save and restore operations. "The resulting 8086 program is both simpler and more compact than equivalent programs produced by other translators," according to Curt Geske, of the Digital Research marketing group. "Furthermore, XLT86 allows OEMs, end users and software vendors to preserve their investment in 8080-based assembly language programs when changing to 16-bit 8086-based computers by reducing the conversion effort." Programs translated by XLT86 run on both CP/M-86 and MP/M-86 […] XLT86 is available immediately. It operates on any 8-bit CP/M or MP/M system, or under the VMS operating-system for use on Digital Equipment Corporation VAX series mini-computers. The CP/M version is priced at $150. The VAX version sells for $8,000. […]
- ^ Kildall, Gary Arlen (1973-10-01). "A Unified Approach to Global Program Optimization" (PDF). Proceedings of the 1st Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL). POPL '73. Boston, Massachusetts, USA: 194–206. doi:10.1145/512927.512945. hdl:10945/42162. S2CID 10219496. Archived (PDF) from the original on 2017-06-29. Retrieved 2006-11-20.
- ^ Kildall, Gary Arlen (May 1972). Global expression optimization during compilation (Ph.D. dissertation). Seattle, Washington, USA: University of Washington, Computer Science Group. Thesis No. 20506, Technical Report No. 72-06-02.
- ^ a b XLT86 – 8080 to 8086 Assembly Language Translator – User's Guide (PDF) (First printing ed.). Pacific Grove, California, USA: Digital Research, Inc. September 1981. archive.org copy. Archived (PDF) from the original on 2016-11-18. Retrieved 2016-11-18.
- ^ "XLT86 for CP/M-80". Digital Research. Archived from the original on 2020-01-16. Retrieved 2020-01-18. (NB. 이 ZIP 아카이브에는 CP/M-80 실행 파일 XLT86이 포함되어 있습니다.COM [22KB]및 2개의 오버레이 파일 XLT00.OVL [8KB]및 XLT01.OVL [9KB]
- ^ Goldfarb, Ben (1982-12-09). "Re: 8080 to 8086 translation". Newsgroup: fa.info-cpm. Archived from the original on 2020-02-01. Retrieved 2020-01-18.
[…] The XLT86 program occupies approximately 30K bytes of main memory. The remainder of memory, up to the base of CP/M, stores the program graph that represents the 8086 program being translated […] A 64K CP/M system allows translation of 8080 programs of up to approximately 6K. […]
[32] [33] - ^ Wharton, John Harrison (1994-08-01). "Gary Kildall, industry pioneer, dead at 52: created first microcomputer languages, disk operating systems". Microprocessor Report. MicroDesign Resources Inc. (MDR). 8 (10). Archived from the original on 2016-11-18. Retrieved 2016-11-18.
[…] Ironically, many of the techniques Gary pioneered are being rediscovered now, ten years later. Apple and DEC are touting binary recompilation as a "new" technology for porting existing software to the PowerPC or Alpha architecture. Actually, DRI introduced an 8080-to-8086 binary recompiler in the early 1980s. […]
- ^ "SPA Award to Dr. Gary A.Kildall: 1995 SPA Lifetime Achievement Award Winner". Software Publishers Association (SPA). 1995-03-13. Archived from the original on 2019-12-21. Retrieved 2019-12-21 – via www.digitalresearch.biz.
[…] Kildall founded Digital Research, Inc. (DRI) in 1976, which is now part of Novell. […] In the 1980's, DRI introduced a binary recompiler. […]
- ^ Swaine, Michael (1997-04-01). "Gary Kildall and Collegial Entrepreneurship". Dr. Dobb's Journal. Archived from the original on 2007-01-24. Retrieved 2006-11-20.
In March, 1995, the Software Publishers Association posthumously honored Gary for his contributions to the computer industry. They listed some of his accomplishments: […] In the 1980s, through DRI, he introduced a binary recompiler. […]
- ^ a b c 2500AD소프트웨어(1984-12-11)."크로스 조립공들의 더한 슈퍼도 세계에서 가장 큰 선택".PCMagazine(광고).Vol3.24.콜로라도 주, 미국:PC통신사를 대신하여 서명함. 166–167.ISSN 0745-2500.그 2020-02-01에 원래에서 Archived.2020-01-24 Retrieved.[…]8086/88 어셈블러 번역기로달러 99.50 MSDOS, PCDOS, 또는 CP/M-86에 대해 사용 가능하[…]이 패키지에는[…][…]이 강력한 패키지 Zilog사의 16비트 마이크로 프로세서. 국회 언어 소스 코드 번역기에[…] Z-80/8080은 포함한다(프로그램 크기 제한 없는 번역하기)Zilog사의 16비트 마이크로 프로세서. 크로스 개발 패키지달러 199.50[…] 8080에 8086소스 코드 번역가를 포함한다.통역사는 인텔 8080나 자일 로그 여분의 소스 코드를 Z-8000 소스 코드를 제공한다.그 Zilog사의 16비트 마이크로 프로세서. 소스 코드 이러한 패키지에서 사용하는 독특한 2500에 있다.AD구문 자일 로근 연상 기호 암기 법 여분의 코드를 작성에서 Zilog사의 16비트 마이크로 프로세서. 쉬운[…]8086과 Zilog사의 16비트 마이크로 프로세서. XASM하는 데를 이용해서 소스 코드 변환기(NB다. 8086/88 XASM 인텔 CP/M, 자일 로그 시스템 8000유닉스, 올리베티 M-20 PCOS에 사용할 수;Zilog사의 16비트 마이크로 프로세서. XASM 인텔 CP/M, MS-DOS, CP/M-86, 올리베티 M-20 PCOS.)[…]을 포함한다.
- ^ "Zilog Unveils Modular Development System". Computerworld – The Newsweekly for the Computer Community. Vol. XIII, no. 34. Cupertino, California, USA: Computerworld, Inc. 1979-08-20. p. 46. ISSN 0010-4841. Archived from the original on 2020-02-01. Retrieved 2020-01-24.
[…] Zilog, Inc. has introduced a series of modular and expandable product development systems (PDS) for Z8-, Z80-, and Z8000-based microcomputer designs. All four versions of the PDS 8000 system – models 10, 15, 25, and 30 – have […] A standard feature of each system is a Z8000 software development package, which includes the ZDOSII file management routine, PLZ/ASM high-level structured assemblers, a Z80/Z8000 translator and a Z8000 L and MACP macroprocessor. […] The models 10 and 25 have the same specifications as the models 15 and 30, respectively. but the 10 and 25 do not include the Z8000 development module. The PDS Model 10 is priced at $10,485; the Model 15 at $11,995; the Model 25 at $20,000; and the Model 35 at $21,500. All four systems are available 30 days after receipt of the order. […]
- ^ Orlansky, Jesse, ed. (1979). Proceedings 27–29 November 1979 – 1st Interservice/Industry Training Equipment Conference. The Center. p. 413. Technical report NAVTRAEQUIPCEN. Archived from the original on 2020-02-01. Retrieved 2020-01-24.
[…] Table 1. 16-Bit Microprocessor Characteristics […] Zilog 8000 […] Software […] Zilog expects to support Z8000 with translators for PLZ, BASIC, COBOL and FORTRAN. These will permit conversion of Z80 code to Z8000 code, since Z8000 set is superset to Z80. […]
- ^ PDS 8000 Development System – The integrated approach to systems design (Product Brief). Zilog. January 1980. Retrieved 2020-01-24.
[…] Z8000 TRANSLATOR: Provides a quick means to convert an existing Z80 Assembly Language program to Z8000 code and the PLZ/ASM program format. […]
[34] [35] - ^ Thomas, Rebecca A.; Yates, Jean L. (1981-05-11). "Books, Boards and Software for The New 16-Bit Processors". InfoWorld – The Newspaper for the Microcomputing Community. Vol. 3, no. 9. Popular Computing, Inc. pp. 42–43. ISSN 0199-6649. Archived from the original on 2020-02-01. Retrieved 2020-01-24.
[…] Digital Research has also announced plans for a Z8000 version of CP/M. Application software will be moved to the Z8000 when more development software is available. A commercially available translator from Z80 to Z8000 is needed. […]
- ^ a b Guzis, Charles "Chuck" P. (2009-01-21) [2009-01-17]. "Re: CP/M or similar OS for 64K Z8002?". Vintage Computer Forum. Genre: CP/M and MP/M. Archived from the original on 2020-01-16. Retrieved 2020-01-15.
[…] both Zilog and AMC offered Z80-to-Z8000 translation programs. Like the Intel 8080-to-8086 translator, it resulted in immediate bloat unless you were willing to hand-optimize the result. Much early MS-DOS code was auto-translated and tweaked 8080 CP/M code. I know that much of SuperCalc for the PC was, for example. Early (e.g. 3.3) versions of Wordstar for DOS probably also were. […] There were Z80-to-Z8000 source-code translators, but it wasn't a straightforward process ("strict" and "relaxed" modes; sometimes one Z80-to-several Z8000 instructions). The 8086 is much closer to the 8080 than the Z8000 is to the Z80. […]
- ^ "2500 A.D. Software 8080/Z-80 to Z8000 source code translator v2.06b". 2500 A.D. Software, Inc. 1982. Archived from the original on 2020-02-01. Retrieved 2020-01-24. [36]
- ^ "802Z8000.ZIP 2500 A.D. Software 8080/Z-80 to Z8000 source code translator v2.06e". 2500 A.D. Software, Inc. Archived from the original on 2020-02-01. Retrieved 2020-01-24. [37]
- ^ a b Bodrato, Stefano (2008-10-30). "to86.awk source code". GitHub. 1.6. Archived from the original on 2022-01-05. Retrieved 2022-01-05.
- ^ Callahan, Brian (2021-10-23) [2021-07-06, 2021-06-06]. "Intel 8080 CP/M 2.2 to Intel 8086/8088 MS-DOS assembly language translator". 8088ify 1.2. Archived from the original on 2022-03-31. Retrieved 2021-11-28. [38][39][40][41]
- ^ "List of languages that compile to JS". GitHub. Archived from the original on 2020-01-23. Retrieved 2018-03-11.
- ^ "JSweet". Archived from the original on 2019-12-14. Retrieved 2019-12-14.
- ^ "Swiftify".
- ^ "J2ObjC". Archived from the original on 2019-10-22. Retrieved 2019-10-22.
- ^ "Maia". Retrieved 2020-05-13.
- ^ theolivenbaum (2021-11-13). "h5 🚀 - C# to JavaScript compiler". GitHub. Retrieved 2021-11-14.
- ^ "C->Go translator". GitHub. Archived from the original on 2018-12-07. Retrieved 2018-01-11.
- ^ "Go 1.5 Release Notes". Archived from the original on 2020-02-01. Retrieved 2018-01-11.
- ^ Cox, Russ. "Go 1.3+ Compiler Overhaul". Archived from the original on 2020-01-09. Retrieved 2018-01-11.
- ^ a b "C2Rust repository". GitHub. 2022-04-15.
- ^ "Overview". Js_of_ocaml - Reference Manual. Ocsigen. Archived from the original on 2018-12-08. Retrieved 2014-10-08.
- ^ J2Eif Research Page – Chair of Software Engineering. Se.inf.ethz.ch. doi:10.1007/978-3-642-21952-8_4. Archived from the original on 2020-01-01. Retrieved 2014-07-08.
- ^ "C2Eif Research Page – Chair of Software Engineering". Se.inf.ethz.ch. Archived from the original on 2020-01-01. Retrieved 2014-07-08.
- ^ "Swiftify Objective-C to Swift Converter". Retrieved 2017-11-14.
- ^ "Runtime Converter". Archived from the original on 2019-07-10. Retrieved 2017-11-14.
추가 정보
- Britten, Charles Randyl (2020-06-26). "Translation of 8080 Code to 8086 - Microsoft Translation of 8080 Code to 8086 and Other 16-Bit Processors". Archived from the original on 2021-07-23. Retrieved 2021-11-28.
- "Programming of Sycor Units Eased With TAL II". Computerworld – The Newsweekly for the Computer Community. Vol. IX, no. 34. Ann Arbor, Michigan, USA: Computerworld, Inc. 1975-08-20. p. 14. ISSN 0010-4841. Archived from the original on 2020-02-01. Retrieved 2020-01-18.
- Zerilli, Frank J.; Derouen, Craig (1986-12-11) [1985-08-15, 1984-12-20, 1984-11-20]. "8080 to 8086 ASM translator, with ASM source". SIMTEL. XLT86.COM 1.10. Archived from the original on 2020-02-01. Retrieved 2020-01-18. 1984-11 버전 1.05(NB)DOS 실행 파일 XLT86.COM [ 12KB ]는 인텔 8080 어셈블리 언어 소스 코드를 인텔 8086 어셈블리 언어 소스 코드로 변환합니다.8086 어셈블리의 이 구현은 그 이름에도 불구하고 디지털 리서치의 이전 XLT86과는 관련이 없습니다.)
- Albo, Julián (2009-04-24). "Pasmo, ensamblador cruzado Z80 portable / portable Z80 cross assembler" (in Spanish and English). Archived from the original on 2020-02-20. Retrieved 2020-02-20.
[…] Pasmo is a Z80 cross assembler […] that […] can generate object code in the following formats: raw binary, Intel HEX, PRL for CP/M Plus RSX, Plus3Dos (Spectrum +3 disk), TAP, TZX and CDT (Spectrum and Amstrad CPC emulators tape images), AmsDos (Amstrad CPC disk) and MSX (for use with BLOAD from disk in Basic). Starting with version 0.5.0 […] can also generate 8086 code from Z80 sources, in binary format for Ms-dos COM files or in CP/M 86 CMD format. […]
[42] [43] - Ciarcia, 스티브(도 될까 1984년)."트럼프 카드 – 제1부:하드웨어 16비트 coprocessing 힘으로 당신의 IBMPC속도를 높이–"(PDF). BYTE 그 작은 시스템 저널 –.Ciarcia의 서킷 셀러.Vol9,5. 맥그로힐사를 대신하여 서명함. 40–52, 54–55.ISSN 0360-5280.2020-01-29 Retrieved.[…]는 대신 프로그램 베이직, C 같은 고 수준의 언어로 쓰여진 집행한 파스칼 컴파일러, 8088에 Z8000 번역자는 진행 중에 있습니다.[…]과 Ciarcia, 스티브(6월 1984년)."트럼프 카드 – Part2:소프트웨어 – TBASIC와 C컴파일러 및 둔치"(PDF). BYTE 그 작은 시스템 저널 –.Ciarcia의 서킷 셀러.Vol9, 머드 6. 맥그로힐사를 대신하여 서명함. 115–122.ISSN 0360-5280.2020-01-29 Retrieved.[…]나는 그 Z80-to-Z8000과 8088-to-Z8000 변환을 위해object-code 통역사들이 곧 사용할 수[…], 또한 Ciarcia, 스티브(1990년)으로 이용할 수로 기대하고 있다."트럼프 카드 – 제1부:하드웨어 16비트 coprocessing 권력 및 당신의 IBMPC속도를 높이–, Part2:소프트웨어 – TBASIC와 C컴파일러 및 둔치".Gonneau, 다니엘;Bernardi, 프레드, Ausburn, 리차드(eds.)에서.Ciarcia의 서킷 셀러.권 7. 맥그로힐 출판사.를 대신하여 서명함. 138–152, 153–160.아이 에스비엔 0-07-010969-9.그 2020-02-01에 원래에서 Archived..[44]2020-01-29 Retrieved
- Microcontroller Division Application Team (2000). "Translating Assembly Code From HC05 To ST7" (PDF) (Application Note). STMicroelectronics. AN1106/0200. Retrieved 2020-01-18. (9페이지) (NB).이 소프트웨어 번역기는 ST에 의해 개발되었으며 Motorola 6805/HC05 어셈블리 소스 코드를 2500으로 번역합니다.AD 소프트웨어를 ST7 소스 코드로 포맷합니다.MIGR2ST7.Windows 용 EXE 실행 파일은, 「MCU ON CD」로부터 입수할 수 있습니다).
- Kuper, Lindsey (2017-07-30). "What do people mean when they say "transpiler"?". language implementation. composition.al. Archived from the original on 2022-01-09. Retrieved 2022-01-09.
외부 링크
- Chaudry, Gabriele "Gaby" (2009-07-11). "Das Intel zu Zilog – Übersetzungsprojekt". I2Z-Translator (in German). Archived from the original on 2016-09-11. Retrieved 2020-01-18.
- "PortAsm Assembler to Assembler Translation". MicroAPL Ltd. 2017 [1996]. Archived from the original on 2019-07-30. Retrieved 2020-01-18.
- "Our Methodology – The Source to Source Conversion Process". Micro-Processor Services, Inc. (MPS). Archived from the original on 2019-05-12. Retrieved 2020-02-01.