diff options
| author | Florian Dieminger <me@fiji-flo.de> | 2021-02-11 18:27:17 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-11 18:27:17 +0100 |
| commit | ad7f998115dd568832332484debf1f1b16b0c905 (patch) | |
| tree | 2f3a9137e20731b7f6880fe5adb31fa439215d7d /files/pt-br/glossary/call_stack/index.html | |
| parent | 7a94b4d8daf297eda6df8e5cf933f7ba159bbc76 (diff) | |
| parent | 1d435be33d8b76cd7b06cd06996c19d74f83cfd4 (diff) | |
| download | translated-content-ad7f998115dd568832332484debf1f1b16b0c905.tar.gz translated-content-ad7f998115dd568832332484debf1f1b16b0c905.tar.bz2 translated-content-ad7f998115dd568832332484debf1f1b16b0c905.zip | |
Merge pull request #41 from fiji-flo/unslugging-pt-br
Unslugging pt br
Diffstat (limited to 'files/pt-br/glossary/call_stack/index.html')
| -rw-r--r-- | files/pt-br/glossary/call_stack/index.html | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/files/pt-br/glossary/call_stack/index.html b/files/pt-br/glossary/call_stack/index.html new file mode 100644 index 0000000000..772871f93d --- /dev/null +++ b/files/pt-br/glossary/call_stack/index.html @@ -0,0 +1,89 @@ +--- +title: Call stack (Pilha de chamadas) +slug: Glossary/Call_stack +translation_of: Glossary/Call_stack +original_slug: Glossario/Call_stack +--- +<p>A pilha de chamadas <strong>(call stack)</strong> é um mecanismo do interpretador de uma linguagem que organiza o funcionamento do script quando são chamadas muitas funções, qual função está sendo executada no momento, e quais serão chamadas dentro de alguma função, etc.</p> + +<ul> + <li>Quando o script chama a função, ela é adicionada à pilha de chamadas, e então é iniciado o carregamento da função.</li> + <li>Qualquer função chamada por essa função será adicionada à pilha de chamadas uma acima da outra.</li> + <li>Quando a função termina a execução, o interpretador retira a função da pilha e continua a execução do programa de onde parou.</li> + <li>Caso a pilha ocupar mais espaço do que foi separado a ela, será exibido um erro "stack overflow" (estouro de pilha).</li> +</ul> + +<h2 id="Exemplo">Exemplo</h2> + +<pre class="brush: js">function saudacao() { + // [1] Algum código aqui + digaOi(); + // [2] Algum código aqui +} +function digaOi() { + return "Olá!"; +} + +// Chamando a função `saudacao` +saudacao(); + +// [3] Algum código aqui +</pre> + +<p>O código acima será executado desta forma pelo interpretador:</p> + +<ol> + <li>Todas as funções serão ignoradas, até chegar na chamada da função <code>saudacao()</code>.</li> + <li>Adiciona a função <code>saudacao()</code> para a pilha de chamadas. + <div class="note"> + <p>Pilha de chamadas:<br> + - saudacao</p> + </div> + </li> + <li>Executa todas as linhas de código da função <code>saudacao()</code>.</li> + <li>Chama a função <code>digaOi()</code>.</li> + <li>Adiciona a função <code>digaOi()</code> na pilha de chamadas. + <div class="note"> + <p>Pilha de chamadas:<br> + - <code>saudacao</code><br> + - digaOi</p> + </div> + </li> + <li>Executa todas as linhas de código da função <code>digaOi()</code> até o final.</li> + <li>Retorna a execução na linha onde foi chamada a função <code>digaOi()</code> e continua a execução do resto da função <code>saudacao()</code>.</li> + <li>Deleta a função <code>digaOi()</code> da pilha de chamadas. + <div class="note"> + <p>Pilha de chamadas:<br> + - <code>saudacao</code></p> + </div> + </li> + <li>Quando todas as linhas da função <code>saudacao()</code> forem executadas, retorna para a linha onde a função foi invocada, e continua a execução do resto do código.</li> + <li>Deleta a função <code>saudacao()</code> da Pilha de chamadas. + <div class="note"> + <p>Pilha de chamadas:<br> + EMPTY</p> + </div> + </li> +</ol> + +<p>Começamos com uma pilha de chamadas vazia, e sempre que chamamos uma função, ela é automaticamente adicionada à pilha de chamadas, e depois de todas as linhas serem executadas, é automaticamente removida da pilha de chamadas. No final, a pilha está vazia novamente.</p> + +<h2 id="Veja_mais">Veja mais</h2> + +<h3 id="General_knowledge">General knowledge</h3> + +<ul> + <li>{{Interwiki("wikipedia", "Call stack")}} on Wikipedia</li> +</ul> + +<section class="Quick_links" id="Quick_Links"> +<ul> + <li><a href="/en-US/docs/Glossary">MDN Web Docs Glossary</a> + + <ul> + <li>{{Glossary("Call stack")}}</li> + <li>{{Glossary("Function")}}</li> + </ul> + </li> +</ul> +</section> |
