LCC (составитель)
Разработчик(и) | Дэйв Хэнсон и Крис Фрейзер |
---|---|
Первоначальный выпуск | 1994 год |
Стабильная версия | 4.2 / 4 сентября 2002 г |
Написано в | С |
Операционная система | Кросс-платформенный |
Тип | Компилятор |
Лицензия | Лицензия ООО [1] |
Веб-сайт | HR |
LCC («Локальный компилятор C» или «Маленький компилятор C») — это небольшой перенастраиваемый компилятор для ANSI C. языка программирования Хотя исходный код доступен бесплатно для личного использования, [2] это не программное обеспечение с открытым исходным кодом или бесплатное программное обеспечение в соответствии с обычными определениями, поскольку продукты, полученные на основе LCC, не могут продаваться, хотя компоненты, не полученные на основе LCC, могут продаваться. [1] Его разработали Крис Фрейзер и Дэвид Хэнсон .
ООО
[ редактировать ]LCC призван быть очень простым для понимания и хорошо документирован; его конструкция описана в книге Фрейзера и Хэнсона A Retargetable C Compiler: Design and Implementation . В книгу включена большая часть исходного кода компилятора версии 3.6, который был написан как грамотная программа с использованием noweb . По состоянию на июль 2011 года текущая версия LCC — 4.2, но большая часть книги по-прежнему относится к этой версии. Основное изменение с момента публикации книги касается интерфейса генератора кода, который описан в отдельном документе. [3]
Исходный код LCC составляет около 20 000 строк, что намного меньше, чем у многих крупных компиляторов. [4]
LCC может генерировать код для нескольких процессорных архитектур, включая Alpha , SPARC , MIPS и x86 ; существует также серверная часть LCC, которая генерирует Common Intermediate Language от Microsoft . [5]
Проекты с участием LCC
[ редактировать ]Квейк 3
[ редактировать ]id Software от id Tech 3 Движок использует модифицированную версию LCC для компиляции исходного кода каждого игрового модуля или стороннего мода в байт-код, предназначенный для его виртуальной машины . [6] Это означает, что модули не обращают внимания на систему, за исключением системных вызовов и ограниченной области файловой системы, предлагаемой движком, что предназначено для уменьшения угрозы, исходящей от авторов вредоносных модов. Еще одно соображение заключается в том, что игры и моды, написанные для этого движка, переносимы без перекомпиляции; только виртуальную машину необходимо портировать на новые платформы для выполнения модулей.
lcc-выигрыш
[ редактировать ]lcc-win32 — это интегрированный пакет среды разработки для Microsoft Windows , который включает в себя ответвление LCC. Существует аналог amd64 под названием lcc-win64, который доступен с 15 апреля 2012 года. [7]
Экскаваторы С
[ редактировать ]Компилятор Pelles C представляет собой сильно модифицированную версию LCC, обеспечивающую поддержку C11 , C17 , amd64, дополнительные методы оптимизации, такие как встроенное расширение. [8] и IDE .
MathWorks
[ редактировать ]Для 32-битных компьютеров Windows Lcc используется по умолчанию, если для MathWorks MATLAB и связанных продуктов не установлен другой компилятор. [9]
Лицензия
[ редактировать ]LCC бесплатен для личного использования и может распространяться при условии, что это подтверждается всеми носителями распространения и документацией по продукту. Лицензия LCC во многих случаях опирается на примеры. LCC не может продаваться с целью получения прибыли, но может быть включен в другое программное обеспечение, продаваемое с целью получения прибыли, при условии, что сам LCC распространяется бесплатно. Лицензии на пользователя и неограниченное использование можно получить, связавшись с Addison-Wesley, в частности, для компиляторов таких языков, как C++, для которых компилятор C может составлять большую часть работы. [1]
См. также
[ редактировать ]- Крошечный компилятор C
- Портативный компилятор C
- Маленький-C
- Сравнение интегрированных сред разработки
Ссылки
[ редактировать ]- ^ Jump up to: а б с «Лицензия ООО» . Гитхаб . Проверено 5 июля 2011 г.
- ^ «Официальный репозиторий Github» . Гитхаб .
- ^ Фрейзер, Кристофер В.; Хэнсон, Дэвид Р. (июль 2001 г.). «Интерфейс генерации кода lcc 4.x» (PDF) . Исследования Майкрософт. Технический отчет MSR-TR-2001-64 . Проверено 5 июля 2011 г.
- ^ Сао-Цзе Чен, Гуан-Хуэй Линь, Пао-Анн Сюн, Ю-Хен Ху.«Аппаратно-программное совместное проектирование мультимедийной SOC-платформы».Раздел 5.6.1: Инфраструктура компилятора LCC. [1]
- ^ Хэнсон, Дэвид Р. (март 2004 г.). «Lcc.NET: переход на общий промежуточный язык .NET из стандарта C» (PDF) . Исследования Майкрософт . Проверено 22 июля 2012 г.
- ^ «Файл Джона Кармака .plan, 24 июля 1999 г.» . Архивировано из оригинала 12 мая 2008 г.
- ^ lcc-win: система компилятора для Windows.
- ^ Обзор Пеллеса C
- ^ «Создать MEX-файлы» . Архивировано из оригинала 14 сентября 2012 года . Проверено 6 ноября 2013 г.
Внешние ссылки
[ редактировать ]Библиография
[ редактировать ]- Фрейзер, Кристофер В.; Хэнсон, Дэвид Р. (1995). Переназначаемый компилятор C: проектирование и реализация . Аддисон-Уэсли. ISBN 0-8053-1670-1 .