Perguntas com a marcação «compilers»

Perguntas sobre programas que lêem código em um idioma (idioma de origem) e o traduzem em um programa equivalente em outro idioma (idioma de destino).

54
Complexidade temporal de um compilador

Estou interessado na complexidade do tempo de um compilador. Claramente, essa é uma pergunta muito complicada, pois há muitos compiladores, opções e variáveis ​​de compilador a serem consideradas. Especificamente, estou interessado em LLVM, mas estaria interessado em quaisquer pensamentos que as...

28
Por que o tipo de vácuo de C não é análogo ao tipo vazio / inferior?

A Wikipedia e outras fontes que eu encontrei listam o voidtipo de C como um tipo de unidade, em vez de um tipo vazio. Acho isso confuso, pois me parece que voidmelhor se ajusta à definição de um tipo vazio / inferior. Nenhum valor habita void, até onde eu sei. Uma função com um tipo de retorno de...

28
O que é um compilador em lote?

Tenho a seguinte citação do curso do meu compilador (no contexto de coloração de gráficos): Por ser lenta, a coloração do gráfico tende a ser usada nos compiladores em lote, enquanto a varredura linear tende a ser usada nos compiladores JIT. Não consegui encontrar uma definição clara on-line....

22
Qual a diferença entre um compilador JIT e um compilador comum?

Tem havido muita publicidade sobre os compiladores JIT para linguagens como Java, Ruby e Python. Como os compiladores JIT são diferentes dos compiladores C / C ++ e por que os compiladores escritos para Java, Ruby ou Python são chamados de compiladores JIT, enquanto os compiladores C / C ++ são...

15
Por que a atribuição estática-única é preferida ao estilo de passagem de continuação em muitos compiladores usados ​​pelo setor?

De acordo com a página da Wikipedia sobre atribuição estática-única (SSA) , o SSA é usado por projetos grandes e conhecidos, como LLVM, GCC, MSVC, Mono, Dalvik, SpiderMonkey e V8, enquanto a página em projetos usa o estilo de passagem de continuação (CPS) é um pouco ausente em comparação. Eu tenho...

15
Por que separar lexing e análise?

É possível analisar um documento usando uma única passagem de uma máquina de estado. Qual é o benefício de ter dois passes, ie. tendo um lexer para converter texto em tokens e tendo um analisador para testar as regras de produção nesses tokens? Por que não ter uma única passagem que aplique regras...