stringtranslate.com

Компилятор исходного кода

Переводчик исходного кода , компилятор исходного кода ( компилятор S2S ), транскомпилятор или транспилятор [1] [2] [3] — это тип транслятора , который принимает исходный код программы, написанной на языке программирования , в качестве входных данных и создает эквивалентный исходный код на том же или другом языке программирования. Транслятор исходного кода преобразует между языками программирования, которые работают примерно на одном уровне абстракции , в то время как традиционный компилятор преобразует с языка программирования более высокого уровня на язык программирования более низкого уровня . Например, транслятор исходного кода может выполнять перевод программы с Python на JavaScript , в то время как традиционный компилятор преобразует с языка типа C на ассемблер или Java на байт-код . [4] Автоматический распараллеливающий компилятор часто принимает программу на языке высокого уровня в качестве входных данных, а затем преобразует код и аннотирует его с помощью аннотаций параллельного кода (например, OpenMP ) или языковых конструкций (например, операторов Fortranforall ). [2] [5]

Другая цель компиляции исходного кода в исходный код — это перевод устаревшего кода для использования следующей версии базового языка программирования или API, который нарушает обратную совместимость. Он выполнит автоматический рефакторинг кода , что полезно, когда программы для рефакторинга находятся вне контроля исходного разработчика (например, преобразование программ из Python 2 в Python 3 или преобразование программ из старого API в новый API) или когда размер программы делает непрактичным или трудоемким рефакторинг вручную.

Транскомпиляторы могут либо сохранять структуру переведенного кода как можно ближе к исходному коду, чтобы облегчить разработку и отладку оригинального исходного кода, либо изменять структуру исходного кода настолько, что переведенный код не будет похож на исходный код. [6] Существуют также утилиты отладки, которые сопоставляют транскомпилированный исходный код с исходным кодом; например, стандарт JavaScript Source Map [ требуется ссылка ] позволяет сопоставлять код JavaScript, выполняемый веб-браузером, с исходным кодом, когда код JavaScript был, например, минифицирован или создан с помощью языка, транскомпилированного в JavaScript. [ требуется ссылка ]

Примерами являются Closure Compiler , CoffeeScript , Dart , Haxe , Opal, TypeScript и Emscripten . [7]

Переводчики языка ассемблера

Так называемые трансляторы языка ассемблера представляют собой класс трансляторов исходного кода, преобразующих код с одного языка ассемблера на другой, в том числе (но не ограничиваясь) между различными семействами процессоров и системными платформами .

IntelCONV86

Intel продвигала свой 16-битный процессор 8086 как совместимый по исходному коду с 8080 , 8-битным процессором. [8] Для поддержки этого у Intel был транслятор на основе ISIS-II из исходного кода 8080 в 8086 под названием CONV86 [9] [10] [11] [12] (также называемый CONV-86 [13] и CONVERT 86 [14] [15] ), доступный OEM- клиентам с 1978 года, возможно, самая ранняя программа такого рода. [nb 1] Он поддерживал несколько уровней трансляции и работал на частоте 2 МГц на Intel Microprocessor Development System MDS-800 с 8-дюймовыми дисководами . Согласно сообщениям пользователей, он работал не очень надежно. [16] [17]

SCP TRANS86

Seattle Computer Products (SCP) предложила TRANS86.COM, [15] [18] [19], написанный Тимом Патерсоном в 1980 году во время разработки 86-DOS . [20] [21] [22] Утилита могла транслировать исходный код ассемблера Intel 8080 и Zilog Z80 (с мнемоникой Zilog/ Mostek ) в исходный код .ASM для Intel 8086 (в формате, совместимом только с кросс-ассемблером SCP ASM86 для CP/M-80 ), но поддерживала только подмножество кодов операций , регистров и режимов, и часто все еще требовала значительной ручной коррекции и последующей доработки. [23] [20] Кроме того, выполняя только простую транслитерацию , [14] [18] [9] [10] однопроходный транслятор грубой силы не выполнял никаких оптимизаций регистров и переходов. [24] [25] Требовалось около 24 КБ ОЗУ. [15] SCP-версия 1 TRANS86.COM работала на системах на базе Z80. [15] [18] После запуска 86-DOS Патерсон, в подходе, вдохновленном самостоятельным размещением , использовал TRANS86 для преобразования себя в программу, работающую под 86-DOS. [22] [18] Пронумерованная версия 2, была названа TRANS.COM. [18] [25] [24] [26] [27] Позже, в 1982 году, транслятор, по-видимому, также был доступен от Microsoft . [15] [28]

Сорцим TRANS86

Также названный TRANS86, Sorcim также предлагал транслятор 8080 в 8086 с декабря 1980 года. [29] [14] Как и программа SCP, он был разработан для переноса кода приложения CP/M-80 (в формате ассемблера ASM, MAC, RMAC или ACT80) в MS-DOS (в формате, совместимом с ACT86). [29] [15] [30] [31] В формате ACT80 он также поддерживал несколько мнемоник Z80. Трансляция происходила на основе инструкция за инструкцией с некоторой оптимизацией, примененной к условным переходам. Программа работала под CP/M-80, MP/M-80 и Cromemco DOS с минимальным объемом оперативной памяти 24 КБ и не имела ограничений на размер исходного файла. [15] [32]

Цифровые исследования XLT86

Гораздо более сложной и первой, внедрившей оптимизирующие технологии компиляции в процесс трансляции исходного кода, была программа XLT86 1.0 компании Digital Research , выпущенная в сентябре 1981 года. XLT86 1.1 была доступна к апрелю 1982 года. [33] Программа была написана Гэри Килдаллом [14] [34] [35] [36] и транслировала исходный код .ASM для процессора Intel 8080 (в формате, совместимом с ассемблерами ASM, MAC или RMAC) в исходный код .A86 для 8086 (совместимый с ASM86). Используя глобальный анализ потока данных об использовании регистров 8080, [37] [14] [38] [39] пятифазный многопроходный транслятор также оптимизировал бы вывод для размера кода и заботился бы о соглашениях о вызовах ( вызовы BDOS CP/M-80 были сопоставлены с вызовами BDOS для CP/M-86 ), так что программы CP/M-80 и MP/M-80 могли бы быть автоматически портированы на платформы CP/M-86 и MP/M-86 . Сам XLT86.COM был написан на PL/I-80 для платформ CP/M-80. [40] [15] [33] [41] Программа занимала 30 КБ ОЗУ для себя плюс дополнительную память для графа программы . В системе памяти 64 КБ максимальный поддерживаемый размер исходного файла составлял около 6 КБ, [40] [15] [42] [33] поэтому большие файлы приходилось соответствующим образом разбивать перед трансляцией. [15] [33] В качестве альтернативы XLT86 также был доступен для DEC VAX/VMS . [15] [33] Хотя ввод и вывод XLT86 работали на уровне исходного кода, представление программы в памяти транслятора и применяемые технологии оптимизации кода заложили основу для двоичной перекомпиляции . [43] [44] [45]

Другие

2500 AD Software предложила транслятор исходного кода 8080 в 8086 как часть своего пакета XASM для машин CP/M-80 с Z80, а также для систем Zilog ZEUS и Olivetti PCOS . [46]

