Skip to content
Latchkey

O Que É um Transpilador? Tradução de Fonte para Fonte

Um transpilador é um compilador de fonte para fonte: ele converte código de uma linguagem ou dialeto em outra linguagem em um nível aproximadamente igual, em vez de descer até o código de máquina.

Um transpilador (abreviação de "transcompilador") é tecnicamente um compilador, mas sua saída é código-fonte legível em outra linguagem, em vez de um binário. Os exemplos clássicos são transformar TypeScript em JavaScript, ou JavaScript moderno em uma versão mais antiga que mais navegadores entendem. O código de destino ainda precisa ser rodado ou compilado por algo mais.

Como um transpilador difere de um compilador

Um compilador tradicional abaixa o código em direção à máquina: código-fonte de alto nível vira assembly ou bytecode. Um transpilador permanece em um nível de abstração parecido, mapeando uma linguagem de alto nível em outra. Ambos fazem parsing e análise do código; só o alvo difere.

Trabalhos comuns de transpilação

  • TypeScript para JavaScript, removendo tipos e emitindo JS puro.
  • JavaScript moderno para um padrão mais antigo, para suporte mais amplo em navegadores.
  • Sass ou Less para CSS.
  • Um dialeto de framework para outro, como JSX para chamadas de função puras.

Por que as equipes transpilam

Transpilar deixa você escrever em uma linguagem mais agradável, segura ou nova enquanto ainda entrega algo que o runtime aceita. Você ganha sintaxe moderna e verificação de tipos hoje, sem esperar cada navegador ou runtime alcançar.

Transpilação e source maps

Como o código que roda não é o código que você escreveu, transpiladores emitem source maps para que os depuradores possam apontar de volta para seu código-fonte original. Sem eles, um stack trace referenciaria a saída gerada, que é difícil de ler.

Um exemplo rápido

Rodar tsc app.ts transpila TypeScript em JavaScript, removendo as anotações de tipo e produzindo app.js. O navegador nunca vê TypeScript; ele só roda o JS emitido.

Transpiladores no CI

Pipelines de frontend quase sempre incluem um step de transpilação, muitas vezes agrupado com minificação e empacotamento. Ele é limitado por CPU e escala com o tamanho do projeto, então fica lento em runners pequenos. Runners maiores (Latchkey) cortam esse tempo, e falhas transitórias de toolchain ou de busca de cache podem ser reexecutadas automaticamente.

Principais conclusões

  • Um transpilador é um compilador cuja saída é código-fonte em outra linguagem, não código de máquina.
  • Trabalhos típicos são TypeScript para JavaScript, JS moderno para JS legado e Sass para CSS.
  • Source maps deixam você depurar o código original mesmo que a saída transpilada seja o que roda.

Guias relacionados