LCC (компилятор)

Компилятор С
ЛКК
Разработчик(и)Дэйв Хэнсон и Крис Фрейзер
Первоначальный выпуск1994 ; 31 год назад ( 1994 )
Стабильный релиз
4.2 / 4 сентября 2002 г. ; 22 года назад ( 2002-09-04 )
Написано вС
Операционная системаКроссплатформенный
ТипКомпилятор
ЛицензияЛицензия LCC [1]
Веб-сайтdrh.github.io/lcc/

LCC («Local C Compiler» или «Little C Compiler») — небольшой, перенастраиваемый компилятор для языка программирования 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, который генерирует общий промежуточный язык Microsoft . [5]

Проекты с использованием LCC

Землетрясение 3

Движок id Tech 3 от id Software использует модифицированную версию 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]

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

Ссылки

  1. ^ abc "LCC License". GitHub . Получено 5 июля 2011 г.
  2. ^ "Официальный репозиторий Github". GitHub .
  3. ^ Фрейзер, Кристофер В.; Хансон, Дэвид Р. (июль 2001 г.). "Интерфейс генерации кода lcc 4.x" (PDF) . Microsoft Research. Технический отчет MSR-TR-2001-64 . Получено 5 июля 2011 г. .
  4. ^ Sao-Jie Chen, Guang-Huei Lin, Pao-Ann Hsiung, Yu-Hen Hu. "Совместное проектирование аппаратного и программного обеспечения мультимедийной платформы SOC". Раздел 5.6.1: Инфраструктура компилятора LCC. [1]
  5. ^ Хансон, Дэвид Р. (март 2004 г.). "Lcc.NET: нацеливание на .NET Common Intermediate Language из стандартного языка C" (PDF) . Microsoft Research . Получено 22 июля 2012 г. .
  6. ^ "Файл .plan Джона Кармака, 24 июля 1999 г.". Архивировано из оригинала 2008-05-12.
  7. ^ lcc-win: Компиляторная система для Windows
  8. ^ Обзор Пеллеса С.
  9. ^ "Build MEX-Files". Архивировано из оригинала 14 сентября 2012 г. Получено 6 ноября 2013 г.
  • Официальная домашняя страница Pelles C IDE

Библиография

  • Фрейзер, Кристофер В.; Хансон, Дэвид Р. (1995). Перенацеливаемый компилятор C: проектирование и реализация . Addison-Wesley. ISBN 0-8053-1670-1.
Взято с "https://en.wikipedia.org/w/index.php?title=LCC_(компилятор)&oldid=1196820642"