Emscripten é um compilador LLVM para JavaScript. Este utiliza bytecode do LLVM (por exemplo, gerado a partir de C/C++, utilizando Clang, ou de outra linguagem) e o compila no JavaScript, que pode ser executado na Web.

Importante: esta página fornece uma breve introdução sobre o que Emscripten é. Para começar com Emscripten, vá para a Wiki oficial do Emscripten.

Ao utilizar o Emscripten, pode

  • Compilar código C e C++ para JavaScript
  • Compilar qualquer tipo de código que consegue ser traduzido para LLVM bytecodepara JavaScript.
  • Compilar runtimes de C/C++ de outras linguagens para JavaScript e depois correr código nessas outras linguagens de uma maneira indireta (Isto foi feito para Python e Lua)!

Emscripten produz código nativo imediatamente disponível na Web: uma plataforma que é padrão, tem inúmeras implementações independentes e é interpretada em todo o lado desde PC's a iPad's.

Com Emscripten, programadores de C/C++ não têm o alto custo de transcrever o código manualmente para JavaScript — ou ter que aprender JavaScript sequer. Programadores web também beneficiam, dado que podem usar milhares de bibliotecas nativas já existentes nos seus sites.

Praticamente qualquer base de código portátil de C ou C++ pode ser compilada para JavaScript usando Emscripten, variando desde jogos de alto performance que precisam de renderizar gráficos, tocar sons, carregar e processar ficheiros até aplicações de frameworks como Qt.

Emscripten gera código rápido — o formato de saída é asm.js, um subset de JavaScript que consegue executar perto de velocidades nativas em muitos casos.

Outros artigos de interesse na MDN

  • A nossa zona de jogos contém conteúdo útil relacionado com o desenvolvimento de jogos, que é um caso de uso comum para o Emscripten.
  • A nossa página com técnicas de Emscripten é um lugar para guardar ideias úteis relacionadas com Emscripten, que conseguiram ser introduzidas na Wiki do Emscripten.

Etiquetas do documento e contribuidores

Etiquetas: 
Contribuidores para esta página: sergeyvipatov, mansil
Última atualização por: sergeyvipatov,