Амстердамский компилятор
Разработчик(и) | Эндрю Таненбаум , Сериэл Джейкобс; Сейчас: Дэвид Гивен |
---|---|
Первоначальный выпуск | начало 1980-х годов |
Стабильная версия | 6.0pre5 / 2 июня 2016 г |
Репозиторий | |
Написано в | С |
Операционная система | Миникс , Unix-подобный |
Тип | Переназначаемый компилятор |
Лицензия | Лицензии BSD |
Веб-сайт | лавировать |
Amsterdam Compiler Kit (ACK) — это перенастраиваемый набор компиляторов и набор инструментов, написанный Эндрю Таненбаумом и Сериэл Джейкобс , с 2005 года поддерживаемый Дэвидом Гивеном . [1] Он имеет интерфейсы для следующих языков программирования : C , Pascal , Modula-2 , Occam и BASIC .
История [ править ]
Известность ACK связана с тем, что в начале 1980-х годов это была одна из первых портативных систем компиляции, предназначенная для поддержки нескольких исходных языков и целевых платформ. [2] [3]
ACK был известен как собственный набор инструментов компилятора MINIX MINIX до тех пор, пока пользовательская среда не была в значительной степени заменена средой NetBSD (MINIX 3.2.0), а Clang не был принят в качестве системного компилятора.
Первоначально это было программное обеспечение с закрытым исходным кодом (что позволяло двоичные файлы в особых случаях распространять для MINIX), но в апреле 2003 года оно было выпущено под лицензией BSD .
Принцип работы [ править ]
Максимальная переносимость достигается за счет использования промежуточного языка с использованием байт-кода , называемого EM . Каждый языковой интерфейс создает объектные файлы EM , которые затем обрабатываются несколькими универсальными оптимизаторами, а затем преобразуются серверной частью в собственный машинный код .
ACK поставляется с общим компоновщиком и библиотекарем, способным манипулировать файлами в собственном формате ACK на основе a.out ; он будет работать как с файлами, содержащими код EM, так и с собственным машинным кодом. Однако код EM нельзя связать с собственным машинным кодом без предварительной трансляции двоичного кода EM.
Целевые процессоры [ править ]
Серверные части ACK могут создавать собственный машинный код для широкого спектра процессоров, даже начиная с небольших 8-битных процессоров.
- 6502
- 6800 (только ассемблер)
- 6805 (только ассемблер)
- 6809 (только ассемблер)
- РУКА
- 8080 *
- Z80
- Z8000
- Интел 8086 *
- я386
- 68000
- 68020
- 68040
- НС32016
- S2650 (только ассемблер)
- СПАРК
- ВОСК4
- ПДП-11
- Broadcom VideoCore IV (BCM2708) *
* Версия 6.0
См. также [ править ]
Ссылки [ править ]
- ^ «Амстердамский компилятор» . 2005. Хронология на официальном сайте.
- ^ Таненбаум, Эндрю С; ван Ставерен, Х.; Кейзер, Э.Г.; Стивенсон, JW (1983). «Практический набор инструментов для создания портативных компиляторов» . Коммуникации АКМ . 26 (9): 654–660. дои : 10.1145/358172.358182 . hdl : 1871/2605 . S2CID 1217657 .
- ^ А. В. Ахо, Р. Сетхи и Дж. Д. Ульман (1986). Составители: принципы, методы и инструменты («Книга Дракона») . Аддисон-Уэсли. п. 511 . ISBN 0-201-10088-6 .
Внешние ссылки [ править ]
- Официальный сайт
- Официальный репозиторий исходного кода , включая журнал изменений ( GitHub )
- БЕЙСИК-компиляторы
- Компиляторы C (языка программирования)
- Информатика в Нидерландах
- Бесплатные компиляторы и интерпретаторы
- Информационные технологии в Нидерландах
- МИНИКС
- Компиляторы Модулы-2
- Компиляторы Паскаля (языка программирования)
- Программное обеспечение, использующее лицензию BSD
- Заглушки бесплатного программного обеспечения и программного обеспечения с открытым исходным кодом