Amsterdam Compiler Kit (ACK) — межплатформенный набор компиляторов и инструментов, написанный Эндрю Таненбаумом и Серилом Якобсом, с 2005 года поддерживаемый Дэвидом Гивеном Time line on official website..

История Известность ACK обусловлена тем фактом, что в начале 1980-х годов это была одна из первых переносимых систем компиляции, разработанная для поддержки нескольких исходных языков и целевых платформ.

ACK был известен как собственный инструментарий компилятора операционной системы MINIX до тех пор, пока пользовательское пространство MINIX не было в значительной степени заменено на NetBSD (MINIX 3.2.0), а Clang не был принят в качестве системного компилятора.

Изначально ACK представлял собой программное обеспечение с закрытым исходным кодом (распространялся в откомпилированном виде вместе с MINIX), но в апреле 2003 года он был выпущен под лицензией BSD с открытым исходным кодом.

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

ACK поставляется с универсальным компоновщиком и библиотекарем, способным манипулировать файлами в собственном формате ACK на основе a.out. ACK работает с файлами, содержащими как код EM, так и собственный машинный код, однако код EM не может быть связан с собственным машинным кодом без предварительного перевода двоичного файла EM.

Языки программирования

C Pascal Modula-2 Occam BASIC

Процессоры

6502 6800 (только язык ассемблера) 6805 (только язык ассемблера) 6809 (только язык ассемблера) ARM 8080 Z80 Z8000 i86 i386 68000 68020 68040 NS32016 S2650 (только язык ассемблера) SPARC VAX4 PDP-11

Версия 6.0 поддерживает только архитектуры i86 и i386, но присутствует поддержка арифметики чисел с плавающей запятой, если доступен FPU, а также архитектуру 8080.

Платформы

6502 — BBC Microcomputer ARM — Acorn Archimedes i80 — Hermac, Nascom Z80 — Hermac, Nascom, ограниченная поддержка CP/M Z8000 — без ОС i86 — PC/IX i386 — Xenix v3, Xenix SysV 68000 — 16 bit: MinixST; 32-bit: SunOS, Mantra, PMDS 68020 — SysV NS32016 — без ОС SPARC — Solaris, SunOS VAX4 — 4.2BSD PDP11 — Version 7 Unix

Версия 6.0 поддерживает только следующие платформы:

i80 — CP/M i86 — PC86 (загрузочные образы дискет) i386 — Linux (исполняемые файлы ELF)

См. также GNU Compiler Collection

Примечания

Ссылки Домашняя страница ACK Amsterdam Compiler Kit (ACK) information sheet

Категория:Компиляторы Категория:Компиляторы Си Категория:Компиляторы Паскаля Категория:Компиляторы Модулы-2 Категория:Программное обеспечение с лицензией BSD Категория:Свободное программное обеспечение, написанное на Си Категория:Свободные компиляторы и интерпретаторы Категория:MINIX Категория:Информационные технологии в Нидерландах