С 1979 года Zilog предлагала транслятор Z80 в Z8000 как часть своей системы разработки PDS 8000. [47] [48] [49] [50] [51] [17] Advanced Micro Computers (AMC) [51] [17] и 2500 AD Software также предлагали трансляторы Z80 в Z8000. [46] Последний назывался TRANS [52] [53] и был доступен для Z80 CP/M, CP/M-86, MS-DOS и PCOS. [46]

Комплект разработчика Z88DK предоставляет транслятор исходного кода Z80 в i486 , ориентированный на nasm, под названием "to86.awk", написанный в 2008 году Стефано Бодрато. [54] Он, в свою очередь, основан на преобразователе 8080 в Z80, написанном в 2003 году Дугласом Битти-младшим и названном "toz80.awk". [54]

В 2021 году Брайан Каллахан написал транслятор исходного кода 8080 CP/M 2.2 в MS-DOS, ориентированный на nasm, под названием 8088ify. [55]

Реализации языка программирования

Первые реализации некоторых языков программирования начинались как транскомпиляторы, и реализация по умолчанию для некоторых из этих языков до сих пор является транскомпиляторами. В дополнение к таблице ниже, разработчик CoffeeScript предоставляет список языков, которые компилируются в JavaScript. [56]

Перенос кодовой базы

Когда разработчики хотят перейти на другой язык, сохранив большую часть существующей кодовой базы, может быть лучше использовать транскомпилятор, чем переписывать все программное обеспечение вручную. В зависимости от качества транскомпилятора, код может нуждаться или не нуждаться в ручном вмешательстве для правильной работы. Это отличается от «транскомпилированных языков», где спецификации требуют, чтобы выходной исходный код всегда работал без изменений. Все транскомпиляторы, используемые для переноса кодовой базы, будут ожидать ручной корректировки выходного исходного кода, если необходимо достичь максимального качества кода с точки зрения читаемости и соглашения платформы.

Конвейеры транскомпилятора

Конвейер транскомпилятора — это то, что получается в результате рекурсивной транскомпиляции . Объединяя несколько слоев технологий с шагом транскомпиляции между каждым слоем, технология может многократно трансформироваться, эффективно создавая распределенную спецификацию, независимую от языка .

XSLT — это универсальный инструмент преобразования, который можно использовать между многими различными технологиями для создания такого конвейера производного кода .

Рекурсивная транскомпиляция

Рекурсивная транскомпиляция (или рекурсивный транспиляция ) — это процесс рекурсивного применения понятия транскомпиляции для создания конвейера преобразований (часто начинающихся с одного источника истины ), которые многократно превращают одну технологию в другую.

Повторяя этот процесс, можно превратить A → B → C → D → E → F, а затем обратно в A(v2). Некоторая информация будет сохранена через этот конвейер, от A → A(v2), и эта информация (на абстрактном уровне) демонстрирует, с чем соглашаются каждый из компонентов A–F.

В каждой из различных версий, которые производит конвейер транскомпилятора, эта информация сохраняется. Она может принимать множество различных форм и размеров, но к тому времени, когда она возвращается в A (v2), будучи транскомпилированной шесть раз в конвейере выше, информация возвращается в свое исходное состояние.

Эта информация, которая сохраняется после преобразования в каждом формате от A–F–A(v2), является (по определению) производным содержимым или производным кодом .

Рекурсивная транскомпиляция использует тот факт, что транскомпиляторы могут либо сохранять транслируемый код как можно ближе к исходному коду, чтобы облегчить разработку и отладку оригинального исходного кода, либо они могут изменить структуру исходного кода настолько, что транслируемый код не будет похож на исходный код. Существуют также утилиты отладки, которые сопоставляют транскомпилированный исходный код с исходным кодом; например, исходные карты JavaScript позволяют сопоставлять код JavaScript, выполняемый веб-браузером , с исходным кодом на языке, транскомпилированном в JavaScript.

Смотрите также

Примечания

  1. ^ Известно, что одной из коммерческих программ, которая была машинно переведена с помощью ISIS-II из исходного кода 8080 CP/M-80 в 8086 CP/M-86 с использованием CONV86 компании Intel, была WordStar 3.0 компании MicroPro в сентябре 1981 года.

