LCC (kompilator) - LCC (compiler)

LCC
Deweloper(zy) Dave Hanson i Chris Fraser
Pierwsze wydanie 1994 ; 27 lat temu ( 1994 )
Wersja stabilna
4,2 / 4 września 2002 ; 18 lat temu ( 2002-09-04 )
Napisane w C
System operacyjny Wieloplatformowy
Rodzaj Kompilator
Licencja Licencja LCC
Stronie internetowej drh .github .io /lcc /

LCC ("Local C Compiler" lub "Little C Compiler") to mały, retargetable kompilator dla języka programowania ANSI C. Chociaż jego kod źródłowy jest dostępny bezpłatnie do użytku osobistego, nie jest to oprogramowanie typu open source ani darmowe zgodnie ze zwykłymi definicjami, ponieważ produkty pochodzące z LCC mogą nie być sprzedawane, chociaż mogą być sprzedawane komponenty niepochodzące od LCC. Został opracowany przez Chrisa Frasera i Davida Hansona .

LCC

LCC ma być łatwe do zrozumienia i dobrze udokumentowane; jego projekt jest opisany w książce Frasera i Hansona A Retargetable C Compiler: Design and Implementation . Książka zawiera większość kodu źródłowego kompilatora w wersji 3.6, który został napisany jako program pisany przy użyciu narzędzia noweb . W lipcu 2011 r. aktualna wersja LCC to 4.2, ale znaczna część książki nadal odnosi się do tej wersji. Główna zmiana od czasu publikacji książki dotyczy interfejsu generatora kodu, który jest opisany w osobnym dokumencie.

Kod źródłowy LCC to około 20 000 wierszy, czyli znacznie mniej niż wiele głównych kompilatorów.

LCC może generować kod dla kilku architektur procesorów, w tym Alpha , SPARC , MIPS i x86 ; istnieje również backend LCC, który generuje Common Intermediate Language firmy Microsoft .

Projekty uwzględniające LCC

Trzęsienie 3

id Software „s id Tech 3 silnik bazuje na zmodyfikowanej wersji LCC skompilować kod źródłowy każdego modułu gier lub osób trzecich mod do kodu bajtowego kierowania swoją wirtualną maszynę . Oznacza to, że moduły są nieświadome systemu poza wywołaniami systemowymi i ograniczonym zakresem systemu plików oferowanym przez silnik, co ma na celu zmniejszenie zagrożenia stwarzanego przez złośliwych autorów modów. Inną kwestią jest to, że gry i mody napisane dla silnika są przenośne bez ponownej kompilacji; tylko maszyna wirtualna musi zostać przeniesiona na nowe platformy w celu wykonania modułów.

lcc-win

lcc-win32 to zintegrowany pakiet środowiska programistycznego dla Microsoft Windows, który zawiera rozwidlenie LCC. Istnieje odpowiednik amd64 o nazwie lcc-win64, który jest dostępny od 15 kwietnia 2012 roku.

Pelles C

Kompilator Pelles C jest mocno zmodyfikowaną wersją LCC, zapewniającą obsługę C11 i C17, obsługę amd64 oraz dodatkowe techniki optymalizacji, takie jak rozwijanie inline .

Matematyka

W przypadku 32-bitowych komputerów z systemem Windows Lcc jest używany domyślnie, jeśli żaden inny kompilator nie jest zainstalowany dla MathWorks MATLAB i powiązanych produktów.

Licencja

LCC jest bezpłatne do użytku osobistego i może być rozpowszechniane pod warunkiem, że wszystkie nośniki dystrybucyjne i dokumentacja produktu to potwierdzają. Licencja LCC opiera się na przykładach w wielu przypadkach. LCC nie może być sprzedawane dla zysku, ale może być dołączone do innego oprogramowania sprzedawanego dla zysku, pod warunkiem, że samo LCC jest rozpowszechniane za darmo. Licencje na użytkownika i nieograniczone korzystanie są dostępne po skontaktowaniu się z Addison-Wesley, w szczególności w przypadku kompilatorów języków takich jak C++, dla których kompilator C może stanowić znaczną część jego pracy.

Zobacz też

Bibliografia

Bibliografia