diff options
Diffstat (limited to 'files/pt-br/webassembly/index.html')
-rw-r--r-- | files/pt-br/webassembly/index.html | 162 |
1 files changed, 162 insertions, 0 deletions
diff --git a/files/pt-br/webassembly/index.html b/files/pt-br/webassembly/index.html new file mode 100644 index 0000000000..33f3716767 --- /dev/null +++ b/files/pt-br/webassembly/index.html @@ -0,0 +1,162 @@ +--- +title: WebAssembly +slug: WebAssembly +tags: + - WebAssembly + - wasm +translation_of: WebAssembly +--- +<div>{{WebAssemblySidebar}}{{SeeCompatTable}}</div> + +<p class="summary" dir="ltr" id="docs-internal-guid-22bb55aa-d69e-e8ef-cbc6-aafea272f684">O WebAssembly é um novo tipo de código que pode ser executado em browsers modernos — se trata de uma linguagem de baixo nível como assembly, com um formato binário compacto que executa com performance quase nativa e que fornece um novo alvo de compilação para linguagens como C/C++, para que possam ser executadas na web. Também foi projetado para executar em conjunto com o JavaScript, permitindo que ambos trabalhem juntos.</p> + +<h2 dir="ltr" id="Em_poucas_palavras">Em poucas palavras</h2> + +<p dir="ltr">O WebAssembly tem enormes implicações para a plataforma web — ele irá fornecer uma maneira de executar na web código escrito em diversas linguagens em velocidade quase nativa, com apps que não conseguiriam fazer isso antes.</p> + +<p dir="ltr">O WebAssembly foi projetado para complementar e executar lado a lado com JavaScript — usando as APIs JavaScript do WebAssembly, você pode carregar módulos WebAssembly em um aplicativo JavaScript e compartilhar funcionalidade entre ambos. Isso permite que você aproveite o desempenho e poder da WebAssembly e a expressividade e flexibilidade do JavaScript nos mesmos aplicativos, mesmo que você não saiba como escrever código de WebAssembly.</p> + +<p dir="ltr">E o que é ainda melhor é que ele está sendo desenvolvido como um padrão web através da <a href="https://www.w3.org/community/webassembly/">W3C WebAssembly Community Group</a> com participantes ativos de todos os principais fornecedores de browsers.</p> + +<div class="row topicpage-table"> +<div class="section"> +<h2 dir="ltr" id="Guias">Guias</h2> + +<dl> + <dt><a href="/en-US/docs/WebAssembly/Concepts">Conceitos WebAssembly</a></dt> + <dd>Comece lendo os conceitos de alto nível por trás do WebAssembly - o que é, por que é tão útil, como ele se encaixa na plataforma web e como usá-lo.</dd> + <dt><a href="/en-US/docs/WebAssembly/C_to_wasm">Compilando C/C++ para WebAssembly</a></dt> + <dd>Quando você escreve o código em C/C++, você pode então compilá-lo em .wasm usando uma ferramenta como <a href="/en-US/docs/Mozilla/Projects/Emscripten/"> Emscripten</a>. Veja como isso funciona.</dd> + <dt><a href="/en-US/docs/WebAssembly/Loading_and_running">Carregando e executando código WebAssembly</a></dt> + <dd>Depois de ter um .wasm, este artigo aborda como buscá-lo, compilá-lo e instanciá-lo, combinando a API <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly">JavaScript WebAssembly </a> como <a href="/en-US/docs/Web/API/Fetch_API"> Obter </a> ou APIs <a href="/en-US/docs/Web/API/XMLHttpRequest"> XHR.</a></dd> + <dt><a href="/en-US/docs/WebAssembly/Caching_modules">Compilando módulos de WebAssembly no cache</a></dt> + <dd>O cache de grandes módulos WebAssembly no cliente é útil para melhorar o desempenho da inicialização do aplicativo. Este artigo explica como usar isso usando <a href="/en-US/docs/Web/API/IndexedDB_API"> IndexedDB</a>.</dd> + <dt><a href="/en-US/docs/WebAssembly/Using_the_JavaScript_API">Usando a API JavaScript do WebAssembly</a></dt> + <dd>Depois de carregar um módulo .wasm, você vai querer usá-lo. Neste artigo, mostramos como usar a WebAssembly através da API JavaScript da WebAssembly.</dd> + <dt><a href="/en-US/docs/WebAssembly/Exported_functions">Exportando funções de WebAssembly </a></dt> + <dd>Funções WebAssembly exportadas são as reflexões de JavaScript das funções da WebAssembly e permitem chamar o código WebAssembly do JavaScript. Este artigo descreve o que são.</dd> + <dt><a href="/en-US/docs/WebAssembly/Understanding_the_text_format">Compreendendo o formato de texto do WebAssembly</a></dt> + <dd>Este artigo explica o formato de texto wasm. Esta é a representação textual de baixo nível de um módulo .wasm mostrado nas ferramentas de desenvolvedor do navegador ao depurar.</dd> + <dt><a href="/en-US/docs/WebAssembly/Text_format_to_wasm">Convertendo o formato de texto do WebAssembly para o wasm</a></dt> + <dd>Este artigo fornece um guia sobre como converter um módulo WebAssembly escrito no formato de texto em um binário .wasm.</dd> +</dl> +</div> + +<div class="section"> +<h2 dir="ltr" id="Referência_da_API">Referência da API</h2> + +<dl> + <dt>{{jsxref("Global_objects/WebAssembly", "WebAssembly")}}</dt> + <dd>Este objeto atua como o espaço para todas as funcionalidade relacionada à WebAssembly.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Module", "WebAssembly.Module")}}</dt> + <dd>A <code>WebAssembly.Module</code> o objeto contém o código da WebAssembly sem estado que já foi compilado pelo navegador e pode ser eficientemente <a href="/en-US/docs/Web/API/Worker/postMessage"> compartilhado com os trabalhos</a>, <a href="/En-US/docs /WebAssembly/Caching_modules"> armazenados em cache no IndexedDB</a>, e instanciados várias vezes.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Instance", "WebAssembly.Instance")}}</dt> + <dd>A <code>WebAssembly.Instance</code> o objeto é uma instância executável e estável de um <code> Módulo</code>. Os objetos <code> Instanciados </code> contêm todas as <a href="/en-US/docs/WebAssembly/Exported_functions"> funções de WebAssembly exportadas </a> que permitem chamar o código WebAssembly do JavaScript.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/instantiate", "WebAssembly.instantiate()")}}</dt> + <dd>The <code>WebAssembly.instantiate()</code> a função é a API primária para compilar e instanciar o código WebAssembly, retornando um <code> Module </code> e sua primeira <code> instância </code>.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Memory", "WebAssembly.Memory()")}}</dt> + <dd>Em <code> WebAssembly. </code>O objeto <code> Memory </code> é redimensionável {{jsxref ("Global_objects / ArrayBuffer","ArrayBuffer")}} que detém os bytes de memória invocados por uma <code>instância</code> de código.</dd> + <dt>{{jsxref("Global_objects/WebAssembly/Table", "WebAssembly.Table()")}}</dt> + <dd>Em <code> WebAssembly. </code>O objeto <code> Table </code> é uma matriz redimensionável de valores opacos, como referências de funções, acessadas por uma <code>instância</code> de código.</dd> + <dt>{{jsxref("WebAssembly.CompileError()")}}</dt> + <dd>Cria um novo objeto WebAssembly<code> CompileError</code>.</dd> + <dt>{{jsxref("WebAssembly.LinkError()")}}</dt> + <dd>Cria um novo objeto WebAssembly <code> LinkError</code>.</dd> + <dt>{{jsxref("WebAssembly.RuntimeError()")}}</dt> + <dd>Cria um novo objeto WebAssembly <code> RuntimeError</code>.</dd> +</dl> +</div> +</div> + +<h2 dir="ltr" id="Exemplos">Exemplos</h2> + +<ul dir="ltr"> + <li><a href="https://github.com/JasonWeathersby/WASMSobel">WASMSobel</a></li> + <li>Consulte nosso <a href="https://github.com/mdn/webassembly-examples/"> webassembly-examples </a> para outros exemplos.</li> +</ul> + +<h2 id="Especificações">Especificações</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">Especificações</th> + <th scope="col">Status</th> + <th scope="col">Comentários</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('WebAssembly JS')}}</td> + <td>{{Spec2('WebAssembly JS')}}</td> + <td>Definição inicial do projeto da API do JavaScript.</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">Compatibilidade do navegador</h2> + +<div>{{CompatibilityTable}}</div> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Características</th> + <th>Chrome</th> + <th>Edge</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari (WebKit)</th> + </tr> + <tr> + <td>Suporte básico</td> + <td>57</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoDesktop(52)}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatVersionUnknown}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Características</th> + <th>Chrome for Android</th> + <th>Android Webview</th> + <th>Edge Mobile</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suporte básico</td> + <td>57</td> + <td>57</td> + <td>{{CompatNo}}</td> + <td>{{CompatGeckoMobile(52)}}<sup>[1]</sup></td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<p>[1] O WebAssembly está habilitado no Firefox 52+, embora desativado no <a href="https://www.mozilla.org/en-US/firefox/organizations/"> Firefox 52 estendido versão para suporte</a> (ESR.)</p> + +<h2 id="Veja_também">Veja também</h2> + +<ul dir="ltr"> + <li><a href="http://webassembly.org/">webassembly.org</a></li> + <li><a href="https://hacks.mozilla.org/category/webassembly/">WebAssembly articles on Mozilla Hacks blog</a></li> + <li><a href="https://www.w3.org/community/webassembly/">W3C WebAssembly Community Group</a></li> + <li><a href="/en-US/docs/Web/HTTP/Headers/Large-Allocation">Large-Allocation HTTP header</a></li> +</ul> |