LCC (compilador) - LCC (compiler)

LCC
Desenvolvedor (s) Dave Hanson e Chris Fraser
lançamento inicial 1994 ; 27 anos atrás ( 1994 )
Versão estável
4.2 / 4 de setembro de 2002 ; 18 anos atras ( 04/09/2002 )
Escrito em C
Sistema operacional Plataforma cruzada
Modelo Compilador
Licença Licença LCC
Local na rede Internet drh .github .io / lcc /

LCC ("Local C Compiler" ou "Little C Compiler") é um pequeno compilador redirecionável para a linguagem de programação ANSI C. Embora seu código-fonte esteja disponível sem custo para uso pessoal, não é um software livre ou de código aberto de acordo com as definições usuais porque os produtos derivados do LCC não podem ser vendidos, embora os componentes não derivados do LCC possam ser vendidos. Foi desenvolvido por Chris Fraser e David Hanson .

LCC

O LCC pretende ser simples de entender e está bem documentado; seu design é descrito no livro A Retargetable C Compiler: Design and Implementation de Fraser e Hanson . O livro inclui a maior parte do código-fonte da versão 3.6 do compilador, que foi escrito como um programa literário usando o noweb . Em julho de 2011, a versão atual do LCC era 4.2, mas grande parte do livro ainda se aplica a esta versão. A principal mudança desde a publicação do livro está na interface do gerador de código, que é descrita em um documento separado.

O código-fonte do LCC tem cerca de 20.000 linhas, muito menor do que muitos dos principais compiladores.

LCC pode gerar código para várias arquiteturas de processador, incluindo Alpha , SPARC , MIPS e x86 ; há também um back-end LCC que gera o Common Intermediate Language da Microsoft .

Projetos que incorporam LCC

Quake 3

id Software 's id Tech 3 motor conta com uma versão modificada do LCC para compilar o código fonte de cada módulo jogo ou de terceiros mod em bytecode visando a sua máquina virtual . Isso significa que os módulos ficam alheios ao sistema além das chamadas do sistema e do escopo limitado do sistema de arquivos oferecido pelo mecanismo, que visa reduzir a ameaça representada por autores de mod mal-intencionados. Outra consideração é que os jogos e mods escritos para o mecanismo são portáteis sem recompilação; apenas a máquina virtual precisa ser portada para novas plataformas para executar os módulos.

lcc-win

lcc-win32 é um pacote de ambiente de desenvolvimento integrado para Microsoft Windows que inclui um fork do LCC. Existe uma contraparte amd64 chamada lcc-win64, que está disponível desde 15 de abril de 2012.

Pelles C

O compilador do Pelles C é uma versão fortemente modificada do LCC, fornecendo suporte C11 e C17 , suporte amd64 e técnicas de otimização adicionais, como expansão em linha .

Mathworks

Para máquinas Windows de 32 bits, Lcc é usado como padrão se nenhum outro compilador for instalado para MathWorks MATLAB e produtos relacionados.

Licença

O LCC é gratuito para uso pessoal e pode ser redistribuído desde que todas as mídias de distribuição e documentação do produto o reconheçam. A licença LCC se baseia em exemplos em vários casos. O LCC não pode ser vendido com fins lucrativos, mas pode ser incluído com outro software vendido com fins lucrativos, desde que o próprio LCC seja distribuído gratuitamente. Licenças por usuário e de uso ilimitado estão disponíveis contatando Addison-Wesley, em particular para compiladores de linguagens como C ++ para a qual um compilador C pode constituir grande parte de seu trabalho.

Veja também

Referências

Bibliografia