Ссылки

  1. ^ ARC-Softwaresystems (июнь 1988 г.). «Aus BASIC mach C: B→C Transpiler» [Превратите BASIC в транспилятор C: B→C]. Амига-Магазин (Реклама) (на немецком языке). Том. 1988, нет. 6. Эсслинген, Германия: Markt & Technik Verlag Aktiengesellschaft . п. 101. ISSN  0933-8713. Архивировано из оригинала 01 февраля 2020 г. Проверено 18 января 2020 г. […] Achtung C - und Basic -Programmierer! […] Jetzt gibt es den B→C TRANSPILER das einzigartige Umwandlungs-Software-System от ARC […] Der B→C TRANSPILER übersetzt lauffähige AMIGA -Basicprogramme в компиляторе C-Code. […] Durch Spezialbefehle cann C-Code в базовой программе сразу интегрируется. […] 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]
  2. ^ аб Pountain, Dick (декабрь 1989 г.). «Настройка параллельных программ, часть 1: транспилятор Оккама, в настоящее время находящийся в стадии разработки, упростит написание программного обеспечения для параллельной обработки». BYTE . Том 14, № 13. McGraw-Hill, Inc. стр. 349–352. ISSN  0360-5280. ark:/13960/t34188734 . Получено 06.01.2022 . стр. 350: […] Название транспилятор подразумевает сочетание транспьютера и компилятора , точно так же, как транспьютер был образован от транзистора и компьютера (т. е. компьютера, который также является компонентом). […](Примечание. Термин «транспилятор Оккама» используется как синоним компилятора исходного кода, работающего в качестве препроцессора , который принимает обычную программу Оккама в качестве входных данных и выводит новый исходный код Оккама в качестве выходных данных с назначениями ссылок на каналы и т. д., тем самым настраивая его для параллельной обработки с целью максимально эффективной работы в сети транспьютеров .)
  3. ^ Sector 7 Software Limited (1993-12-07) [1992-09-22]. "Transpiler". Official Gazette of the United States Patent and Trademark Office . Class 9. Vol. 1157 (1 ed.). Bedford, Bedfordshire, UK: US Patent and Trademark Office . p. TM 81. SN 74-316.610. Архивировано из оригинала 2020-02-01 . Получено 2020-01-18 . […] Приоритет заявлен в соответствии с Разделом 44(D) по заявке Соединенного Королевства № 1495953, поданной 1992-03-31 Reg. No. A1495953, датированной 1992-03-31, истекает 1999-03-31. Для компьютерного программного обеспечения и программ (US Cl. 38). Первое использование 1 августа 1991 г., в торговле 1 августа 1991 г.(Примечание. Эта компания разрабатывает такие продукты, как VX/BASIC, транспилятор BASIC-to-C для DEC VMS . Несмотря на их заявление, это не первое публичное использование термина транспилятор, см., например, транспилятор BASIC-to-C компании ARC для Amiga в 1988 году и транспилятор Occam компании Concurrent Technology Systems (CTS) в 1989 году.)
  4. ^ ab "Transpiler". devopedia.org . 2017-03-17. Архивировано из оригинала 2019-11-05 . Получено 2019-06-22 .
  5. ^ "Типы компиляторов". compilers.net. 1997–2005. Архивировано из оригинала 2019-07-19 . Получено 2010-10-28 .
  6. ^ Фаулер, Мартин (2013-02-12). "Прозрачная компиляция". Архивировано из оригинала 2020-01-01 . Получено 2013-02-13 .
  7. ^ Epic Games ; Mozilla . "HTML5 Epic Citadel".
  8. ^ Скэнлон, Лео Дж. (1988). Язык ассемблера 8086/8088/80286. Brady Books. стр. 12. ISBN 978-0-13-246919-7. […] 8086 программно совместим с 8080 на уровне языка ассемблера. […]
  9. ^ аб Инструкции по эксплуатации преобразователя языка ассемблера MCS-86 для пользователей ISIS-II. A30/379/10K TL. Санта-Клара, Калифорния, США: Intel Corporation . Март 1979 [1978]. Номер заказа 9800642A . Получено 18.01.2020 .[2] (Примечание. Более новую версию этого руководства можно найти здесь.)
  10. ^ аб Инструкции по эксплуатации преобразователя языка ассемблера MCS-86 для пользователей ISIS-II. A175/280/7.5 FL. Санта-Клара, Калифорния, США: Intel Corporation . Февраль 1980 [1978]. Заказ № 9800642-02 . Получено 18.01.2020 .[3] [4] (Примечание. Более старую версию этого руководства можно найти здесь.)
  11. ^ "Среда разработки 8086/8087/8088". Справочное руководство по языку ASM86 (PDF) . Санта-Клара, Калифорния, США: Intel Corporation . Ноябрь 1983 г. [сентябрь 1981 г.]. стр. 1-1–1-2. Номер заказа 121703-003 . Получено 28.11.2023 .(404 страницы)
  12. ^ Нельсон, Росс П. (январь 1989) [1988]. Книга 80386: Руководство программиста на языке ассемблера для 80386. Серия программирование Microsoft (1-е изд.). Microsoft Press . стр. 2. ISBN 978-1-55615-138-5. […] Программа-транслятор Intel могла преобразовывать программы на ассемблере 8080 в программы на ассемблере 8086 […]
  13. ^ Руководство пользователя семейства 8086. Корпорация Intel . Октябрь 1979 [1978]. стр. 2-74, 2-92, B-176. Номер заказа 9800722-03 . Получено 18.01.2020 . […] другие программы дополняют инструменты разработки программного обеспечения, доступные для 8086 и 8088. […] CONV-86 может выполнять большую часть работы по преобразованию, необходимой для перевода исходных модулей языка ассемблера 8080/8085 в исходные модули ASM-86. […] Для упрощения преобразования программ языка ассемблера 8080A / 8085A для запуска на плате iSBC 86/12A CONV-86 доступен под управлением операционной системы ISIS-II .[5] [6]
  14. ^ abcde Фрайбергер, Пол (1981-10-19). «Программные переводчики делают это буквально – а иногда и в контексте». InfoWorld – Новости для пользователей микрокомпьютеров . Специальный раздел: Совместимость компьютеров. Том 3, № 22. Popular Computing, Inc. стр. 19. ISSN  0199-6649. Архивировано из оригинала 01.02.2020 . Получено 15.01.2020 . […] «Если у вас нет схемы перевода, которая учитывает особые особенности целевого микропроцессора, автоматический переводчик не сможет работать», – объясняет Дэниел Дэвис, программист из Digital Research . «Вы получите прямую транслитерацию ». […] Несмотря на все эти ограничения, в последнее время в разработке переводчиков был достигнут прогресс. В частности, Digital Research представила свой восьми- и 16-битный транслятор ассемблерного кода. На основе исследования, проведенного президентом Digital Research Гэри Килдаллом , XLT86, по-видимому, предлагает преимущества по сравнению с ранее доступной технологией программного транслятора. Подобно Trans от Sorcim и Convert 86 от Intel , пакет Килдалла транслирует код на языке ассемблера с микропроцессора 8080 на 8086. Однако Килдалл применил глобальную технику анализа потока , которая учитывает некоторые из основных недостатков других трансляторов. Процедура анализирует использование регистров и флагов в разделах кода 8080, чтобы исключить несущественный код. По словам программиста Digital Research Дэвиса, алгоритм, используемый Килдаллом, позволяет переводчику учитывать контекст при переводе программы. До сих пор одной из основных проблем любой программы-транслятора была неспособность программного обеспечения делать что-то большее, чем транслитерация. Если новый транслятор Digital Research действительно улучшит технологию до такой степени, что контекст можно будет учитывать, то на рынке микрокомпьютеров может появиться больше программных трансляторов.
  15. ^ abcdefghijk Тейлор, Роджер; Леммонс, Фил (июнь 1982 г.). «Восходящая миграция – Часть 1: Трансляторы – Использование программ перевода для перемещения программ CP/M-86 на CP/M и MS-DOS» [Использование программ перевода для перемещения программ CP/M на CP/M-86 и MS-DOS] (PDF) . BYTE . Том 7, № 6. BYTE Publications Inc. стр. 321–322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344. ISSN  0360-5280. КОДЕН  BYTEDJ. Архивировано (PDF) из оригинала 2020-01-16 . Получено 15.01.2020 . […] XLT86 от Digital Research берет стандартный исходный код 8080 в формате, совместимом с ассемблерами ASM, MAC или RMAC, и преобразует исходный код 8080 в исходный код 8086 в формате, совместимом с ASM86, работающим под управлением CP/M-80 или CP/M-86 . Поскольку XLT86 написан на PL/I-80 , транслятор может работать как автономно под управлением CP/M-80, так и для кросс-разработки под управлением VAX/VMS. Он создает оптимизированный код 8086 в пятифазном многопроходном процессе, выполняя глобальный анализ потока данных для определения оптимального использования регистров. Хотя определения макросов не поддерживаются, директивы условной сборки […] если вам нужно расширение макроса, вы можете использовать проход через MAC или RMAC для создания файла PRN, который можно редактировать […] для создания расширенного исходного файла для ввода, приемлемого для XLT86. XLT86 не распознает инструкции Z80 . XLT86 передает циклы повторов в исходный код 8086. XLT86 анализирует исходную программу целиком, определяя структуру блока и использование регистров/флагов. Работая с этой информацией, он транслирует код в код ассемблера 8086 оптимизированным способом. Алгоритм принятия решения для каждого типа инструкции приведен в […] руководстве […] Отображение регистров обычно следует […] со слабой связью между 8086 AX и 8080 PSW ; точная связь определяется использованием регистров во время трансляции . Для управления процессом трансляции доступно множество параметров среды выполнения , как в командной строке, так и встроенных в исходный текст 8080. […] XLT86 — сложная программа, которая выполняет разумную работу по оптимизации трансляции исходного кода 8080 в исходный код 8086. BDOSВызовы из CP/M-80 отображаются в вызовы BDOS, совместимые с CP/M-86. XLT86 имеет специальные функции для обработки трансляции условных инструкций JMP и CALL в исходном коде 8080. В инструкциях 8080 инструкции JMP и CALL способны достигать любого адреса в пределах 64-килобайтной области. Условные инструкции JMP 8086 могут достигать только 128 байт с каждой стороны регистра IP […]. XLT86 проверяет цель условного JMP. Если цель не может быть достигнута, XLT86 изменяет смысл условного JMP и пропускает длинный JMP к целевому адресу. Поскольку в 8086 нет условных инструкций CALL или RET, смысл условия изменяется, и выполняется короткий условный JMP для пропуска безусловного CALL или RET. […] сегментные регистры позволяют разделять области кода и данных. […] XLT86 проверяет выражение и определяет нужный сегмент для конкретной инструкции. […][7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] (13 страниц)
  16. ^ Guzis, Charles "Chuck" P. (2013-02-24). "Re: Что если бы IBM не выбрала процессор Intel!". Форум Vintage Computer . Жанр: Другие. Архивировано из оригинала 2020-01-16 . Получено 2020-01-15 . […] Оригинальный ассемблер 8086 работал на системе разработки MDS-80, оснащенной 8080. Одним из первых продуктов был транслятор исходного уровня 8080 в 8086. Я помню, что скорость перевода была феноменально медленной. […] наш продавец предложил провести тест преобразования и проверки в местном офисе продаж […] Мы […] начали работу на серии ISIS-II MDS 200 там — у них даже был жесткий диск, что было возмутительно дорогим вариантом для MDS […] все еще хрустела, когда мы уходили на ночь. На следующее утро он все еще не был готов […] Примерно через 2 недели, после того как программисты Intel посмотрели на транслятор, Эд вернулся с переведенной программой. Она была примерно на 50% больше по размеру, чем оригинальная версия 8085 , что как бы противоречило заявлениям Intel о трансляторе. […]
  17. ^ abc 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. Архивировано из оригинала 2020-01-16 . Получено 2020-01-15 . […] У Intel был транслятор с 8080 в 8086 , размещенный на ISIS . Я помню, как провел очень разочаровывающий день в местном офисе продаж Intel с образцом кода 8080 — базовым пакетом BCD с плавающей точкой для 8080 и часами ждал, пока транслятор закончит свою работу — и вернулся домой разочарованным. Примерно через неделю мне позвонили и сказали, что они наконец-то разобрались с ошибками, и я могу забрать свою переведенную программу. Указанная программа была более чем в полтора раза больше оригинала с точки зрения байтов объектов. Я тогда немного скептически отнесся к заявлению Intel, что код 8086 был гораздо компактнее, чем его аналог 8080. И эта чертова штука все равно не работала, когда ее подвергли тестированию. […] Были и другие трансляторы 80-в-86 для CP/M . Я припоминаю, что у Sorcim был один. У AMC также был транслятор Z80 -в- Z8000 . […] Транслятор [Intel] имел несколько уровней трансляции […] был «буквальный», сохраняющий подробную работу […] это был ISIS-II , работающий на MDS-800, на частоте, сколько там, 2 МГц с 8-дюймовыми дискетами. […]
  18. ^ abcde "Microsoft Macro Assembler (MASM) Unofficial Changelist". bytepointer.com . 2018-08-21 [2016-09-08]. Архивировано из оригинала 2019-07-17 . Получено 2020-01-18 . […] Тим Патерсон […] сказал следующее о своем ассемблере 8086 , который он написал, работая в SCP : «Ассемблер 8086, который я написал изначально, был на языке ассемблера Z80 и работал под управлением CP/M . Я полагаю, что он распространялся с процессорной картой SCP 8086 как ASM86. Я также написал транслятор, который преобразовывал исходный код Z80 в неэффективный, но работоспособный исходный код 8086 ( Intel продвигала эту идею с помощью опубликованной таблицы трансляции). Он назывался TRANS86 и также был написан на ассемблере Z80 для CP/M. Как только DOS заработал, я применил транслятор к ASM86 (и к нему самому), чтобы создать версии 8086, которые работали под управлением DOS. У меня нет истории изменений перед глазами […], но я полагаю, что версии >= 2 обозначали переведенную (DOS) версию. Если в какой-либо истории указаны номера версий < 2, то это была версия CP/M». […]
  19. ^ Патерсон, Тим (июнь 1983 г.). «Взгляд изнутри на MS-DOS — Решения по проектированию, лежащие в основе популярной операционной системы — История и решения по проектированию, лежащие в основе MS-DOS. как это работает и куда это идет». BYTE . 16-битные разработки. Том 8, № 6. McGraw-Hill, Inc. стр. 230–252. ISSN  0360-5280. КОДЕН  BYTEDJ. Архивировано из оригинала 17.03.2017 г. Получено 23.01.2020 г. [ …] Критерии проектирования MS-DOS […] Основным требованием к проектированию MS-DOS была совместимость с трансляцией CP/M-80 , то есть если программа 8080 или Z80 для CP/M была транслирована для 8086 в соответствии с опубликованными правилами Intel , эта программа будет правильно выполняться в MS-DOS. Создание требования совместимости с трансляцией CP/M-80 способствовало быстрой разработке программного обеспечения 8086, в чем, естественно, Seattle Computer был заинтересован. Частичный успех был достигнут: те разработчики программного обеспечения, которые решили перевести свои программы CP/M-80, обнаружили, что они действительно работают под MS-DOS, часто с первой попытки. К сожалению, многие разработчики программного обеспечения, с которыми Seattle Computer общались в ранние дни, предпочитали просто игнорировать MS-DOS. До тех пор, пока не был анонсирован IBM Personal Computer , эти разработчики считали, что CP/M-86 станет операционной системой компьютеров 8086/8088. […] [21] [22]
  20. ^ ab Seattle Computer Products (август 1980 г.). "86-DOS – 8086 OPERATING SYSTEM - $95". BYTE (Реклама). Том 5, № 8. BYTE Publications Inc. стр. 173. ISSN  0360-5280. КОДЕН  BYTEDJ. Архивировано из оригинала 05.04.2017 г. Получено 18.08.2013 г. [ …] 1. Считать файл исходного кода Z80 , записанный в формате CP/M, и преобразовать в формат 86-DOS . 2. Программа-транслятор транслирует исходный код Z80 в исходный код 8086. 3. Резидентный ассемблер компилирует транслированный исходный код 8086 в объектный код 8086. 4. Незначительная ручная коррекция и оптимизация. (На исправление недавнего перевода программы 19K Z80 у нас ушло около четырех часов. Даже без оптимизации она работала в два раза быстрее оригинала! […])[23]
  21. ^ Патерсон, Тим (1994-10-03). "Истоки DOS: Создатель DOS излагает свою точку зрения на связь между CP/M и MS-DOS" (PDF) . Отчет о микропроцессорах . 8 (13). Ресурсы MicroDesign (MDR). ISSN  0899-9341. Архивировано из оригинала (PDF) 2012-05-31. […] Чтобы заставить крупных разработчиков программного обеспечения портировать свои продукты с 8080 / Z80 на 8086 , я решил, что мы должны сделать это как можно проще. Я уже написал транслятор исходного кода с Z80 на 8086 (размещенный на 8080 и CP/M ). Мой план состоял в том, что запуск программы 8080 CP/M через транслятор будет единственной работой, которую потребуют разработчики программного обеспечения для переноса программы на 8086. Другими словами, интерфейс, используемый приложениями для запроса служб операционной системы, будет точно таким же, как у CP/M после применения правил трансляции. […]
  22. ^ ab Paterson, Tim (2007-09-30). "Design of DOS". DosMan Drivel . Архивировано из оригинала 2013-01-20 . Получено 04.07.2011 . […] Совместимость с переводом CP/M […] Для успеха DOS для нее необходимо было бы написать полезные приложения (например, текстовый процессор). Я беспокоился, что у SCP могут возникнуть проблемы с убеждением авторов прикладного программного обеспечения приложить усилия для создания версии своих программ для DOS. Мало кто купил 16-разрядный компьютер SCP, поэтому установленная база была небольшой. Без приложений не было бы много пользователей, а без пользователей не было бы много приложений. […] Я надеялся, что, максимально упростив перенос существующих 8-разрядных приложений на наш 16-разрядный компьютер, мы привлечем больше программистов, которые рискнут этим заняться. И мне казалось, что совместимость с трансляцией CP/M — это то, что максимально упростит работу. Intel определила правила для трансляции 8-битных программ в 16-битные; совместимость с трансляцией CP/M означает, что когда запрос программы к CP/M проходит через трансляцию, он становится эквивалентным запросом к DOS. […] Поэтому я сделал совместимость с трансляцией CP/M фундаментальной целью проектирования. Это потребовало от меня создания очень специфичного интерфейса прикладных программ, который реализовывал совместимость с трансляцией. Я не считал это основным API — на самом деле был другой API, более подходящий для 16-битного мира и имевший больше возможностей. Оба API использовали конструкции, определенные CP/M (например, « Блок управления файлами »); API совместимости должен был это делать, и я не видел причин определять что-то другое для основного API. […] Я сам воспользовался совместимостью с трансляцией. Написанные мной инструменты разработки, такие как ассемблер, изначально были 8-битными программами, работавшими под CP/M ( CDOS ). Я пропустил их через транслятор и получил 16-битные программы, работавшие под DOS. Эти переведенные инструменты были включены в DOS при отправке SCP. Но я не думаю, что кто-либо еще когда-либо воспользовался этим процессом. […]
  23. ^ "Транслятор Z80 в 8086". Z80/8086 Cross Assembler Release 1 (PDF) . Редакция A (Предварительная редакция). Сиэтл, Вашингтон, США: Seattle Computer Products . стр. 20–21 . Получено 18.01.2020 . […] Транслятор Seattle Computer Products Z80 в 8086 работает на Z80 под управлением CP/M . Он принимает в качестве входных данных исходный файл Z80, написанный с использованием мнемоники Zilog / Mostek , и преобразует его в исходный файл 8086 в формате, приемлемом для нашего кросс-ассемблера 8086. Чтобы перевести файл, просто введите TRANS86 <имя_файла>.<расширение>. Независимо от исходного расширения выходной файл будет называться <имя_файла>.A86 и появится на том же диске, что и входной файл. Файл с именем TRNTEST.Z80 включен для демонстрации транслятора. Весь язык ассемблера Z80 не переведен. […] [24]
  24. ^ ab 86-DOS – Disk Operating System for the 8086. Руководство пользователя (PDF) . Версия 0.3 (Предварительная редакция). Сиэтл, Вашингтон, США: Seattle Computer Products . 1980. Архивировано (PDF) из оригинала 2019-07-14 . Получено 2020-02-01 .
  25. ^ ab Paterson, Tim (2013-12-19) [1982-07-01]. "Microsoft DOS V1.1 и V2.0: Z80 to 8086 Translator version 2.21 /msdos/v11source/TRANS.ASM". Computer History Museum , Microsoft . Архивировано из оригинала 2019-11-12 . Получено 2014-03-25 .[25] (Примечание. Хотя издатели утверждают, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и TeleVideo PC DOS 2.11 .)
  26. ^ SCP 86-DOS – Single-User Disk Operating System for the 8086 (Preliminary ed.). Seattle, Washington, USA: Seattle Computer Products . 1980. Получено 18.01.2020 . […] Транслятор исходного кода может транслировать большую часть исходного кода Z80 в исходный код 8086 , приемлемый для ассемблера, после незначительной ручной коррекции. Это обеспечивает относительно быстрый и простой способ переноса программ между процессорами. […] Файл TRANS […] Транслятор исходного кода Z80-to-8086, вызываемый этой командой, по сути идентичен нашей версии, которая работает на Z80, которая описана в конце руководства по ассемблеру. Единственные отличия: 1. Транслятор называется TRANS, а не TRANS86, и он работает на 8086 под управлением 86-DOS , а не на Z80 под управлением CP/M . 2. Расширение выходного файла — «ASM», а не «A86». […][26]
  27. ^ Переводчик Z80 в 8086 (PDF) . Seattle Computer Products . стр. TRANS-1–TRANS-2 . Получено 19.01.2020 .(23 страницы)
  28. ^ Хьюз, Дэвид Б. (ноябрь 1982 г.). «CP/M-86 и MS-DOS: сравнительный анализ». Журнал PC . Операционные системы. Том 1, № 7. Software Communications, Inc. стр. 181–182, 187–190 [189]. Архивировано из оригинала 10.02.2020 г. Получено 10.02.2020 г. [ …] Впечатляющий и полезный набор утилит для разработки программного обеспечения является стандартной функцией MS-DOS . Программа, которая транслирует код 8080 или Z80 в исходный код 8086 , компоновщик и библиотека времени выполнения в сочетании с мощным ассемблером предоставляют программисту все необходимое для полного использования преимуществ 16-разрядного процессора ПК. Программа трансляции MS-DOS позволяет пользователю транслировать код, разработанный под CP/M-80 или SB-80 […] 8-битной операционной системой […] в MS-DOS 1.2 или 2.0 . Для запуска программ на 16-битных системах могут потребоваться некоторые изменения, выходящие за рамки простого трансляции, поэтому я предлагаю, чтобы этот инструмент в первую очередь использовался технически подготовленным пользователем. […]
  29. ^ ab Garetz, Mark (1980-12-22). "Согласно Garetz…". InfoWorld – Новости для пользователей микрокомпьютеров . Том 2, № 23. Popular Computing, Inc. стр. 12. ISSN  0199-6649. Архивировано из оригинала 01.02.2020 . Получено 18.01.2020 . […] На прошлой неделе прошла полугодовая встреча по обмену компьютерами в Калифорнии . Это мероприятие организовано Джоном Крейгом […] Sorcim […] дебютировала […] на выставке […] Их другим продуктом был TRANS-86. TRANS-86 возьмет любой файл исходного кода CP/M- совместимого 8080 / 8085 / Z-80 и переведет его в код 8086. Затем вы можете собрать новый файл с помощью ACT-86. […]
  30. ^ Блюменфельд, Дэн (1982-12-04). "Транслятор Z80 в 8086". Группа новостей : fa.info-cpm. Архивировано из оригинала 2020-01-16 . Получено 2020-01-15 .[27]
  31. ^ "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 . […] ПОЧЕМУ? ГИБКОСТЬ. Процессор CompuPro 85/88 работает с CP/M 80, 86, MP/M II и MP/M 86. Мы предлагаем WORDSTAR dBASE II SUPERCALC множество языков, трансляторы 8080 в 8088 и многое другое! СОВМЕСТИМОСТЬ. Наши системы могут использовать утилиты CP/M 2.2 для написания программ для IBM PC. Вы просто создаете исходный код 8088 (либо пишете его в своем любимом редакторе CP/M 80, либо переводите его с помощью TRANS 86 от Sorcim ), выполняете кросс-ассемблирование исходного кода (с помощью ACT86 от Sorcim), связываете свой hex-файл (с помощью команды LOAD от CP/M 80), переводите его на IBM PC (с помощью программы CPM-IBM от G&G) и запускаете его на своем IBM PC! Эта процедура НЕ требует MS-DOS! […] ПОЧЕМУ? ГИБКОСТЬ. Процессор CompuPro 85/88 запускает CP/M 80 и 86 или MS-DOS. Мы предлагаем WORDSTAR, dBASE II, TRANS86, XLT86, ACT86, SUPERCALC, CBASIC, MBASIC, MFORTRAN и многое другое! […][28] [29]
  32. ^ Уоррен, младший, Джим С. (июль 1982 г.). "Sorcim' Somethin'" (PDF) . Silicon Gulch Gazette . Rumors Mongered Here. Том 7, № 30. Вудсайд, Калифорния, США: Computer Faire . стр. 1, 2, 4, 6, 11, 14, 15 [11] . Получено 15 января 2020 г. . […] Sorcim только что завершила покупку ISA . […] У них также есть транслятор 8080-в-8086 – Trans-86 – работающий уже больше года […]
  33. ^ abcde Барри, Тим (1982-04-05). "XLT-86, служебная программа CP/M от Digital Research". InfoWorld – Newsweekly for Microcomputer Users . Software Review. Vol. 4, no. 13. Popular Computing, Inc. pp. 40–41, 53. ISSN  0199-6649. Архивировано из оригинала 2020-02-01 . Получено 2020-01-25 . […] XLT-86 1.1 […] XLT-86 — это аналитическая программа-транслятор, написанная на PL/I-80 . Она считывает всю исходную программу 8080, собирает ее в машинный код, анализирует использование регистров, памяти и флагов и выдает оптимизированную программу на языке ассемблера 8086 . […] Также существует версия XLT-86 для тех из вас, у кого есть доступ к VAX 11/750 или 11/780 . Эта версия может переводить гораздо более объемные программы. Она также стоит 8000 долларов. […] В то время как транслятор добавляет некоторые метки и приравнивает их к исходной программе в рамках перевода, все оригинальные комментарии и метки программы передаются в нетронутом виде в переведенную программу. […] Трансляция программы выполняется в пять этапов. Во-первых, программа сканируется и собирается для получения значений и местоположений символов. Во-вторых, структура программы анализируется и разлагается на базовые блоки . В-третьих, базовые блоки анализируются для определения потока программы и использования ресурсов. В-четвертых, данные о структуре блока и распределении регистров собираются в листинг для пользователя. В-пятых, информация о потоке и исходная программа используются для создания исходной программы 8086. […]
  34. ^ Килдалл, Гэри Арлен (1982-04-19). Свейн, Майкл ; Фрейбергер, Пол ; Маркофф, Джон Грегори (ред.). «Основатель Digital Research обсуждает свой взгляд на бизнес». InfoWorld – Newsweekly for Microcomputer Users . Специальный раздел: CP/M. Том 4, № 15. Popular Computing, Inc. стр. 23–24. ISSN  0199-6649. Архивировано из оригинала 01.02.2020 . Получено 17.01.2020 . […] Килдалл: […] Полтора года назад я, вероятно, тратил 75% своего времени на бизнес и 25% на программирование. XLT-86 был продуктом, над которым я работал в то время, и мне потребовалось девять месяцев, чтобы сделать его. Если бы я мог сосредоточиться на этом проекте, он занял бы три месяца. […]
  35. ^ Килдалл, Гэри Арлен (июнь–июль 1982 г.). Баннелл, Дэвид Хью ; Эдлин, Джим (ред.). «Гэри Килдалл – Человек, создавший CP/M: Создатель CP/M – эксклюзивное интервью для ПК с пионером программного обеспечения Гэри Килдаллом». Журнал ПК . Операционные системы. Том 1, № 3. Software Communications, Inc. стр. 32–38, 40 [35] . Получено 17 января 2020 г. [ …] ПК: Каковы некоторые сложности, связанные с переводом программы из формы 8080 в форму 8086 ? Килдалл : Прямые переводы на уровне исходной программы можно выполнять практически механически. Например, инструкция 8080 «Добавить немедленно 5» превращается в «Добавить AL 5» на 8086 — очень простая трансляция самих кодов операций. Сложность механической трансляции возникает из-за таких ситуаций: инструкция 8080 DAD H берет регистр HL и добавляет к нему DE. Для 8086 эквивалентной инструкцией будет что-то вроде ADD DX BX, что нормально, никаких особых проблем. Вы просто говорите, что регистр DX такой же, как HL, а BX такой же, как DE. Проблема в том, что инструкция 8086 имеет побочный эффект установки флага нуля, а инструкция 8080 — нет. При механической трансляции вы в конечном итоге делаете что-то вроде сохранения флагов, восстановления флагов, выполнения некоторых сдвигов и поворотов и так далее. Это добавляет около пяти или шести дополнительных инструкций, чтобы получить тот же семантический эффект. В коде 8080 есть много последовательностей, которые производят очень странные последовательности в коде 8086; они просто не очень хорошо отображаются из-за регистров флагов и тому подобного. Способ, которым мы передаем программное обеспечение, называется XLT-86. Он вышел около шести месяцев назад. ПК: Под «лучшим» кодом вы подразумеваете меньший размер? Килдалл: На двадцать процентов меньше, чем если бы вы просто взяли каждый код операции и сделали прямую трансляцию, сохранив регистры для сохранения семантики. ПК: Каков размер транслируемой программы по сравнению с версией 8080? Килдалл: Если вы возьмете программу 8080, перенесете ее на 86-битную платформу и сделаете трансляцию XLT-86, вы обнаружите, что она примерно на 10–20 процентов больше. С 16-битными машинами сложнее решать все проблемы; вы получаете коды операций, которые в среднем немного больше. Интересное явление заключается в том, что одна из причин, по которой вы не получаете огромного увеличения скорости в 16-битном мире, заключается в том, что вы запускаете больше кодов операций по шине данных. […]
  36. ^ Хьюитт, Роберт; Юбэнкс, Гордон ; Роландер, Томас «Том» Алан ; Лоус, Дэвид; Мишель, Говард Э.; Халла, Брайан; Уортон, Джон Харрисон ; Берг, Брайан; Су, Вейлиан; Килдалл, Скотт ; Кампе, Билл (25.04.2014). Лоус, Дэвид (ред.). «Наследие Гэри Килдалла: посвящение CP/M IEEE Milestone» (PDF) (транскрипция видео). Пасифик-Гроув, Калифорния, США: Музей компьютерной истории . Номер ссылки CHM: X7170.2014. Архивировано (PDF) из оригинала 27.12.2014 . Получено 19.01.2020 . […] Роландер : Я уже упоминал ранее, что Гэри любил подходить к проблеме как архитектор. […] И он рисовал самые красивые изображения своих структур данных. […] И когда он закончил это […] и убедился, что структуры данных теперь верны, он входил в невероятный маниакальный режим кодирования. Он мог работать по 20 часов в день […] он просто исчезал в эти периоды времени. В паре таких случаев, когда он что-то запускал в первый раз, что могло происходить среди ночи. И все вы, кто писал программное обеспечение, видели, например, что когда оно впервые появлялось на экране, вы должны были кому-то об этом рассказать. Моя жена Лори скажет вам, что у меня было несколько таких звонков среди ночи, LOGO был одним из примеров, XLT 86 был другим, когда он запустил его в первый раз, и ему нужно было, чтобы кто-то это увидел. Поэтому неважно, который был час, он звонил мне, я должен был прийти и посмотреть, как оно работает. […][30] [31] (33 страницы)
  37. ^ "XLT86 уменьшает усилия по преобразованию при переводе программ на языке ассемблера" (PDF) . Новости Digital Research – для пользователей Digital Research везде . Обновление продукта. Том 1, № 1. Пасифик-Гроув, Калифорния, США: Digital Research, Inc. Ноябрь 1981 г. стр. 2, 7. Четвертый квартал . Получено 18.01.2020 . […] Транслятор ассемблерного кода с 8 на 16 бит теперь доступен в Digital Research . Названный XLT86, он разработан, чтобы помочь облегчить трудоемкий процесс преобразования программных продуктов CP/M с микрокомпьютеров на базе 8080 на микрокомпьютеры на базе 8086. XLT86 можно использовать для перевода любых программ на языке ассемблера, совместимых с форматом ассемблера ASM, MAC или RMAC компании Digital Research. Транслятор программ XLT86 сначала считывает программу на языке ассемблера 8080, а затем создает выходной файл, содержащий операторы на языке ассемблера 8086, приемлемые для ассемблера Digital Research ASM-86. В отличие от других преобразователей кода 8086, которые транслируют одну инструкцию 8080 в десять инструкций 8086, XLT86 выполняет обширный анализ потока данных для определения использования регистров во всей исходной программе. Информация, собранная в ходе этого анализа, используется во время трансляции программы для устранения ненужных операций сохранения и восстановления флагов. «Получающаяся в результате программа 8086 проще и компактнее, чем эквивалентные программы, созданные другими трансляторами», — говорит Курт Геске из маркетинговой группы Digital Research. «Более того, XLT86 позволяет OEM-производителям, конечным пользователям и поставщикам программного обеспечения сохранять свои инвестиции в программы на языке ассемблера на базе 8080 при переходе на 16-разрядные компьютеры на базе 8086 за счет сокращения усилий по преобразованию». Программы, транслируемые XLT86, работают как на CP/M-86 , так и на MP/M-86 […] XLT86 доступен немедленно. Он работает на любой 8-битной системе CP/M или MP/M , или под операционной системой VMS для использования на миникомпьютерах серии VAX корпорации Digital Equipment . Версия CP/M стоит 150 долларов . Версия VAX продается за 8000 долларов. […]
  38. ^ Kildall, Gary Arlen (1973-10-01). "Унифицированный подход к глобальной оптимизации программ" (PDF) . Труды 1-го ежегодного симпозиума ACM SIGACT-SIGPLAN по принципам языков программирования (POPL) . POPL '73. Бостон, Массачусетс, США: 194–206. doi :10.1145/512927.512945. hdl :10945/42162. S2CID  10219496. Архивировано (PDF) из оригинала 29-06-2017 . Получено 20-11-2006 .
  39. ^ Килдалл, Гэри Арлен (май 1972). Глобальная оптимизация выражений во время компиляции (диссертация на степень доктора философии). Сиэтл, Вашингтон, США: Вашингтонский университет , Computer Science Group. Диссертация № 20506, Технический отчет № 72-06-02.
  40. ^ ab XLT86 – Транслятор языка ассемблера 8080 в 8086 – Руководство пользователя (PDF) (Первое издание). Pacific Grove, Калифорния, США: Digital Research, Inc. Сентябрь 1981 г. Копия archive.org. Архивировано (PDF) из оригинала 2016-11-18 . Получено 2016-11-18 .
  41. ^ "XLT86 для CP/M-80". Digital Research . Архивировано из оригинала 2020-01-16 . Получено 2020-01-18 .(Примечание. Этот ZIP-архив содержит исполняемый файл CP/M-80 XLT86.COM [22 КБ], а также два файла наложений XLT00.OVL [8 КБ] и XLT01.OVL [9 КБ].)
  42. ^ Goldfarb, Ben (1982-12-09). "Re: 8080 to 8086 translation". Группа новостей : fa.info-cpm. Архивировано из оригинала 2020-02-01 . Получено 2020-01-18 . […] Программа XLT86 занимает приблизительно 30 Кбайт основной памяти. Оставшаяся часть памяти, до основания CP/M , хранит программный граф, представляющий транслируемую программу 8086 […] Система CP/M 64 Кбайт позволяет транслировать программы 8080 размером приблизительно до 6 Кбайт. […][32] [33]
  43. ^ Уортон, Джон Харрисон (1994-08-01). "Гари Килдалл, пионер отрасли, умер в возрасте 52 лет: создал первые языки микрокомпьютеров, дисковые операционные системы". Microprocessor Report . 8 (10). MicroDesign Resources Inc. (MDR). Архивировано из оригинала 2016-11-18 . Получено 2016-11-18 . […] По иронии судьбы, многие из методов, которые Гэри был пионером, сейчас заново открываются, десять лет спустя. Apple и DEC рекламируют двоичную перекомпиляцию как "новую" технологию для переноса существующего программного обеспечения на архитектуру PowerPC или Alpha . На самом деле, DRI представила двоичный рекомпилятор 8080 в 8086 в начале 1980-х годов. […]
  44. ^ "Премия SPA д-ру Гэри А.Килдаллу: обладатель премии SPA Lifetime Achievement Award 1995". Ассоциация издателей программного обеспечения (SPA). 1995-03-13. Архивировано из оригинала 2019-12-21 . Получено 2019-12-21 – через www.digitalresearch.biz. […] Килдалл основал Digital Research, Inc. (DRI) в 1976 году, которая сейчас является частью Novell . […] В 1980-х годах DRI представила двоичный рекомпилятор . […]
  45. ^ Свейн, Майкл (1997-04-01). "Гэри Килдалл и коллегиальное предпринимательство". Журнал доктора Добба . Архивировано из оригинала 2007-01-24 . Получено 2006-11-20 . В марте 1995 года Ассоциация издателей программного обеспечения посмертно почтила Гэри за его вклад в компьютерную индустрию. Они перечислили некоторые из его достижений: […] В 1980-х годах через DRI он представил двоичный рекомпилятор . […]
  46. ^ abc 2500 AD Software (1984-12-11). «Суперассемблеры плюс крупнейший в мире выбор кросс-ассемблеров». PC Magazine (Реклама). Том 3, № 24. Энглвуд, Колорадо, США: PC Communications Corp. стр. 166–167. ISSN  0745-2500. Архивировано из оригинала 01.02.2020 . Получено 24.01.2020 . […] 8086/88 Assembler With Translator $99.50 Доступно для MSDOS, PCDOS или CP/M-86 […] Этот пакет также включает […] транслятор исходного кода 8080 в 8086 (без ограничений на размер программы для перевода) […] Пакет кросс-разработки Z-8000 $199.50 […] Этот мощный пакет включает транслятор исходного кода языка ассемблера Z-80/8080 в Z-8000 […] Трансляторы предоставляют исходный код Z-8000 из исходного кода Intel 8080 или Zilog Z-80. Исходный код Z-8000, используемый этими пакетами, находится в уникальном синтаксисе 2500AD с использованием мнемоники Zilog, разработанной для упрощения перехода от написания кода Z-80 к Z-8000 […] 8086 и Z-8000 XASM включают трансляторы исходного кода […](Примечание. 8086/88 XASM доступен для Z-80 CP/M, Zilog System 8000 UNIX , Olivetti M-20 PCOS ; Z-8000 XASM для Z-80 CP/M, MS-DOS, CP/M-86, Olivetti M-20 PCOS.)
  47. ^ "Zilog представляет модульную систему разработки". Computerworld – Newsweekly for the Computer Community . Том XIII, № 34. Купертино, Калифорния, США: Computerworld, Inc. 1979-08-20. стр. 46. ISSN  0010-4841. Архивировано из оригинала 01.02.2020 . Получено 24.01.2020 . […] Zilog, Inc. представила серию модульных и расширяемых систем разработки продуктов (PDS) для проектов микрокомпьютеров на базе Z8 , Z80 и Z8000 . Все четыре версии системы PDS 8000 — модели 10, 15, 25 и 30 — имеют […] Стандартной функцией каждой системы является пакет разработки программного обеспечения Z8000, который включает в себя процедуру управления файлами ZDOSII , высокоуровневые структурированные ассемблеры PLZ/ASM, транслятор Z80/Z8000 и макропроцессор Z8000 L и MACP. […] Модели 10 и 25 имеют те же характеристики, что и модели 15 и 30 соответственно. но 10 и 25 не включают модуль разработки Z8000. Модель PDS 10 стоит 10 485 долларов США; модель 15 — 11 995 долларов США; модель 25 — 20 000 долларов США; и модель 35 — 21 500 долларов США. Все четыре системы доступны через 30 дней после получения заказа. […]
  48. ^ Orlansky, Jesse, ed. (1979). Труды 27–29 ноября 1979 г. – 1-я конференция по межведомственному/отраслевому учебному оборудованию. Центр. стр. 413. Технический отчет NAVTRAEQUIPCEN. Архивировано из оригинала 01.02.2020 г. . Получено 24.01.2020 г. . […] Таблица 1. Характеристики 16-разрядного микропроцессора […] Zilog 8000 […] Программное обеспечение […] Zilog планирует поддерживать Z8000 с помощью трансляторов для PLZ, BASIC , COBOL и FORTRAN . Они позволят преобразовывать код Z80 в код Z8000, поскольку набор Z8000 является надмножеством Z80. […]
  49. ^ Система разработки PDS 8000 — комплексный подход к проектированию систем (краткое описание продукта). Zilog . Январь 1980 г. Получено 24.01.2020 г. [ …] Z8000 TRANSLATOR: предоставляет быстрые средства для преобразования существующей программы на языке ассемблера Z80 в код Z8000 и формат программы PLZ/ASM. […][34] [35]
  50. ^ Томас, Ребекка А.; Йейтс, Джин Л. (1981-05-11). «Книги, платы и программное обеспечение для новых 16-разрядных процессоров». InfoWorld – Газета для сообщества микрокомпьютеров . Том 3, № 9. Popular Computing, Inc. стр. 42–43. ISSN  0199-6649. Архивировано из оригинала 01.02.2020 . Получено 24.01.2020 . […] Компания Digital Research также объявила о планах по версии CP/M для Z8000 . Прикладное программное обеспечение будет перенесено на Z8000, когда станет доступно больше программного обеспечения для разработки. Необходим коммерчески доступный транслятор с Z80 на Z8000. […]
  51. ^ ab Guzis, Charles "Chuck" P. (2009-01-21) [2009-01-17]. "Re: CP/M или подобная ОС для 64K Z8002?". Форум Vintage Computer . Жанр: CP/M и MP/M. Архивировано из оригинала 2020-01-16 . Получено 2020-01-15 . […] и Zilog , и AMC предлагали программы перевода с Z80 на Z8000 . Как и переводчик Intel 8080 на 8086 , это приводило к немедленному раздуванию, если вы не были готовы вручную оптимизировать результат. Большая часть раннего кода MS-DOS была автоматически переведена и изменена для кода 8080 CP/M. Я знаю, что большая часть SuperCalc для ПК была, например. Ранние (например, 3.3) версии Wordstar для DOS, вероятно, также были. […] Существовали трансляторы исходного кода Z80 в Z8000, но это был не простой процесс («строгий» и «расслабленный» режимы; иногда одна инструкция Z80 в несколько инструкций Z8000). 8086 гораздо ближе к 8080, чем Z8000 к Z80. […]
  52. ^ "2500 AD Software 8080/Z-80 to Z8000 source code translater v2.06b". 2500 AD Software, Inc. 1982. Архивировано из оригинала 2020-02-01 . Получено 2020-01-24 .[36]
  53. ^ "802Z8000.ZIP 2500 AD Software 8080/Z-80 to Z8000 source code translate v2.06e". 2500 AD Software, Inc. Архивировано из оригинала 2020-02-01 . Получено 2020-01-24 .[37]
  54. ^ ab Bodrato, Stefano (2008-10-30). "исходный код to86.awk". GitHub . 1.6. Архивировано из оригинала 2022-01-05 . Получено 2022-01-05 .
  55. ^ Каллахан, Брайан (2021-10-23) [2021-07-06, 2021-06-06]. "Транслятор языка ассемблера Intel 8080 CP/M 2.2 в Intel 8086/8088 MS-DOS". 8088ify 1.2. Архивировано из оригинала 2022-03-31 . Получено 2021-11-28 .[38][39][40][41]
  56. ^ "Список языков, компилируемых в JS". GitHub . Архивировано из оригинала 2020-01-23 . Получено 2018-03-11 .
  57. ^ theolivenbaum (13.11.2021). "h5 🚀 - компилятор C# в JavaScript". GitHub . Получено 14.11.2021 .
  58. ^ "J2ObjC". ​​Архивировано из оригинала 2019-10-22 . Получено 2019-10-22 .
  59. ^ "JSweet". Архивировано из оригинала 2019-12-14 . Получено 2019-12-14 .
  60. ^ "Майя" . Получено 2020-05-13 .
  61. ^ «Свифтифай».
  62. ^ "C->Go translater". GitHub . Архивировано из оригинала 2018-12-07 . Получено 2018-01-11 .
  63. ^ "Go 1.5 Release Notes". Архивировано из оригинала 2020-02-01 . Получено 2018-01-11 .
  64. ^ Кокс, Расс. "Go 1.3+ Compiler Overhaul". Архивировано из оригинала 2020-01-09 . Получено 2018-01-11 .
  65. ^ ab "Репозиторий C2Rust". GitHub . 2022-04-15.
  66. ^ "Обзор". Js_of_ocaml - Справочное руководство . Ocsigen. Архивировано из оригинала 2018-12-08 . Получено 2014-10-08 .
  67. ^ J2Eif Research Page – Chair of Software Engineering. Se.inf.ethz.ch. doi :10.1007/978-3-642-21952-8_4. Архивировано из оригинала 2020-01-01 . Получено 2014-07-08 .
  68. ^ "C2Eif Research Page – Chair of Software Engineering". Se.inf.ethz.ch. Архивировано из оригинала 2020-01-01 . Получено 2014-07-08 .
  69. ^ "Skip". Архивировано из оригинала 2024-05-18 . Получено 2024-05-17 .
  70. ^ "Swiftify Objective-C to Swift Converter" . Получено 2017-11-14 .
  71. ^ "Runtime Converter". Архивировано из оригинала 2019-07-10 . Получено 2017-11-14 .

Дальнейшее чтение

Внешние ссылки