aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/glossary/call_stack
diff options
context:
space:
mode:
authorFlorian Merz <me@fiji-flo.de>2021-02-11 14:49:58 +0100
committerFlorian Merz <me@fiji-flo.de>2021-02-11 14:49:58 +0100
commit68fc8e96a9629e73469ed457abd955e548ec670c (patch)
tree8529ab9fe63d011f23c7f22ab5a4a1c5563fcaa4 /files/pt-br/glossary/call_stack
parent8260a606c143e6b55a467edf017a56bdcd6cba7e (diff)
downloadtranslated-content-68fc8e96a9629e73469ed457abd955e548ec670c.tar.gz
translated-content-68fc8e96a9629e73469ed457abd955e548ec670c.tar.bz2
translated-content-68fc8e96a9629e73469ed457abd955e548ec670c.zip
unslug pt-br: move
Diffstat (limited to 'files/pt-br/glossary/call_stack')
-rw-r--r--files/pt-br/glossary/call_stack/index.html88
1 files changed, 88 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..73e99316be
--- /dev/null
+++ b/files/pt-br/glossary/call_stack/index.html
@@ -0,0 +1,88 @@
+---
+title: Call stack (Pilha de chamadas)
+slug: Glossario/Call_stack
+translation_of: Glossary/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>